UFRN – DIMAP
DIM0339 Compiladores
Segundo Semestre de 2005
Exercícios - Análise léxica
(Nota: O livro-texto ao referenciado nos exercicios é o de Aho, Sethi e Ullmann – O livro do dragão vermelho).
1. Qual é o alfabeto de entrada de cada uma das seguintes linguagens?
a.
Pascal
b.
C
c.
Haskell
d.
Prolog
1. Exercício 3.3 do livro-texto.
2. Especifique a forma léxica das constantes identificadas no exercício 1.
3. Exercício 3.10 do livro-texto.
4. Escreva um programa Lex que implemente a substituição simples de macros em um programa C:
i.
Defina a forma léxica de macros sem parâmetros, e definidas por uma string.
Exemplo: #define Nome "CI-211 – Construcao
de compiladores".
ii. Implemente uma tabela de símbolos contendo o nome da macro e a string associada a ela.
iii. Escreva um programa Lex que remova as macros do programa e substitúa os seus nomes pelo string que cada uma delas define.
6. Exercício 3.14 do livro-texto.
7. Exercício 3.6 do livro-texto.
8. Defina um programa Lex para reconhecer endereços da Internet (URLs).