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).