Definir
compilador, interpretador e seus artefatos
FGA0003 — Compiladores 1 · Semana 3 · Aula teórica
compilador, interpretador e seus artefatos
as fases fundamentais de um compilador
o fluxo do código-fonte ao código-alvo
compilação, interpretação e modelos híbridos
a arquitetura às ferramentas Flex e Bison
Duas estratégias, vários modelos reais
Qual opção descreve corretamente um compilador?
Fases, representações e responsabilidades
Análises léxica, sintática e semântica; depende principalmente da linguagem-fonte.
Representações intermediárias e otimizações independentes ou parcialmente dependentes do alvo.
Seleção de instruções, alocação de registradores e emissão do código-alvo.
Qual é a ordem correta das fases iniciais?
partir do símbolo inicial
selecionar produções compatíveis
comparar terminais com tokens
reconhecer construções completas
construir árvore ou executar ações
Qual é a saída do lexer para int x = 10;?
Lineariza ou reorganiza a estrutura em TAC, SSA, bytecode ou outra RI.
Melhora custo, tamanho ou consumo sem alterar o comportamento observável.
Mapeia a RI para instruções, objetos, assembly ou bytecode de destino.
Analisar e executar sem gerar um executável nativo como produto principal
O código é compilado para uma máquina virtual portátil.
Trechos são compilados dinamicamente durante a execução.
Código nativo convive com bibliotecas e serviços de tempo de execução.
Código-fonte é traduzido para outra linguagem de alto nível.
Qual é o papel principal do parser do Bison?
Compiladores aparecem em mais lugares do que parece
SQL, VHDL e linguagens de configuração especializadas.
Linters, segurança, qualidade e detecção de defeitos.
Refatoração, navegação, autocompletar e diagnósticos.
Validação automática, geração e transformação de artefatos.
Compilação de grafos, kernels e pipelines para diferentes back-ends.
Quando a interpretação direta tende a ser adequada?
Compilar traduz; interpretar executa durante o processamento.
Cada fase recebe, valida ou transforma uma representação.
O lexer gera tokens; o parser reconhece estruturas.
AST e tabela de símbolos suportam regras contextuais.
Os mesmos conceitos sustentam IDEs, DSLs e análise estática.
Próxima etapa: aplicar essa visão ao projeto incremental em Flex e Bison. FGA0003 — Compiladores 1 · CEDIS/UnB