Escolar Documentos
Profissional Documentos
Cultura Documentos
Questo 1) Gramtica:
E (L) | a L L , E | E
Itens LR(0):
E E E E .E E. .(L) (.L)
NFA (opcional):
E E. E E .E E .a a E a. L .,EL , L ,.EL E L ,E.L L L .EL E L E .(L) ( E (.L) L E (L.) )
E (L).
L E.L
L EL.
L .
L ,EL.
DFA:
0
E .E E .(L) E .a a
2
E E.
(
3 4 5
E a.
E L E E
L E
E (L.)
6
E (L).
L E.L L .,EL L . ( ,
8 9
L EL.
L ,.EL E .(L) E .a
, E
L ,E.L L .,EL L .
10
L ,EL.
Entrada
((a),a,(a,a))$ (a),a,(a,a))$ a),a,(a,a))$ ),a,(a,a))$ ),a,(a,a))$ ),a,(a,a))$ ,a,(a,a))$ ,a,(a,a))$ a,(a,a))$ ,(a,a))$ ,(a,a))$ (a,a))$ a,a))$ ,a))$ ,a))$ a))$ ))$ ))$ ))$ ))$ )$ )$ )$ )$ )$ $ $ carrega carrega carrega reduz E a
Ao
reduz L EL e L . carrega reduz E (L) carrega carrega reduz E a carrega carrega carrega reduz E a carrega carrega reduz E a reduz L ,EL e L . reduz L EL carrega reduz E (L) reduz L ,EL e L . reduz L ,EL reduz L EL carrega reduz E (L)
aceita
a) Regras e aes
Regras
As variveis devem ser declaradas apenas uma vez. id-tipo deve ser integer, char ou boolean.
Aes semnticas
# 1 (* Verificar se a varivel j foi declarada*) Verificar se id Tabela de Smbolos (TS) Se sim, Erro Semntico ( Varivel j declarada) Se no, Incluir id na Tabela de Smbolos # 2 (* Verificar se tipo vlido*) Se id-tipo integer, char ou boolean Ento atribui id-tipo ao atributo tipo de cada id declarado Senao Erro Semntico (Tipo Invlido)
b) Funo da tabela de smbolos: manter informaes (nome, categoria, atributos) sobre identificadores usados no programa fonte. Exemplo: implementao da tabela de smbolos atravs de matriz (array) var x : integer
Nome x Categoria Id-variavel Atributo 1 integer Atributo 2 ... Atributo n -