Escolar Documentos
Profissional Documentos
Cultura Documentos
- PEC
Prof. Douglas Santiago Kridi
Lista 01 Avaliativa: Linguagens, Visão Geral e Analisador Léxico
Entrega: em sala de aula.
1. O que é um compilador e para que serve?
2. Qual a diferença entre um interpretador, compilador e montador?
3. Quais são as fases de um compilador e descreva brevemente suas
funcionalidades.
4. Defina token e lexema. Exemplifique.
5. Quais são as classes de tokens que um analisador léxico reconhece?
Exemplifique.
6. Para que serve a tabela de palavras reservadas e a tabela de símbolos no
processo de analise léxica?
7. Qual a função das rotinas de tratamento de erros em um compilador? Que tipos
de erro podem ser detectados durante a análise léxica? Exemplifique.
8. Considere o seguinte trecho de código em C:
for (int i = 1; i < j; i++) printf("%d", i);
Qual é a saída gerada pelo analisador léxico?
Compiladores - PEC
Prof. Douglas Santiago Kridi
Lista 02 Avaliativa: Visão Geral, Analisadores Sintáticos e Semânticos
Entrega: em sala de aula.
1. Para que serve a tabela de símbolos na análise sintática e semântica?
2. Que tipos de erros podem ser detectados durante a análise sintática e
semântica? Exemplifique.
3. Explique as formas de recuperação de erros sintáticos. Exemplifique.
4. O módulo de análise léxica de um compilador tem por objetivo: (Marque V ou F
e justifique as respostas falsas)
A. ( ) verificar se o programa-fonte obedece às regras da gramática da linguagem;
B. ( ) agrupar coerentemente os caracteres do programa-fonte em tokens;
C. ( ) gerar o código objeto correspondente à tradução do programa-fonte para
alguma forma intermediária de representação;
D. ( ) construir as árvores sintáticas dos diversos comandos do programa-fonte;
E. ( ) eliminar comandos supérfluos do programa-fonte.
F. ( ) O processo de compilação é composto por três passos obrigatórios: análise
léxica, análise sintática e geração do código final. E, opcionalmente, podem ser
executados mais dois passos: análise semântica e otimização de código.
G. ( ) A etapa de análise léxica consiste em analisar o código fonte para produzir
símbolos (tokens), que são processados em seguida na etapa de análise sintática,
também conhecida como parsing.
H. ( )As fases de análise sintática e semântica tratam da grande maioria dos erros
detectáveis pelo compilador.
I. ( ) A fase de análise constrói o programa alvo desejado, com base nas respectivas
representações intermediárias. É a fase que requer as técnicas mais
especializadas.
J. ( ) Durante a análise sintática do programa fonte, o compilador procura
encontrar as construções que possuam a estrutura sintática correta, sem se
preocupar com o significado da operação envolvida.
K. ( ) A análise semântica, também chamada de análise gramatical, envolve o
agrupamento dos tokens do programa fonte, no qual cada token representa uma
sequência de caracteres logicamente coesa, em frases gramaticais que são
usadas pelo compilador, a fim de sintetizar a saída.
L. ( ) A fase final do compilador é a geração de código intermediário, na qual as
alocações de memória são realizadas para cada uma das variáveis utilizadas pelo
programa.
M. ( ) Compilação e montagem são processos semelhantes; contudo, o processo de
montagem é bem mais complexo.
N. ( ) No processo de análise semântica da compilação, é verificada a consistência
dos tipos de variáveis envolvidas em operações aritméticas.