Professional Documents
Culture Documents
Resumen
Overview del anlisis lxico Qu es anlisis sintctico Gramticas libres de contexto Derivaciones y rboles de parseo Top-down vs. Bottom-up Parsing Grmaticas Ambiguas Implementando un Parser
Oscar Bonilla
Universidad Galileo
Anatomia de un Compilador
Programa (character stream) Analizador Lxico (Scanner) Token Stream Analizador Sintctico (Parser) Arbol de Parseo Generador de Cdigo Intermedio
Generador de Cdigo
Cdigo en Assembler
Oscar Bonilla
Universidad Galileo
Oscar Bonilla
Universidad Galileo
Universidad Galileo
Universidad Galileo
Universidad Galileo
Resumen
Overview del anlisis lxico Qe es anlisis sintctico Gramticas libres de contexto Derivacin y Arboles de Parseo Top-down vs. Bottom-up Parsing Gramticas Ambiguas Implementando un Parser
Oscar Bonilla
Universidad Galileo
Semntica
Cul es el significado de un programa Es ms difcil dar una definicin matemtica
Oscar Bonilla
Universidad Galileo
10
Universidad Galileo
Anatomia de un Compilador
Programa (character stream) Analizador Lxico (Scanner) Token Stream Analizador Sintctico (Parser) Arbol de Parseo Generador de Cdigo Intermedio
Generador de Cdigo
Cdigo en Assembler
Oscar Bonilla
11
Universidad Galileo
Token Stream
minus_op left_paren_op num(123.3) plus_op num(23.6) right_paren_op
Arbol de Parseo
( )
123.3
23.6
+
Universidad Galileo
Oscar Bonilla
12
Definicin de la Sintaxis
Tenemos que proveer una definicin precisa y fcil de entender de la sintaxis del lenguaje de programacin
Oscar Bonilla
13
Universidad Galileo
Oscar Bonilla
14
Universidad Galileo
15
Universidad Galileo
Oscar Bonilla
16
Universidad Galileo
NO!
Oscar Bonilla
17
Universidad Galileo
NO!
Intuicin Nmero de parntesis abiertos debe ser igual a nmero de parntesis cerrados Necesitamos mantener un conteo o necesitamos recursin Adems: NFAs y DFAs no pueden ejecutar conteo sin lmites
Oscar Bonilla
18
Universidad Galileo
Oscar Bonilla
19
Universidad Galileo
Resumen
Overview del anlisis lxico Qu es anlisis sintctico? Gramticas libres de contexto Derivacin y Arboles de Parseo Top-down vs. Bottom-up Parsing Gramticas Ambiguas Implementando un Parser
Oscar Bonilla
20
Universidad Galileo
No terminales
Variables sintcticas
Smbolo de Inicio
Un no-terminal especial es designado
Producciones
La forma en que los terminales y no-terminales son combinados para formar strings Un no-terminal en el lado izquierdo (LHS) y un string de terminales y no-terminales en el lado derecho (RHS)
Oscar Bonilla
21
Universidad Galileo
Oscar Bonilla
22
Universidad Galileo
Oscar Bonilla
23
Universidad Galileo
Oscar Bonilla
24
Universidad Galileo
Oscar Bonilla
25
Universidad Galileo
Oscar Bonilla
26
Universidad Galileo
Oscar Bonilla
27
Universidad Galileo
a
pq p|q
<A> a
<S> <P> <Q> <S> <P> <S> <Q> <S> <S> <P> <S>
28 Universidad Galileo
p*
Oscar Bonilla
Qu es?
??? P?
Oscar Bonilla
29
Universidad Galileo
30
Universidad Galileo
Oscar Bonilla
31
Universidad Galileo
Terminales (o tokens)
num para todos los nmeros plus_op (+), minus_op (-), times_op(*), left_paren_op((), right_paren_op())
32
Universidad Galileo
Oscar Bonilla
33
Universidad Galileo
Oscar Bonilla
34
Universidad Galileo
Oscar Bonilla
35
Universidad Galileo
Oscar Bonilla
36
Universidad Galileo
Oscar Bonilla
37
Universidad Galileo
Oscar Bonilla
38
Universidad Galileo
Oscar Bonilla
39
Universidad Galileo
Oscar Bonilla
40
Universidad Galileo
<op> + | *
Oscar Bonilla
41
Universidad Galileo
Oscar Bonilla
42
Universidad Galileo
Resumen
Overview de anlisis lxico Qu es anlisis sintctico? Gramticas libres de contexto Derivaciones y Arboles de Parseo Top-down vs. Bottom-up Parsing Gramticas Ambiguas Implementando un Parser
Oscar Bonilla
43
Universidad Galileo
Derivaciones
Cmo mostramos que una secuencia de tokens es aceptada por una CFG? Una produccin es usada para derivar una secuencia de tokens a partir del smbolo de inicio Dados los strings , y y una produccin A Un solo paso de la derivacin es
Oscar Bonilla
44
Universidad Galileo
Ejemplo de Derivacin
Gramtica
<expr> <expr><op><expr> | (<expr>) | -<expr> | num <op> + | *
45
Universidad Galileo
Ejemplo de Derivacin
<expr>
46
Universidad Galileo
Ejemplo de Derivacin
<expr>
47
Universidad Galileo
Ejemplo de Derivacin
<expr> <expr><op><expr>
<expr>
48
Universidad Galileo
Ejemplo de Derivacin
<expr>
<expr> <expr><op><expr> <expr> <op> <expr>
49
Universidad Galileo
Ejemplo de Derivacin
<expr> <expr> <op> <expr>
50
Universidad Galileo
Ejemplo de Derivacin
<expr> <expr> <op> <expr>
51
Universidad Galileo
Ejemplo de Derivacin
<expr>
<expr> num <expr> <op> <expr>
52
Universidad Galileo
Ejemplo de Derivacin
<expr>
<expr> num <expr> <op> <expr> num <op> <expr>
53
Universidad Galileo
Ejemplo de Derivacin
<expr> <expr> <op> <expr> num <op> <expr>
54
Universidad Galileo
Ejemplo de Derivacin
<expr> <expr> <op> <expr> num <op> <expr>
55
Universidad Galileo
Ejemplo de Derivacin
<expr>
<op> * <expr> <op> <expr> num <op> <expr>
56
Universidad Galileo
Ejemplo de Derivacin
<expr>
<op> * <expr> <op> <expr> num <op> <expr> num * <expr>
57
Universidad Galileo
Ejemplo de Derivacin
<expr> <expr> <op> <expr> num <op> <expr> num * <expr>
58
Universidad Galileo
Ejemplo de Derivacin
<expr> <expr> <op> <expr> num <op> <expr> num * <expr>
59
Universidad Galileo
Ejemplo de Derivacin
<expr>
<expr> (<expr>) <expr> <op> <expr> num <op> <expr> num * <expr>
60
Universidad Galileo
Ejemplo de Derivacin
<expr>
<expr> (<expr>) <expr> <op> <expr> num <op> <expr> num * <expr> num * ( <expr> )
61
Universidad Galileo
Ejemplo de Derivacin
<expr> <expr> <op> <expr> num <op> <expr> num * <expr> num * ( <expr> )
62
Universidad Galileo
Ejemplo de Derivacin
<expr> <expr> <op> <expr> num <op> <expr> num * <expr> num * ( <expr> )
63
Universidad Galileo
Ejemplo de Derivacin
<expr>
<expr> <expr><op><expr> <expr> <op> <expr> num <op> <expr> num * <expr> num * ( <expr> )
64
Universidad Galileo
Ejemplo de Derivacin
<expr>
<expr> <expr><op><expr> <expr> <op> <expr> num <op> <expr> num * <expr> num * ( <expr> ) num * ( <expr> <op> <expr> )
65
Universidad Galileo
Ejemplo de Derivacin
<expr> <expr> <op> <expr> num <op> <expr> num * <expr> num * ( <expr> ) num * ( <expr> <op> <expr> )
66
Universidad Galileo
Ejemplo de Derivacin
<expr> <expr> <op> <expr> num <op> <expr> num * <expr> num * ( <expr> ) num * ( <expr> <op> <expr> )
67
Universidad Galileo
Ejemplo de Derivacin
<expr>
<expr> num <expr> <op> <expr> num <op> <expr> num * <expr> num * ( <expr> ) num * ( <expr> <op> <expr> )
68
Universidad Galileo
Ejemplo de Derivacin
<expr>
<expr> num <expr> <op> <expr> num <op> <expr> num * <expr> num * ( <expr> ) num * ( <expr> <op> <expr> ) num * ( num <op> <expr> )
69
Universidad Galileo
Ejemplo de Derivacin
<expr> <expr> <op> <expr> num <op> <expr> num * <expr> num * ( <expr> ) num * ( <expr> <op> <expr> ) num * ( num <op> <expr> )
70
Universidad Galileo
Ejemplo de Derivacin
<expr> <expr> <op> <expr> num <op> <expr> num * <expr> num * ( <expr> ) num * ( <expr> <op> <expr> ) num * ( num <op> <expr> )
71
Universidad Galileo
Ejemplo de Derivacin
<expr>
<op> + <expr> <op> <expr> num <op> <expr> num * <expr> num * ( <expr> ) num * ( <expr> <op> <expr> ) num * ( num <op> <expr> )
72
Universidad Galileo
Ejemplo de Derivacin
<expr>
<op> + <expr> <op> <expr> num <op> <expr> num * <expr> num * ( <expr> ) num * ( <expr> <op> <expr> ) num * ( num <op> <expr> ) num * ( num + <expr> ) num * ( num + num )
Oscar Bonilla
73
Universidad Galileo
Ejemplo de Derivacin
<expr> <expr> <op> <expr> num <op> <expr> num * <expr> num * ( <expr> ) num * ( <expr> <op> <expr> ) num * ( num <op> <expr> ) num * ( num + <expr> )
num * ( num + num )
Oscar Bonilla
74
Universidad Galileo
Ejemplo de Derivacin
<expr> <expr> <op> <expr> num <op> <expr> num * <expr> num * ( <expr> ) num * ( <expr> <op> <expr> ) num * ( num <op> <expr> ) num * ( num + <expr> )
num * ( num + num )
Oscar Bonilla
75
Universidad Galileo
Ejemplo de Derivacin
<expr>
<expr> num <expr> <op> <expr> num <op> <expr> num * <expr> num * ( <expr> ) num * ( <expr> <op> <expr> ) num * ( num <op> <expr> ) num * ( num + <expr> ) num * ( num + num )
Oscar Bonilla
76
Universidad Galileo
Ejemplo de Derivacin
<expr>
<expr> num <expr> <op> <expr> num <op> <expr> num * <expr> num * ( <expr> ) num * ( <expr> <op> <expr> ) num * ( num <op> <expr> ) num * ( num + <expr> ) num * ( num + num ) num * ( num + num )
77 Universidad Galileo
Oscar Bonilla
Ejemplo de Derivacin
<expr> <expr> <op> <expr> num <op> <expr> num * <expr> num * ( <expr> ) num * ( <expr> <op> <expr> ) num * ( num <op> <expr> ) num * ( num + <expr> ) num * ( num + num ) num * ( num + num )
78 Universidad Galileo
Oscar Bonilla
Arbol de Parseo
Representacin grfica de la estructura parseada
Muestra la secuencia de derivaciones efectuada
Nodos internos son no-terminales Hojas son terminales Cada nodo padre es el lado izquierdo (LHS) y los hijos son el lado derecho (RHS) de una produccin
Oscar Bonilla
79
Universidad Galileo
<expr>
Oscar Bonilla
80
Universidad Galileo
Oscar Bonilla
81
Universidad Galileo
num
Oscar Bonilla
82
Universidad Galileo
num
Oscar Bonilla
83
Universidad Galileo
num
Oscar Bonilla
84
Universidad Galileo
num
Oscar Bonilla
85
Universidad Galileo
num
num
Oscar Bonilla
86
Universidad Galileo
num
num
Oscar Bonilla
+
Universidad Galileo
87
num
num
Oscar Bonilla
num
Universidad Galileo
88
num
num
Oscar Bonilla
num
Universidad Galileo
89
Resumen
Overview del anlisis lxico Qu es anlisis sintctico? Gramticas libres de contexto Derivaciones y Arboles de Parseo Top-down vs. Bottom-up Parsing Gramticas Ambiguas Implementando un Parser
Oscar Bonilla
90
Universidad Galileo
Rightmost derivation
Encontramos el no-terminal de ms a la derecha y le aplicamos una produccin
Oscar Bonilla
91
Universidad Galileo
Ejemplo de Right-Derivation
Produccin: String: <expr>
<expr>
Oscar Bonilla
92
Universidad Galileo
Ejemplo de Right-Derivation
Produccin: <expr> <expr> <op> <expr> String: <expr> <op> <expr>
<expr> <expr> <op> <expr>
Oscar Bonilla
93
Universidad Galileo
Ejemplo de Right-Derivation
Produccin: <expr> ( <expr> ) String: <expr> <op> ( <expr> )
<expr> <expr> <op> <expr> <expr>
Oscar Bonilla
94
Universidad Galileo
Ejemplo de Right-Derivation
Produccin: <expr> <expr> <op> <expr> String: <expr> <op> ( <expr> <op> <expr> )
<expr> <expr> <op> <expr> <expr> <expr> <op> <expr>
Oscar Bonilla
95
Universidad Galileo
Ejemplo de Right-Derivation
Produccin: <expr> num String: <expr> <op> ( <expr> <op> num )
<expr> <expr> <op> <expr> <expr> <expr> <op> <expr>
num
Oscar Bonilla
96
Universidad Galileo
Ejemplo de Right-Derivation
Produccin: <op> + String: <expr> <op> ( <expr> + num )
<expr> <expr> <op> <expr> <expr> <expr> <op> <expr>
+
Oscar Bonilla
num
Universidad Galileo
97
Ejemplo de Right-Derivation
Produccin: <expr> num String: <expr> <op> ( num + num )
<expr> <expr> <op> <expr> <expr> <expr> <op> <expr>
num
Oscar Bonilla
num
Universidad Galileo
98
Ejemplo de Right-Derivation
Produccin: <op> * String: <expr> * ( num + num )
<expr> <expr> <op> <expr> <expr> <expr> <op> <expr>
num
Oscar Bonilla
num
Universidad Galileo
99
Ejemplo de Right-Derivation
Produccin: <expr> num String: num * ( num + num )
<expr> <expr> <op> <expr> <expr> <expr> <op> <expr>
num
num
Oscar Bonilla
num
Universidad Galileo
100
Ejemplo de Right-Derivation
String: num * ( num + num )
<expr> <expr> <op> <expr> <expr> <expr> <op> <expr>
num
num
Oscar Bonilla
num
Universidad Galileo
101
Ejemplo de Right-Derivation
Oscar Bonilla
<expr> <expr> <op> <expr> <expr> <op> ( <expr> ) <expr> <op> ( <expr> <op> <expr> ) <expr> <op> ( <expr> <op> num ) <expr> <op> ( <expr> + num ) <expr> <op> ( num + num ) <expr> * ( num + num ) num * ( num + num )
102 Universidad Galileo
Oscar Bonilla
103
Universidad Galileo
Top-down Parsing
Left-most derivation <expr> <expr> <op> <expr> num <op> <expr> num * <expr> num * ( <expr> ) num * ( <expr> <op> <expr> ) num * ( num <op> <expr> ) num * ( num + <expr> ) num * ( num + num )
Oscar Bonilla
104
Universidad Galileo
105
Universidad Galileo
Bottom-up Parsing
Right-most derivation <expr> <expr> <op> <expr> <expr> <op> ( <expr> ) <expr> <op> ( <expr> <op> <expr> ) <expr> <op> ( <expr> <op> num ) <expr> <op> ( <expr> + num ) <expr> <op> ( num + num ) <expr> * ( num + num ) num * ( num + num )
Oscar Bonilla
106
Universidad Galileo
Bottom-up Parsing
Right-most derivation <expr> <expr> <op> <expr> <expr> <op> ( <expr> ) <expr> <op> ( <expr> <op> <expr> ) <expr> <op> ( <expr> <op> num ) <expr> <op> ( <expr> + num ) <expr> <op> ( num + num ) <expr> * ( num + num ) num * ( num + num )
Oscar Bonilla
107
Universidad Galileo
Bottom-up Parsing
Right-most derivation num * ( num + num ) <expr> * ( num + num ) <expr> <op> ( num + num ) <expr> <op> ( <expr> + num ) <expr> <op> ( <expr> <op> num ) <expr> <op> ( <expr> <op> <expr> ) <expr> <op> ( <expr> ) <expr> <op> <expr> <expr>
Oscar Bonilla
108
Universidad Galileo
Resumen
Overview de anlisis lxico Qu es anlisis sintctico? Gramticas libres de contexto Derivaciones y Arboles de Parseo Top-down vs. Bottom-up Parsing Gramticas Ambiguas Implementando un Parser
Oscar Bonilla
109
Universidad Galileo
Otro Ejemplo
Entrada: 124 + 23.5 * 86 Token Stream: num + num * num
Oscar Bonilla
110
Universidad Galileo
Otro Ejemplo
Produccin: String: <expr>
<expr>
Oscar Bonilla
111
Universidad Galileo
Otro Ejemplo
Produccin: <expr> <expr> <op> <expr> String: <expr> <op> <expr>
<expr> <expr> <op> <expr>
Oscar Bonilla
112
Universidad Galileo
Otro Ejemplo
Produccin: <expr> <num> String: num <op> <expr>
<expr> <expr> <op> <expr>
num
Oscar Bonilla
113
Universidad Galileo
Otro Ejemplo
Produccin: <op> + String: num + <expr>
<expr> <expr> <op> <expr>
num
Oscar Bonilla
114
Universidad Galileo
Otro Ejemplo
Produccin: <expr> <expr> <op> <expr> String: num + <expr> <op> <expr>
<expr> <expr> <op> <expr> <expr> <expr>
num
<op>
Oscar Bonilla
115
Universidad Galileo
Otro Ejemplo
Produccin: <expr> num String: num + num <op> <expr>
<expr> <expr> <op> <expr> <expr> <expr>
num
<op>
num
Oscar Bonilla
116
Universidad Galileo
Otro Ejemplo
Produccin: <op> * String: num + num * <expr>
<expr> <expr> <op> <expr> <expr> <expr>
num
<op>
num
Oscar Bonilla
117
Universidad Galileo
Otro Ejemplo
Produccin: <expr> num String: num + num * num
<expr> <expr> <op> <expr> <expr> <expr>
num
<op>
num
num
Oscar Bonilla
118
Universidad Galileo
Otro Ejemplo
String: num + num * num
<expr> <expr> <op> <expr> <expr> <expr>
num
<op>
num
num
Oscar Bonilla
119
Universidad Galileo
Otro Ejemplo
String: num + num * num
Oscar Bonilla
120
Universidad Galileo
Otro Ejemplo
String: <expr>
<expr>
Oscar Bonilla
121
Universidad Galileo
Otro Ejemplo
Produccin: <expr> <expr> <op> <expr> String: <expr> <op> <expr>
<expr> <expr> <op>
<expr>
Oscar Bonilla
122
Universidad Galileo
Otro Ejemplo
Produccin: <expr> <num> String: num <op> <expr>
<expr> <expr> <op> <expr>
num
Oscar Bonilla
123
Universidad Galileo
Otro Ejemplo
Produccin: <expr> <num> String: num <op> <expr>
<expr> <expr> <op> <expr>
num
Pero tambin podemos usar esta produccin <expr> <expr> <op> <expr>
Oscar Bonilla
124
Universidad Galileo
Otro Ejemplo
Produccin: String: <expr> <op> <expr>
<expr> <expr> <op> <expr>
Pero tambin podemos usar esta produccin <expr> <expr> <op> <expr>
Oscar Bonilla
125
Universidad Galileo
Otro Ejemplo
Produccin: <expr> <expr> <op> <expr> String: <expr> <op> <expr> <op> <expr>
<expr> <expr> <expr> <expr> <op>
<expr>
<op>
Oscar Bonilla
126
Universidad Galileo
Otro Ejemplo
Produccin: <expr> <num> String: num <op> <expr> <op> <expr>
<expr> <expr> <expr> <expr> <op>
<expr>
<op>
num
Oscar Bonilla
127
Universidad Galileo
Otro Ejemplo
Produccin: <op> <+> String: num + <expr> <op> <expr>
<expr> <expr> <expr> <expr> <op>
<expr>
<op>
num
Oscar Bonilla
128
Universidad Galileo
Otro Ejemplo
Produccin: <expr> <num> String: num + num <op> <expr>
<expr> <expr> <expr> <expr> <op>
<expr>
<op>
num
num
Oscar Bonilla
129
Universidad Galileo
Otro Ejemplo
Produccin: <op> * String: num + num * <expr>
<expr> <expr> <expr> <expr> <op>
<expr>
<op>
num
num
Oscar Bonilla
130
Universidad Galileo
Otro Ejemplo
Produccin: <expr> <num> String: num + num * num
<expr> <expr> <expr> <expr> <op>
<expr>
<op>
num
num
num
Oscar Bonilla
131
Universidad Galileo
Otro Ejemplo
String: num + num * num
<expr> <expr> <expr> <expr> <op>
<expr>
<op>
num
num
num
Oscar Bonilla
132
Universidad Galileo
num
num
num
num
Oscar Bonilla
133
Universidad Galileo
La Gramtica es Ambigua
Aplicar diferentes ordenes de derivacin produce rboles de parseo diferentes Esto no es bueno!
Lleva a resultados ambiguos Muy probablemente va a producir resultados inesperados
Oscar Bonilla
134
Universidad Galileo
La Gramtica Ambigua
<expr> <expr> <op> <expr> <expr> ( <expr> ) <expr> - <expr> <expr> num <op> + <op> *
Oscar Bonilla
135
Universidad Galileo
Eliminando la Ambiguedad
<expr> <expr> + <term> <expr> <term> <term> <term> * <unit> <term> <unit> <expr> <unit> num <expr> <unit> ( <expr> )
<expr> <op> <expr> ( <expr> ) <expr> - <expr> <expr> num <op> + <op> *
Universidad Galileo
Oscar Bonilla
136
Eliminando la Ambiguedad
String: num + num * num
<expr> <expr> <term>
+
<term>
<term> <unit>
<unit>
<unit>
num
num
Oscar Bonilla
num
137 Universidad Galileo
* (
<expr>
<expr> <term>
num
+
<term> <unit> <unit>
num
num
Oscar Bonilla
138
Universidad Galileo
Oscar Bonilla
139
Universidad Galileo
Oscar Bonilla
140
Universidad Galileo
Resumen
Overview de anlisis lxico Qu es anlisis sintctico? Gramticas libres de contexto Derivaciones y Arboles de Parseo Top-down vs. Bottom-up Parsing Gramticas Ambiguas Implementando un Parser
Oscar Bonilla
141
Universidad Galileo
Implementando un Parser
La implementacin de un parser para algunas CFGs puede ser muy difcil
Tenemos que ver el input y elegir una produccin No podemos elegir la produccin correcta sin ver que viene en el input (looking ahead)
Oscar Bonilla
142
Universidad Galileo
Puede que tengamos que ver un montn de smbolos del input antes de decidirnos por una produccin
Oscar Bonilla
143
Universidad Galileo
Implementando un Parser
Implementar un parser para algunas CFGs puede ser muy difcil
Tenemos que ver el input y elegir una produccin No podemos elegir una produccin sin look ahead
Oscar Bonilla
144
Universidad Galileo
Implementando un Parser
Implementar un parser para algunas CFGs puede ser muy difcil
Tenemos que ver el input y elegir una produccin No podemos elegir una produccin sin look ahead
Oscar Bonilla
145
Universidad Galileo
Implementando un Parser
Implementar un parser para algunas CFGs puede ser muy difcil
Tenemos que ver el input y elegir una produccin No podemos elegir una produccin sin look ahead
(
L - parsear de izquierda a derecha R parsear de derecha a izquierda
Oscar Bonilla
146
Universidad Galileo
Implementando un Parser
Implementar un parser para algunas CFGs puede ser muy difcil
Tenemos que ver el input y elegir una produccin No podemos elegir una produccin sin look ahead
147
Universidad Galileo
Implementando un Parser
Implementar un parser para algunas CFGs puede ser muy difcil
Tenemos que ver el input y elegir una produccin No podemos elegir una produccin sin look ahead
(
Nmero de caracteres de lookahead
Oscar Bonilla
148
Universidad Galileo
Implementando un Parser
Implementar un parser para algunas CFGs puede ser muy difcil
Tenemos que ver el input y elegir una produccin No podemos elegir una produccin sin look ahead
(
Ejemplos: LL(0), LR(1)
Oscar Bonilla
149
Universidad Galileo
Siguiente Clase
Cmo implementar un Parser Cmo construir un parser engine para un parser shift-reduce Vamos a ver
LR(0) LR(1) LALR(1)
Parser Engine
Oscar Bonilla
150
Universidad Galileo
Resumen
Qu es anlisis sintctico? Diferencia entre anlisis lxico y anlisis sintctico Gramticas libres de contexto Arboles de Parseo Derivaciones left-most y right-most Top-down and bottom-up parsing Gramticas Ambiguas Implementacin de Parsers
Oscar Bonilla
151
Universidad Galileo
Grupos
Ya tienen que tener grupos Si no tienen grupo todava, hagnlo! Los listados de grupos van a estar en el Web
Oscar Bonilla
152
Universidad Galileo