SlideShare una empresa de Scribd logo
1 de 27
INTRODUCCIÓN A JFLEX  Y JAVA CUP Julio Rene Santizo Ochoa
Fases del compilador
Scanner Expresiones regulares Parser Gramatica Lexema Produccion
Análisis descendente LL1 Análisis ascendente SLR LR1 LALR
Que es JFlex? Es una herramienta que genera analizadores lexicos, escritos en Java.
Que es JFlex? Definicion del AL JFlex Analizador Lexico
Que es Java CUP Es una herramienta para la construcción de analizadores sintácticos que genera parsers escritos en java. Los parsers que se obtienen utilizan el método de análisis ascendente LALR
Que es Java CUP Definicion del AS CUP Analizador Sintactico
Como se usan? Se les da un archivo de entrada, con las especificaciones del analizador que queremos generar, estas herramientas se encargan de generarlos y luego podemos utilizar los analizadores generados, en cualquier proyecto de Java.
Como se usan? Para utilizarlos, debemos tenerlos dentro del classpath, invocarlos y luego utilizar las clases generadas como querramos.
Que es el CLASSPATH? The Classpath is an argument set on the command-line, or through an environment variable, that tells the Java Virtual Machine where to look for user-defined classes and packages in Java programs.
Que es una variable de entorno? export CLASSPATH =  echo $CLASSPATH
EJEMPLO #1
Integracion con eclipse Agregar external tool jflex Agregar external tool java_cup Agregar biblioteca java_cup.runtime Configurar builders
EJEMPLO #2
Archivos .jflex CODIGO DE USUARIO %% OPCIONES Y MACROS %% REGLAS Y ACCIONES
Codigo de usuario Este codigo, se copia literalmente a la clase del scanner generado. Si esta seccion termina con un comentario de documentacion de la clase para javadoc, se coloca este comentario, de lo contrario se genera un comentario automatico.
Opciones y macros Todas las opciones empiezan con % %class %public %apiprivate %{ ... %}
Opciones y macros %init{ ... %init} %cup %ignorecase %char %line %column MACRO = exp regular
Estados %states <STRING> { expr1  { action1 } expr2  { action2 } }
Reglas y acciones '[:jletter:]'  '[:jletterdigit:]'  '[:letter:]'  '[:digit:]'  '[:uppercase:]'  '[:lowercase:]'  '.'
Reglas y acciones [a-zA-Z] [abc] [^a]
Reglas y acciones * unary postfix operators ('*', '+', '?', {n}, {n,m}) * unary prefix operators ('!', '~') * concatenation (RegExp::= RegExp Regexp) * union (RegExp::= RegExp '|' RegExp)
Funciones en las acciones yytext() Devuelve el lexema reconocido. yylength() Devuelve el la longitud del lexema. yycharat( int n ) Devuelve el enésimo carácter del lexema reconocido. yychar yyline yycolumn
Archivos .cup Package e imports Codigo de usuario Lista de simbolos Precedencia y asociacion Gramatica
Bibliografia http://jflex.de/manual.html http://www2.cs.tum.edu/projects/cup/manual.html LIBRO DEL DRAGON
Material http://www.coecys.com/archivos/MaterialJlexyCup.zip

Más contenido relacionado

La actualidad más candente

Estructurabsicadeunprogramaendevc 140605195118-phpapp02(2)
Estructurabsicadeunprogramaendevc 140605195118-phpapp02(2)Estructurabsicadeunprogramaendevc 140605195118-phpapp02(2)
Estructurabsicadeunprogramaendevc 140605195118-phpapp02(2)
Maztherprozh
 
Creacion de scripts en linux
Creacion de scripts en linuxCreacion de scripts en linux
Creacion de scripts en linux
Gabriel Calderon
 
Primer programa en java
Primer programa en javaPrimer programa en java
Primer programa en java
martaferrari
 
4035426 ejercicios-resueltos-en-pascal
4035426 ejercicios-resueltos-en-pascal4035426 ejercicios-resueltos-en-pascal
4035426 ejercicios-resueltos-en-pascal
Luis Fernando Jimenez
 

La actualidad más candente (19)

Informe interprete sencillo irony y c sharp
Informe interprete sencillo irony y c sharpInforme interprete sencillo irony y c sharp
Informe interprete sencillo irony y c sharp
 
Sintaxisenjava
Sintaxisenjava Sintaxisenjava
Sintaxisenjava
 
Interprete sencillo utilizando irony y c sharp
Interprete sencillo utilizando irony y c sharpInterprete sencillo utilizando irony y c sharp
Interprete sencillo utilizando irony y c sharp
 
Shell script en linux
Shell script en linuxShell script en linux
Shell script en linux
 
Estructurabsicadeunprogramaendevc 140605195118-phpapp02(2)
Estructurabsicadeunprogramaendevc 140605195118-phpapp02(2)Estructurabsicadeunprogramaendevc 140605195118-phpapp02(2)
Estructurabsicadeunprogramaendevc 140605195118-phpapp02(2)
 
Creacion de scripts en linux
Creacion de scripts en linuxCreacion de scripts en linux
Creacion de scripts en linux
 
preparedstatement
preparedstatementpreparedstatement
preparedstatement
 
Librerias java
Librerias javaLibrerias java
Librerias java
 
Workshop iOS 4: Closures, generics & operators
Workshop iOS 4: Closures, generics & operatorsWorkshop iOS 4: Closures, generics & operators
Workshop iOS 4: Closures, generics & operators
 
