Escolar Documentos
Profissional Documentos
Cultura Documentos
Ingeniera de Software
Docente: Julio Cesar Sierra
Tabla de Anlisis Sintctico
Autores:
Cristian
Javier Dario Becerra
Enrique Pinzon
Wilson Barragan
David Fernando Valverde
Cd.: 1032403489
Contenido
Gramtica...................................................................................................... 3
Convenciones................................................................................................. 3
Gramtica Reescrita:...................................................................................... 3
Eliminacin ambigedad:............................................................................... 3
Gramtica sin ambigedad:...........................................................................4
Eliminacin recursin por la Izquierda:...........................................................4
Gramtica sin recursin por la Izquierda:.......................................................5
Conjuntos primero:......................................................................................... 5
Gramtica:
1. programa program id (lista_identificadores) ; declaraciones
lista_proposiciones .
2. lista_identificadores id | lista_identificadores , id
3. declaraciones declaraciones var lista_identificadores : tipo; |
4. tipo tipo_estandar | array [num .. num] of tipo_estandar
5. tipo_estandar int | real
6. lista_proposiciones proposicion | lista_proposiciones ; proposicion
Convenciones:
Programa
Program
Lista_identificadores
Declaraciones
lista_proposiciones
tipo
tipo_estandar
Proposicin
Expresion
Factor
P
Prog
L_I
D
L_P
T
T_E
pr
E
F
Gramtica Reescrita:
1. P Prog id (L_I) ; D L_P .
2. L_I id | L_I, id
3. D D var L_I : T; |
4. T T_E| array [num .. num] of T_E
5. T_E int | real
6. L_P pr| L_P ; pr
7. pr id = E | if E then pr else pr
8. E F oprel E | F
9. F id | num | (E)
10. oprel > | < | ==
Eliminacin ambigedad:
Si A -> 1 | 2 | | n |
Ent A = A |
A = 1 | 2 | | n
8. E F oprel E | F
A=E
=F
1 = oprel E
2 =
E F E
E oprel E |
3. L_I , id L_I |
4. D D
5. D var L_I : T ; D |
6. T T_E| array [num .. num] of T_E
7. T_E int | real
8. L_P pr L_P
9. L_P ; S L |
10. pr id = E | if E then pr else pr
11. E F E
12. E oprel E |
13. F id | num | (E)
14. oprel > | < | ==
Conjuntos primero:
1. P prog id ( L_I ) ; D L_P .
Prim (P) = {Prim(prog), }
Prim(prog) = {prog} no contiene
Prim(A) = Prim(P)={program}
2. L_I id L_I
Prim (L_I) = {Prim(id), }
Prim(id) = {id} no contiene
Prim(L_I) = {id}
3. L_I , id L_I|
Prim(L_I) = {Prim(,), .} U {Prim()}
Prim(,) = { , } no contiene
Prim() = { }
Prim(L_I) = { , , }
4. D D
Prim(D) = {var, }
5. D var L_I : T ; D |
Prim(D) = {Prim(var), } U {Prim()}
Prim(var) = {var} no contiene
Prim() = { }
Prim(D) = {var, }
6. T T_E| array [num .. num] of T_E
Prim(T)= {Prim(T_E)} U {Prim(array }
Prim(T_E) = {int, real}
Prim(array) = {array} no contiene
Prim(T) = {int, real, array}
7. T_E int | real
Prim(T_E) = {Prim(int)} U {Prim(real)}
Prim(int) = {int}
Prim(real)={real}
Prim(T_E) = {int, real}
8. L_P pr L_P
12. E oprel E |
Conjuntos Primero: