UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
Facultad de Ingeniería de Sistemas
LC – T2
TEM
A
Curso:
Lenguajes y compiladores
Profesor:
Pariona Quispe, Jaime Ruben
Alumno:
Chachi Meza, Leonardo Juan Felix 18200060
Ponce Simon, Jose Carlos Andres 19200150
Yapuchura Turpo, Andres Julian 18200053
Nuestro autómata con pilas fue desarrollado e implementado en el programa NetBeans
(lenguaje de programación en Java), específicamente en la versión 8.0.
A continuación, se mostrará las reglas de producción de nuestro autómata de pilas:
Estado de Dato de Estado de Empilar Empilar
Pila 1 Pila 2
salida entrada llegada Pila 1 Pila 2
Q0 if P0 → Q0 if -
Q0 while P0 → Q0 while -
Q0 if if → Q0 If -
Q0 if while → Q0 If -
Q0 while if → Q0 while -
Q0 while while → Q0 while -
Q0 while else → Q0 while -
Q0 endif if → Q0 t -
Q0 wend while → Q0 t -
Q0 else if P0 → Q0 else -
Q0 endif else → Q0 tt -
Q0 $ P0 P0 → Q0 - -
Q0 ( while → Q1 - (
Q0 ( if → Q1 - (
Q0 I P0 P0 → Q0 - I
Q0 I If → Q0 - I
Q0 I while → Q0 - I
Q0 I else → Q0 - I
Q0 = P0 I → Q0 = -
Q0 = If → Q0 = -
Q0 = while → Q0 = -
Q0 = else → Q0 = -
Q0 N = I → Q0 t t
Q0 I = I → Q0 t t
Q1 I ( → Q2 I -
Q1 N ( → Q2 I -
Q2 COND I → Q3 - -
Q3 I I → Q4 t -
Q3 N I → Q4 t -
Q4 ) ( → Q5 - )
Q5 while while → Q0 while tt
Q5 while if → Q0 while tt
Q5 if while → Q0 if tt
Q5 if if → Q0 if tt
Q5 endif ) → Q0 t tt
Q5 wend ) → Q0 t tt
Q5 I ) → Q6 I t
Q5 N ) → Q6 I t
Q6 = I → Q7 - -
Q7 I ( → Q0 t t
Q7 N ( Q0 t t
Donde:
I: Identificador
N: Número
COND: son las condicionales (<=, >, <, >=, =)
La ventana de nuestro reconocedor es el siguiente:
En la casilla “Cadena fuente” debemos escribir el texto que será analizado al momento de
pulsar el botón “Analizar”, en la casilla del resultado se mostrara si dicha cadena es reconocida
o no.
Reglas de uso:
Algunos ejemplos que puede reconocer:
1er ejemplo
a=7
while(a<b)
s=f
if(s>g)
s=s
else
j=k
while(o>r)
p=k
wend
endif
wend
2do ejemplo
b=7
a=5
while(c=a)
dato=45
wend
Ejemplos en el programa:
Reconoce
No reconoce, ya que luego se inicia la sentencia “if” pero no se finaliza con “endif”