Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Analisis Sintactico
Analisis Sintactico
<S> ε
Ejemplo de una CFG
<S> ( <S> ) <S>
<S> ε Terminales
Ejemplo de una CFG
<S> ( <S> ) <S>
<S> ε No-terminales
Ejemplo de una CFG
<S> ( <S> ) <S>
<S> ε Producciones
Los lenguajes regulares son un subconjunto
de los lenguajes libres de contexto
Expresión Regular Gramática libre de contexto
a <A> a
Si p y q son expresiones regulares, usando CFGs <P> y <Q>
p·q <S> <P> <Q>
Qué es?
??? <S> <S> <P>
<S> <P>
P? ???
Entonces por qué usar expresiones
regulares?
• Separar el análisis sintáctico en partes léxica y no-
léxica es una buena modularización
<op> + | *
Pregunta: Cuál es el lenguaje
definido por esta CFG?
<S> a<S>a | aa
Derivaciones
• Cómo mostramos que una secuencia de tokens
es aceptada por una CFG?
• Una producción es usada para derivar una
secuencia de tokens a partir del símbolo de
inicio
• Dados los strings , y
y una producción A
Un solo paso de la derivación es
A
Ejemplo de Derivación
• Gramática
<expr> <expr><op><expr> | (<expr>) | -<expr> | num
<op> + | *
• Entrada
36 * ( 8 + 23.4)
• Token Stream
num ‘*’ ‘(‘ num ‘+’ num ‘)’
Oscar Bonilla 25 Universidad Galileo
Arbol de Parseo
<expr>
Ejemplo de Arbol de Parseo
<expr> <expr> <op> <expr>
<expr>
<expr>
num
Ejemplo de Arbol de Parseo
<op> ‘*’
<expr>
num *
Ejemplo de Arbol de Parseo
<expr> ‘(‘ <expr> ‘)’
<expr>
<expr>
num * ( )
Ejemplo de Arbol de Parseo
<expr> <expr> <op> <expr>
<expr>
<expr>
num * ( )
<expr> <op> <expr>
Ejemplo de Arbol de Parseo
<expr> num
<expr>
<expr>
num * ( )
<expr> <op> <expr>
num
Ejemplo de Arbol de Parseo
<op> ‘+’
<expr>
<expr>
num * ( )
<expr> <op> <expr>
num +
Ejemplo de Arbol de Parseo
<expr> num
<expr>
<expr>
num * ( )
<expr> <op> <expr>
num + num
Ejemplo de Arbol de Parseo
num ‘*’ ‘(‘ num ‘+’ num ‘)’
<expr>
<expr>
num * ( )
<expr> <op> <expr>
num + num
La Gramática es Ambigua
• Aplicar diferentes ordenes de derivación
produce árboles de parseo diferentes
• Esto no es bueno!
– Lleva a resultados ambiguos
– Muy probablemente va a producir resultados
inesperados
• Algunas veces el reescribir la gramática con
más no-terminales va a eliminar la ambiguedad