Universidad de Costa Rica
Escuela de Ciencias de la
Computación e Informática
Profesor Adolfo Di Mare
CI-1322
I Semestre 2004
[<=] [home] [<>] [\/] [=>]
CI-1322 Autómatas y compiladores

Tarea #3 [solución]

Analizador sintáctico para la calculadora

Ejecución desde expr()
preAnalisis
Regla aplicada
_posfijo
• expr
• term r1
• factor r2 r1
• ( expr ) r2 r1
( • expr ) r2 r1
( • term r1 ) r2 r1
( • factor r2 r1 ) r2 r1
( • ( expr ) r2 r1 ) r2 r1
( ( • expr ) r2 r1 ) r2 r1
( ( • term r1 ) r2 r1 ) r2 r1
( ( • factor r2 r1 ) r2 r1 ) r2 r1
( ( • num r2 r1 ) r2 r1 ) r2 r1
( ( • 5 r2 r1 ) r2 r1 ) r2 r1
( ( 5 • r2 r1 ) r2 r1 ) r2 r1
( ( 5 • * factor r2 r1 ) r2 r1 ) r2 r1
( ( 5 * • factor r2 r1 ) r2 r1 ) r2 r1
( ( 5 * • num r2 r1 ) r2 r1 ) r2 r1
( ( 5 * • 3 r2 r1 ) r2 r1 ) r2 r1
( ( 5 * 3 • r2 r1 ) r2 r1 ) r2 r1
( ( 5 * 3 • r1 ) r2 r1 ) r2 r1
( ( 5 * 3 • ) r2 r1 ) r2 r1
( ( 5 * 3 ) • r2 r1 ) r2 r1
( ( 5 * 3 ) • r1 ) r2 r1
( ( 5 * 3 ) • ) r2 r1
( ( 5 * 3 ) ) • r2 r1
( ( 5 * 3 ) ) • r1
( ( 5 * 3 ) ) •
• ( ( 5 * 3 ) )
• ( ( 5 * 3 ) )
• ( ( 5 * 3 ) )
( • ( 5 * 3 ) )
( • ( 5 * 3 ) )
( • ( 5 * 3 ) )
( • ( 5 * 3 ) )
( • ( 5 * 3 ) )
( ( • 5 * 3 ) )
( ( • 5 * 3 ) )
( ( • 5 * 3 ) )
( ( • 5 * 3 ) )
( ( • 5 * 3 ) )
( ( 5 • * 3 ) )
( ( 5 • * 3 ) )
( ( 5 * • 3 ) )
( ( 5 * • 3 ) )
( ( 5 * • 3 ) )
( ( 5 * 3 • ) )
( ( 5 * 3 • ) )
( ( 5 * 3 • ) )
( ( 5 * 3 ) • )
( ( 5 * 3 ) • )
( ( 5 * 3 ) • )
( ( 5 * 3 ) ) •
( ( 5 * 3 ) ) •
( ( 5 * 3 ) ) •
expr ==> term r1
term ==> factor r2
factor ==> ( expr )

expr ==> term r1
term ==> factor r2
factor ==> ( expr )

expr ==> term r1
term ==> factor r2
factor ==> num
num ==> 5

r2 ==> * factor r2

factor ==> num
num ==> 3

r2 ==> £
r1 ==> £

r2 ==> £
r1 ==> £

r2 ==> £
r1 ==> £
""
""
""
""
""
""
""
""
""
""
""
""
"5"
"5"
"5"
"5"
"5"
"5"
"53*"
"53*"
"53*"
"53*"
"53*"
"53*"
"53*"
"53*"
"53*"
Figura 1: Análisis sintáctico de la hilera "((5 * 3))"

      Para explicar qué hace el programa de la segunda tarea programada es conveniente ver cómo se procesa la hilera de entrada paso a paso, de la forma en que se muestra en tabla de la Figura 1. Como producir esa tabla requiere un buen esfuerzo intelectual, en esta tarea usted automtatizará el proceso.

      Para lograr su cometido, modifique el programa de la calculadora de manera que produzca un archivo HTML que contenga la tabla. Si su programa ya estuviera escrito, bastaría haberlo corrido con la hilera de entrada "((5 * 3))" para obtener la tabla HTML que se muestra en la Figura 1. Note que el punto de corte es la posición marcada por "preAnalisis".

      Entregue su tarea por correo electrónico, como lo hizo anteriormente.

[mailto:] Entrega de Tareas

Tiempo de entrega: 1 semana
Modalidad: En parejas

Soluciones

[mailto:] Adolfo Di Mare <adolfo@di-mare.com>.
Copyright © 2004
Derechos de autor reservados © 2004
[home] <> [/\]