<aside> 📌 .
![]()
Prezados estudantes,
nesta semana damos início a disciplina de Compiladores, uma disciplina que requer conhecimento e maturidade.
Conhecimento por utilizar conceitos vistos em todo o curso de ciência de computação e maturidade para querer dar um passo além.
Além do pensamento "normal" que vocês tiveram até aqui. Construir um compilador é entender o processo de programação de inicio ao fim e isso é um grande desafio que tenho certeza que todos estão aptos.
Então, vamos lá, mãos a obra.
</aside>
Um programa como outro qualquer

A imagem abaixo ilustra essa "compilação" da linguagem alto nível para uma linguagem de baixo nível

Nosso autor Aho define assim no Dragon Book:
"A compiler is a program that reads a program written in one language — the source language — and translates it into an equivalent program in another language — the target language."
Simples na definição. Complexo na execução. E é exatamente esse caminho que vamos percorrer juntos.
https://www.youtube.com/watch?v=NVaO7v-cErM
| Compilador | Interpretador | |
|---|---|---|
| O que faz | Traduz o programa inteiro para outra linguagem | Executa o programa diretamente, instrução por instrução |
| Quando executa | Depois da tradução | Durante a tradução |
| Exemplo | javac (compila .java → .class) |
Python, Ruby |
| Performance | Geralmente mais rápido em execução | Geralmente mais lento em execução |