0% encontró este documento útil (0 votos)
52 vistas4 páginas

Autómata de Pilas en Java: Análisis Sintáctico

Este documento presenta un autómata con pilas desarrollado en Java para reconocer lenguajes de programación. Describe las reglas de producción del autómata y los estados por los que pasa al analizar el código. También muestra ejemplos de código que puede y no puede reconocer el autómata.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
52 vistas4 páginas

Autómata de Pilas en Java: Análisis Sintáctico

Este documento presenta un autómata con pilas desarrollado en Java para reconocer lenguajes de programación. Describe las reglas de producción del autómata y los estados por los que pasa al analizar el código. También muestra ejemplos de código que puede y no puede reconocer el autómata.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

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”

También podría gustarte