BNF GENERAL
BNF y EBNF
Brevemente, lo necesario para especificar el lenguaje sobre
el que vamos a trabajar.
JLEX y JCUP
Breve descripción del las herramientas para generar el parser
o analizadorsintáctico.
2do obligatorio
Vamos a ver la letra, el entorno de trabajo, los textos que se
imprimen, y un ejemplo de entrada y salida.
BNF
(Backus–Naur Form)
• Notación formal para definir lasintaxis de un lenguaje
• Usada para especificar la mayoría de los lenguajes de
programación
• Metasímbolos:
::=
se define como
|
or
{}
repetición
[]
opcional
• Losterminales entre comillas y negrita, por ejemplo: 'if', '5'
Ejemplo BNF
Gramática para representar números con decimales
numero
::= entPos
| entPos '.' entPos
entPos
::= digito
| digito entPosdigito
::= '0' | '1' | '2' | '3' | '4'
| '5' | '6' | '7' | '8' | '9'
E-BNF
(Extended BNF)
Se agrega:
?
Opcional
*
0 a n veces
+
1 a n veces
Ejemplo anterior con E-BNFnumero ::= digito + ( '.' digito + ) ?
digito ::= '0' | '1' | '2' | '3' | '4'
| '5' | '6' | '7' | '8' | '9'
JLEX y JCUP
JLEX
Generador de analizadores lexicográficos para Java.
Usaexpresiones regulares para reconocer los terminales del
lenguaje, por ejemplo: palabras claves, identificadores,
números, strings, etc. Se entrega hecho en el archivo:
Principal.java
JCUP
Generadorde analizadores sintácticos (parsers) en Java.
Manual de JCUP (versón 0.10j)
Terminales
JLEX
Principal.java
javac
Gramática
Sintactico.sin
parser.java
JCUP
sym.java
Principal.class+
*.class
Archivo
de entrada
Principal.class
+
*.class
Tira (o código fuente) del
lenguaje definido en la letra
del obligatorio.
java
Archivo
de salida
Si reconoce, devuelve0 error,
e imprime las estructuras
reconocidas.
Sino, imprime: “Error
sintactico” donde se trancó.
Scripts útiles
seteos.bat
configura el PATH y el CLASSPATH, hay que personalizarlo...
Regístrate para leer el documento completo.