Trilha Estágio Trilha

Compiladores e interpretadores

O curso acompanha o código-fonte desde o texto até a execução. Explica o que fazem compiladores e interpretadores, o espectro entre eles e a diferença entre compilação AOT e JIT. Você constrói um lexer pequeno e um parser de descida recursiva em Ruby, e depois inspeciona tokens, ASTs e bytecode YARV com Ripper, Prism e as ferramentas do RubyVM. As aulas finais tratam de VMs baseadas em pilha, JVM, WebAssembly e ruby.wasm, cache com bootsnap e os JITs do CRuby: MJIT, YJIT com basic block versioning e o ZJIT experimental.

O que você vai aprender

  • ✓As fases de um pipeline de compilação, da análise léxica à geração de código
  • ✓Como escrever um lexer simples e um parser de descida recursiva em Ruby
  • ✓Como o CRuby transforma código Ruby em bytecode YARV e o executa
  • ✓Como inspecionar tokens, ASTs e bytecode com Ripper, Prism e RubyVM
  • ✓Como VMs baseadas em pilha, a JVM e o WebAssembly executam bytecode
  • ✓Como funciona a compilação JIT no MJIT, no YJIT e no ZJIT
Prévia grátis · Aula 1 5 min de leitura

O que é um compilador?

Computadores só entendem código de máquina: instruções binárias brutas específicas para uma arquitetura de CPU (x86, ARM, etc.). Mas humanos escrevem código em linguagens de alto nível como Ruby, C ou Go. Algo precisa fazer essa ponte.

Ler a aula completa grátis →

Currículo

7 aulas
Digite para buscar...