Comandos java
Comandos javaComandos java
Comandos java
 
COMANDOS DE JAVA
COMANDOS DE JAVACOMANDOS DE JAVA
COMANDOS DE JAVA
 
Primer programa en java
Primer programa en javaPrimer programa en java
Primer programa en java
 
Informe tecnico u4 final
Informe tecnico u4 finalInforme tecnico u4 final
Informe tecnico u4 final
 
LibreríAs De Java
LibreríAs De JavaLibreríAs De Java
LibreríAs De Java
 
Clase n°2 3-4 java
Clase n°2 3-4 javaClase n°2 3-4 java
Clase n°2 3-4 java
 
Guia del trabajo con excepciones
Guia del trabajo con excepcionesGuia del trabajo con excepciones
Guia del trabajo con excepciones
 
Documeto compilardorcontadorletras
Documeto compilardorcontadorletrasDocumeto compilardorcontadorletras
Documeto compilardorcontadorletras
 
4035426 ejercicios-resueltos-en-pascal
4035426 ejercicios-resueltos-en-pascal4035426 ejercicios-resueltos-en-pascal
4035426 ejercicios-resueltos-en-pascal
 
Archivos java
Archivos javaArchivos java
Archivos java
 

Similar a J Flex Cup

Realidad Aumentada (RA). Fundamentos de Java
Realidad Aumentada (RA). Fundamentos de JavaRealidad Aumentada (RA). Fundamentos de Java
Realidad Aumentada (RA). Fundamentos de Java
Proyectos Urbe XXI, C.A
 
Cap3
Cap3Cap3
Cap3
CJAO
 
Clase1 introduccinalcurso
Clase1 introduccinalcursoClase1 introduccinalcurso
Clase1 introduccinalcurso
jorg_marq
 

Similar a J Flex Cup (20)

Introduccion a la algoritmia 2011-i
Introduccion a la algoritmia   2011-iIntroduccion a la algoritmia   2011-i
Introduccion a la algoritmia 2011-i
 
Comandos, Sentencias y/o Paquetes del Lenguaje de Programación de Java
Comandos, Sentencias y/o Paquetes del Lenguaje de Programación de JavaComandos, Sentencias y/o Paquetes del Lenguaje de Programación de Java
Comandos, Sentencias y/o Paquetes del Lenguaje de Programación de Java
 
Introducción a la Algoritmia
Introducción a la AlgoritmiaIntroducción a la Algoritmia
Introducción a la Algoritmia
 
Introducción a la algoritmia
Introducción a la algoritmiaIntroducción a la algoritmia
Introducción a la algoritmia
 
Introducción a la algoritmia
Introducción a la algoritmiaIntroducción a la algoritmia
Introducción a la algoritmia
 
TABLA DE COMANDO /SENTENCIAS/PAQUETES
TABLA DE COMANDO /SENTENCIAS/PAQUETESTABLA DE COMANDO /SENTENCIAS/PAQUETES
TABLA DE COMANDO /SENTENCIAS/PAQUETES
 
investigación de Comandos, Sentencias y/o Paquetes del Lenguaje de Programaci...
investigación de Comandos, Sentencias y/o Paquetes del Lenguaje de Programaci...investigación de Comandos, Sentencias y/o Paquetes del Lenguaje de Programaci...
investigación de Comandos, Sentencias y/o Paquetes del Lenguaje de Programaci...
 
Realidad Aumentada (RA). Fundamentos de Java
Realidad Aumentada (RA). Fundamentos de JavaRealidad Aumentada (RA). Fundamentos de Java
Realidad Aumentada (RA). Fundamentos de Java
 
Comandos
ComandosComandos
Comandos
 
Ejercicio compiladores
Ejercicio compiladoresEjercicio compiladores
Ejercicio compiladores
 
Programacion java basica
Programacion java basicaProgramacion java basica
Programacion java basica
 
TABLA DE COMANDO /SENTENCIAS/PAQUETES
TABLA DE COMANDO /SENTENCIAS/PAQUETESTABLA DE COMANDO /SENTENCIAS/PAQUETES
TABLA DE COMANDO /SENTENCIAS/PAQUETES
 
Ap01 java
Ap01 javaAp01 java
Ap01 java
 
Unidad 2 programación estructurada
Unidad 2 programación estructuradaUnidad 2 programación estructurada
Unidad 2 programación estructurada
 
Cap3
Cap3Cap3
Cap3
 
Cap3 compiladores
Cap3 compiladoresCap3 compiladores
Cap3 compiladores
 
Jyoc java-cap21 jse avanzado
Jyoc java-cap21 jse avanzadoJyoc java-cap21 jse avanzado
Jyoc java-cap21 jse avanzado
 
Java Script Frame Works
Java Script Frame WorksJava Script Frame Works
Java Script Frame Works
 
Compilador concatenacion
Compilador concatenacionCompilador concatenacion
Compilador concatenacion
 
Clase1 introduccinalcurso
Clase1 introduccinalcursoClase1 introduccinalcurso
Clase1 introduccinalcurso
 

Último

PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
lupitavic
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Fernando Solis
 

Último (20)

PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
 
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJOACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdf
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonables
 
Abril 2024 - Maestra Jardinera Ediba.pdf
Abril 2024 -  Maestra Jardinera Ediba.pdfAbril 2024 -  Maestra Jardinera Ediba.pdf
Abril 2024 - Maestra Jardinera Ediba.pdf
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 

J Flex Cup