Prévia do material em texto
1º Prova de Construção de Compiladores
Nome: R.A.:
1- A linguagem L(G) = {w / w ϵ {a,b,c}* e w = anbcn+1, n>=1} pode ser obtida
através de uma Gramática Linear à Direita G?
Se a resposta for afirmativa, construa a GLD G. No caso de não ser possível
obtê-la a partir de uma GLD, destaque o motivo e apresente uma gramática
equivalente G’ que gere L(G). (3,0 pts)
2- Considere que a linguagem de programação vista em sala de aula pode
agora reconhecer comandos de definição de estruturas similares a linguagem
C:
typedef struct X
inicio
var int a;
int b;
boolean c;
fim ;
Altere a gramática da linguagem de programação LPD, e os analisadores
léxico e sintático para reconhecer este novo comando. Qualquer alteração
deve ser apresentada em pseudocódigo (não serão aceitas respostas em
linguagens de programação específicas)
Qualquer rotina já existente no léxico ou sintático pode ser chamada pelo seu
programa. (4,0 pts)
3- Explique qual a relação e para que servem expressões regulares,
autômatos finitos, tokens e lexemas em compiladores. (2,0 pts)
4- Apresente 2 exemplos diferentes de erros léxicos. (1,0 pts)