plp2014-aula05-exercícios
1 pág.

plp2014-aula05-exercícios


DisciplinaParadigmas de Linguagens de Progamação126 materiais486 seguidores
Pré-visualização1 página
Paradigmas de Linguagens de Programação 
 
Exercícios para entregar em 10/05/2014 
 
Considere as seguintes regras gramaticais: 
<programa> \u2192 <lista_inst> 
<lista_inst> \u2192 <inst> | <inst> ; <lista_inst> 
<inst> \u2192 <var> = <expr> 
<var> \u2192 a | b | c | d 
<expr> \u2192 <term> + <term> | <term> - <term> 
<term> \u2192 <var> | const 
 
1. Quais das seguintes sentenças estão na linguagem gerada por essa gramática: 
a. a = b + c 
b. a = a \u2013 c ; b = d \u2013 b 
c. var = a + a 
d. c = a + b \u2013 d 
e. a = a \u2013 c ; 
 
2. Usando a gramática mostre uma árvore de análise para cada sentença: 
a. b = c + d 
b. a = b \u2013 c; b = d + a 
 
3. Converta a gramática BNF para EBNF. 
 
4. Faça o teste da disjunção paritária para a versão EBNF da gramática. 
 
5. Para cada regra da versão EBNF que passar no teste da disjunção paritária, escreva um 
subprograma analisador recursivo descendente. Assuma que tenha disponível um analisador 
léxico chamado lex e um subprograma de manipulação de erros denominado erro, chamado 
sempre que um erro é detectado.