SlideShare una empresa de Scribd logo
1 de 7
PONTIFICIA UNIVERSISDA CATOLICA DEL ECUADOR
SEDE SANTO DOMINGO
Capítulo 2

Análisis Lexicográfico
Concepto de analizador léxico
Se encarga de buscar los componentes léxicos o palabras que componen el programa fuente,
según unas reglas o patrones.

Funciones del analizador léxico
El analizador léxico es la primera fase de un compilador. Su principal función consiste en leer
los caracteres de entrada y elaborar como salida una secuencia de componentes léxicos que
utiliza el analizador sintáctico para hacer el análisis.

Simplificación del diseño
U n diseño sencillo es quizás la ventaja más importante. Separar el análisis léxico del análisis
sintáctico a menudo permite simplificar una, otra o ambas fases. Normalmente añadir un
analizador léxico permite simplificar notablemente el analizador sintáctico. Aún más, la
simplificación obtenida se hace especialmente patente cuando es necesario realizar
modificaciones o extensiones al lenguaje inicialmente idead o; en otras palabras, se facilita
el mantenimiento del compilador a medida que el lenguaje evoluciona.

Eficiencia
La división entre análisis léxico y sintáctico también mejora la eficiencia del compilador. Gran
parte del tiempo de compilación se invierte en leer el programa fuente y dividirlo en
componentes léxicos.
Con técnicas especializadas de manejo de buffers para la lectura de caracteres de entrada y
procesamiento de patrones se puede mejorar significativamente el rendimiento de un
compilador.

Portabilidad
Se mejora la portabilidad del compilador, ya que las peculiaridades del alfabeto de
partida, del juego de caracteres base y otras anomalías propias de los dispositivos de entrada
pueden limitarse al analizador léxico.
COMPILADORES
Boris Chungandro
Willian Gallo
PONTIFICIA UNIVERSISDA CATOLICA DEL ECUADOR
SEDE SANTO DOMINGO

Token, patrón y lexema
Patrón: es una expresión regular.
Token: es la categoría léxica asociada a un patrón. Cada token se convierte en un número o
código identificador único. En algunos casos, cada número tiene asociada información
adicional necesaria para las fases posteriores de la etapa de análisis. El concepto de token
coincide directamente con el concepto de terminal desde el punto de vista de la gramática
utilizada por el analizador sintáctico.
Lexema: Es cada secuencia de caracteres concreta que encaja con un patrón.
P.ej: “8", “23" y “50" son algunos lexemas que encajan con el patrón (‘0'|’1'|’2'| ... |’9')+. E l
número de lexemas que puede encajar con un patrón puede ser finito o infinito, p.ej. en el
patrón ‘W ’‘H ’‘I’‘L’‘E ’ sólo encaja el lexema “W H ILE ”.

El generador de analizadores lexicográficos: PCLex
Enestasecciónsedescribelaherramientaactualmentemásextendida,llamada
laespecificacióndeanalizadoresléxicosengeneral

Lex,para

Creacióndeunanalizadorléxico
PCLextienesupropiolenguaje,alquellamaremos
Lexyquepermiteespecificarlaestructuraabstractade unanalizadorléxico

Lospasosparacrearunanalizadorléxicoconestaherramientason
ConstruirunficherodetextoenlenguajeLexquecontienelaestructura
abstractadelanalizador.
Metacompilarelficheroanteriorcon
PCLex.Asíseobtendráunfichero
fuenteenCestándar.Algunasveceshayqueefectuarmodificacionesdirectas
enestecódigo,aunquelasúltimasversionesdePCLexhandisminuidoal
máximoestassituaciones.
CompilarelfuenteenCgeneradoporPCLexconuncompiladorC,conlo
queobtendremosunejecutablequesiguelospasosdescritosenelepígrafe

COMPILADORES
Boris Chungandro
Willian Gallo
PONTIFICIA UNIVERSISDA CATOLICA DEL ECUADOR
SEDE SANTO DOMINGO

Premisas deLexparareconocerlexemas
Elyylex()generadoporPCLexsiguedosdirectricesfundamentalespara reconocer lexemas
en caso de ambigüedad. Estas directrices son, por orden de prioridad:
1. Entrarsiempreporel patrónquereconoceellexemamáslargoposible.
2. Encasodeconflictousaelpatrónqueapareceenprimeraposición.

CcaracteresespecialesdeLex
Sirveparaencerrarcualquiercadenadeliterales.
Haceliteralalsiguientecarácter.Ej.:”reconoceunascomillas.
Tambiénse
utilizaparaexpresar
aquelloscaracteres
quenotienenrepresentacióndirecta
porpantalla:nparaelretornodecarro,

Caracteresdesensibilidadalcontexto
Lexsuministraciertascapacidades
parareconocer
patronesquenoseajustan
aunaexpresiónregular,sinomásbienaunagramáticadecontextolibre

Estadoléxicos
Losestadosléxicosvienenasercomovariableslógicasexcluyentesquesirvenparaindicar
queunpatrónsólopuede aplicarsesielestadoléxicoquellevaasociadoseencuentra activado

ElgeneradordeanalizadoreslexicográficosJFlex
JFlexesungeneradordeanalizadoreslexicográficosdesarrolladoporGerwin Klein
extensión a la herramienta JLexdesarrollada en la Universidad de Princeton.
JFlexestádesarrolladoenJavaygeneracódigoJava.

como

LosprogramasescritosparaJFlextienenunformatoparecidoalosescritos
enPCLex;dehechotodoslospatronesregularesadmisiblesenLextambiénson
admitidosporJFlex,porloqueenesteapartadonoscentraremostansóloenlas
diferenciasyextensiones, tantodepatronescomodel esqueletoquedebeposeer el
ficherodeentradaaJFlex.
COMPILADORES
Boris Chungandro
Willian Gallo
PONTIFICIA UNIVERSISDA CATOLICA DEL ECUADOR
SEDE SANTO DOMINGO

Áreade opciones y declaraciones
Esteárea permite indicar a JFlexuna serie de opcionespara adaptar el fichero
.java resultante de la meta-compilación y que será el que implemente nuestro
analizadorlexicográficoen Java.También permiteasociarun identificadordeusuario
alospatronesmásutilizadoseneláreadereglas.

Opciones
Lasopcionesmásinteresantessepuedenclasificarenopcionesdeclase,de
la
funcióndeanálisis,
defindefichero,dejuegodecaracteresydecontadores.Todas
ellasempiezanporelcarácter%ynopuedenestarprecedidaspornadaenlalíneaen
queaparecen.

Opcionesdeclase
Lasopcionesdeclasemásútilesson:
%classnombreClase.Pordefecto,laclaseque
elanalizadorlexicográficosellamaYylex.

generaJFlexyqueimplementa

%implementsinterface1,interface2,etc.Elprogramadordeberáintroducirlos
métodosnecesariosparahacerefectivadichaimplementación.
%extendsnombreClase.Generaunaclasequeheredadelaclaseindicada.
%public.Generaunaclasepública.
%final.Generaunaclasefinal,delaquenadiepodráheredar.
%abstract.Generaunaclaseabstractadelaquenosepuedencrearobjetos.

COMPILADORES
Boris Chungandro
Willian Gallo
PONTIFICIA UNIVERSISDA CATOLICA DEL ECUADOR
SEDE SANTO DOMINGO
%{ bloqueJava%}.El
declaracionesymétodos

programador

también

puede

incluir

sus

propias

%init{códigoJava%init}.Esposibleincluircódigoenel
constructorgenerado
automáticamente por JFlexpara la clase Yylexmediante el uso de esta opción.

Opcionesdelafuncióndeanálisis
Estasopcionespermitenmodificarel
métodoofunciónencargadade
análisislexicográficoensí.Lasopcionesmásútilesson:

realizar

el

%functionnombreFuncionAnalizadora.Estaopción
permitecambiardenombrealafunciónyylex().
%int.Hacequelafunciónyylex()devuelvavaloresdetipointenlugarde
Yytoken.
%intwrap.Hacequelafunciónyylex()devuelvavaloresdetipoIntegeren lugardeYytoken.
%typenombreTipo.Hacequelafunciónyylex()devuelvavaloresdeltipo
especificado(yaseaprimitivoono)enlugardeYytoken

Opcionesdejuegodecaracteres
Estasopcionespermitenespecificareljuegodecaracteresenelqueestará
codificadalaentradaalanalizadorlexicográficogeneradoporJFlex
%7bit.Eslaopciónpordefecto,yasumequecadacarácterdelaentradaestá
formadoporunúnicobytecuyobitmássignificativoes0,loqueda128 caracteres.
%8bit.Asumequecadacarácterestáformadoporunbytecompleto,loqueda
256caracteres.
%unicode.AsumequelaentradaestaráformadaporcaracteresUnicode.Estono
quieredecirquesetomendosbytesdelaentradaporcadacaráctersinoque
larecuperacióndecaracteressedejarecaerenlaplataformasobrelaquese ejecutayylex().
%ignorecase.Hace que yylex()ignore entremayúsculas yminúsculas mediante el
usodelosmétodostoUpperCaseytoLowerCasedelaclaseCharacter.
COMPILADORES
Boris Chungandro
Willian Gallo
PONTIFICIA UNIVERSISDA CATOLICA DEL ECUADOR
SEDE SANTO DOMINGO

Opcionesdecontadores
%char.Almacenaenlavariableyycharelnúmerodecaracteresquehayentre
elcomienzodelcanaldeentradayelcomienzodellexemaactual.
%line.Almacenaenlavariableyylineelnúmerodelíneaenquecomienzael lexemaactual.
%column.Almacenaenlavariableyycolumnelnúmerodecolumnaenque
comienzaellexemaactual.

Declaraciones.
Ademásdeopciones,elprogramadorpuedeindicardeclaracionesdedostipos
áreaquenosocupa,asaber,declaracionesdeestadosléxicosydeclaracionesde reglas.

enel

Declaracionesdeestadosléxicos.
Losestadoléxicossedeclaranmediantelaopción:
%stateestado1,estado2,etc.

Declaracionesdereglas.
Encasodequeunpatrónseutilicerepetidas
vecesocuandosucomplejidad
es
elevada,esposibleasignarleunnombreyutilizarlo
posteriormenteen
cualquierotra
reglaencerrándoloentrellaves, demaneraanálogaacomoseestudióenLex.
Áreadereglas.
EláreadereglastienelamismaestructuraqueenLex,conlaúnicadiferencia de que es posible
agruparlas reglas a aplicaren un mismo estado léxico.Comoejemplo,lasreglas:
Patrón
[:jletter:]
[:jletterdigit:]
[:letter:]
[:digit:]
[:uppercase:]
[:lowercase:]

Predicadoasociado
isJavaIdentifierStart()
isJavaIdentifierPart()
isLetter()
isDigit()
isUpperCase()
isLowerCase()

FuncionesyvariablesdelaclaseYylex
Tratadefuncionesyvariablesmiembro,porloque,sisonutilizadasfueradelas
léxicas:

acciones

COMPILADORES
Boris Chungandro
Willian Gallo
PONTIFICIA UNIVERSISDA CATOLICA DEL ECUADOR
SEDE SANTO DOMINGO

Yylex(Readerr):
eselconstructordelanalizadorléxico.Tomacomoparámetro
elcanaldeentradadelcualseleeránloscaracteres.
Yytokenyylex():funciónprincipalqueimplementaelanalizadorléxico.Tomalaentradadelpar
ámetroespecificadoenlallamadaalconstructordeYylex.
PuedeelevarunaexcepciónIOException,porloqueserecomiendainvocarla
enelinteriordeunasentenciatry-catch.
Stringyytext():devuelveellexemaactual.
intyylength():devuelveelnúmerodecaracteresdellexemaactual.
voidyyreset(Readerr):cierraelcanaldeentradaactualyredirigelaentrada
haciaelnuevocanal especificadocomoparámetro.
voidyypushStream(Readerr):guardaelcanal
deentradaactual
continúalalecturaporelnuevocanalespecificado.Cuandoéstefinalice
continuaráporelanterior,extrayéndolodelapila.Estafunciónesdeespecial
importanciaparaimplementarladirectiva

enunapilay

voidyypushback(intn):equivalealafunciónyyless()deLex.
yyline,yychareyycolumn:sonlasvariablesgeneradaspor lasopciones%line,
%chary%columnrespectivamente,ycomentadasenelapartado

COMPILADORES
Boris Chungandro
Willian Gallo

Más contenido relacionado

La actualidad más candente

Clase3 guia1-introduccion-compiladores-conceptos
Clase3 guia1-introduccion-compiladores-conceptosClase3 guia1-introduccion-compiladores-conceptos
Clase3 guia1-introduccion-compiladores-conceptosInfomania pro
 
Actividad 3
Actividad 3Actividad 3
Actividad 3maryr_
 
Clase6 conceptos del analisis lexico
Clase6 conceptos del analisis lexicoClase6 conceptos del analisis lexico
Clase6 conceptos del analisis lexicoInfomania pro
 
Ejercicio compiladores
Ejercicio compiladoresEjercicio compiladores
Ejercicio compiladoresSheyli Patiño
 
Clase analisis lexico
Clase analisis lexicoClase analisis lexico
Clase analisis lexicoInfomania pro
 
Análisis Semántico con Cup
Análisis Semántico con CupAnálisis Semántico con Cup
Análisis Semántico con CupLAUNASA NOVENO B
 
Compiladores y analizador léxico
Compiladores y analizador léxicoCompiladores y analizador léxico
Compiladores y analizador léxicokatherine133
 
Test1 de Compiladores
Test1 de CompiladoresTest1 de Compiladores
Test1 de CompiladoresInfomania pro
 
Cap4 compiladores
Cap4 compiladoresCap4 compiladores
Cap4 compiladoresCJAO
 
Clase8 3 ejemplo analisis lexico-sintactico miniugb
Clase8 3 ejemplo analisis lexico-sintactico miniugbClase8 3 ejemplo analisis lexico-sintactico miniugb
Clase8 3 ejemplo analisis lexico-sintactico miniugbInfomania pro
 
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS Infomania pro
 
Analisis semantico
Analisis semanticoAnalisis semantico
Analisis semanticoAreli Gómez
 
Investigacion sobre traductor, interprete y compilador
Investigacion sobre traductor, interprete y compilador   Investigacion sobre traductor, interprete y compilador
Investigacion sobre traductor, interprete y compilador ADOLFOISAIASGARCIASI
 
Generador de codigo intermedio
Generador de codigo intermedioGenerador de codigo intermedio
Generador de codigo intermedioGuillermo
 
Cap1 compiladores
Cap1 compiladoresCap1 compiladores
Cap1 compiladoresCJAO
 

La actualidad más candente (20)

Clase3 guia1-introduccion-compiladores-conceptos
Clase3 guia1-introduccion-compiladores-conceptosClase3 guia1-introduccion-compiladores-conceptos
Clase3 guia1-introduccion-compiladores-conceptos
 
Compilador
CompiladorCompilador
Compilador
 
Compiladores, Analisis Lexico, Ejemplo Minilenguaje
Compiladores, Analisis Lexico, Ejemplo MinilenguajeCompiladores, Analisis Lexico, Ejemplo Minilenguaje
Compiladores, Analisis Lexico, Ejemplo Minilenguaje
 
Actividad 3
Actividad 3Actividad 3
Actividad 3
 
Clase6 conceptos del analisis lexico
Clase6 conceptos del analisis lexicoClase6 conceptos del analisis lexico
Clase6 conceptos del analisis lexico
 
Ejercicio compiladores
Ejercicio compiladoresEjercicio compiladores
Ejercicio compiladores
 
Clase analisis lexico
Clase analisis lexicoClase analisis lexico
Clase analisis lexico
 
Análisis Semántico con Cup
Análisis Semántico con CupAnálisis Semántico con Cup
Análisis Semántico con Cup
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Unidad1 2 Lenguajes y automatas
Unidad1 2  Lenguajes y automatasUnidad1 2  Lenguajes y automatas
Unidad1 2 Lenguajes y automatas
 
Compiladores y analizador léxico
Compiladores y analizador léxicoCompiladores y analizador léxico
Compiladores y analizador léxico
 
Test1 de Compiladores
Test1 de CompiladoresTest1 de Compiladores
Test1 de Compiladores
 
Cap4 compiladores
Cap4 compiladoresCap4 compiladores
Cap4 compiladores
 
Clase8 3 ejemplo analisis lexico-sintactico miniugb
Clase8 3 ejemplo analisis lexico-sintactico miniugbClase8 3 ejemplo analisis lexico-sintactico miniugb
Clase8 3 ejemplo analisis lexico-sintactico miniugb
 
Compiladores, Analisis Lexico Conceptos
Compiladores, Analisis Lexico ConceptosCompiladores, Analisis Lexico Conceptos
Compiladores, Analisis Lexico Conceptos
 
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
 
Analisis semantico
Analisis semanticoAnalisis semantico
Analisis semantico
 
Investigacion sobre traductor, interprete y compilador
Investigacion sobre traductor, interprete y compilador   Investigacion sobre traductor, interprete y compilador
Investigacion sobre traductor, interprete y compilador
 
Generador de codigo intermedio
Generador de codigo intermedioGenerador de codigo intermedio
Generador de codigo intermedio
 
Cap1 compiladores
Cap1 compiladoresCap1 compiladores
Cap1 compiladores
 

Similar a Capítulo 2 compiladores (willian gallo -------boris chungandro)

diaposichap.pptx
diaposichap.pptxdiaposichap.pptx
diaposichap.pptxLuisSimn12
 
Actividad 4.4 y 4.5 Lenguajes y Autómatas Edinson Yahir Sánchez Velázquez.pptx
Actividad 4.4 y 4.5 Lenguajes y Autómatas Edinson Yahir Sánchez Velázquez.pptxActividad 4.4 y 4.5 Lenguajes y Autómatas Edinson Yahir Sánchez Velázquez.pptx
Actividad 4.4 y 4.5 Lenguajes y Autómatas Edinson Yahir Sánchez Velázquez.pptxYahirSnchezDjMix
 
Analizador Léxico, Analizador Sintáctico
Analizador Léxico, Analizador SintácticoAnalizador Léxico, Analizador Sintáctico
Analizador Léxico, Analizador SintácticoRaul Gomez
 
Análisis léxico y análisis sintáctico
Análisis léxico y análisis sintácticoAnálisis léxico y análisis sintáctico
Análisis léxico y análisis sintácticoangiepao1717
 
Compiladores unidad1
Compiladores unidad1Compiladores unidad1
Compiladores unidad1X3025990
 
Lenguajes y Automatas.pptx
Lenguajes y Automatas.pptxLenguajes y Automatas.pptx
Lenguajes y Automatas.pptxdanielloria1024
 
ERRORES LEXICOS Y GENERADORES DE ANALISIS LEXICOS.pptx
ERRORES LEXICOS Y GENERADORES DE ANALISIS LEXICOS.pptxERRORES LEXICOS Y GENERADORES DE ANALISIS LEXICOS.pptx
ERRORES LEXICOS Y GENERADORES DE ANALISIS LEXICOS.pptxAngelesAguilar29
 
Taller de actividades de compiladores 06 06 2019
Taller de actividades de compiladores 06 06 2019Taller de actividades de compiladores 06 06 2019
Taller de actividades de compiladores 06 06 2019DanielRosero23
 
Analizador Sintáctico
Analizador SintácticoAnalizador Sintáctico
Analizador SintácticoPablo Guerra
 

Similar a Capítulo 2 compiladores (willian gallo -------boris chungandro) (20)

diaposichap.pptx
diaposichap.pptxdiaposichap.pptx
diaposichap.pptx
 
Actividad 4.4 y 4.5 Lenguajes y Autómatas Edinson Yahir Sánchez Velázquez.pptx
Actividad 4.4 y 4.5 Lenguajes y Autómatas Edinson Yahir Sánchez Velázquez.pptxActividad 4.4 y 4.5 Lenguajes y Autómatas Edinson Yahir Sánchez Velázquez.pptx
Actividad 4.4 y 4.5 Lenguajes y Autómatas Edinson Yahir Sánchez Velázquez.pptx
 
TALLER ANALISIS LEXICO
TALLER ANALISIS LEXICOTALLER ANALISIS LEXICO
TALLER ANALISIS LEXICO
 
Analizador Léxico, Analizador Sintáctico
Analizador Léxico, Analizador SintácticoAnalizador Léxico, Analizador Sintáctico
Analizador Léxico, Analizador Sintáctico
 
investigacion.pdf
investigacion.pdfinvestigacion.pdf
investigacion.pdf
 
lexico.pptx
lexico.pptxlexico.pptx
lexico.pptx
 
Análisis lexicográfico
Análisis lexicográficoAnálisis lexicográfico
Análisis lexicográfico
 
Análisis léxico y análisis sintáctico
Análisis léxico y análisis sintácticoAnálisis léxico y análisis sintáctico
Análisis léxico y análisis sintáctico
 
investigacion 4.4 y 4.5.pdf
investigacion 4.4 y 4.5.pdfinvestigacion 4.4 y 4.5.pdf
investigacion 4.4 y 4.5.pdf
 
Analisis lexico
Analisis lexicoAnalisis lexico
Analisis lexico
 
Compiladores unidad1
Compiladores unidad1Compiladores unidad1
Compiladores unidad1
 
Lenguajes y Automatas.pptx
Lenguajes y Automatas.pptxLenguajes y Automatas.pptx
Lenguajes y Automatas.pptx
 
Analizador léxico
Analizador léxicoAnalizador léxico
Analizador léxico
 
Analizador léxico
Analizador léxicoAnalizador léxico
Analizador léxico
 
Lexicos.docx
Lexicos.docxLexicos.docx
Lexicos.docx
 
ERRORES LEXICOS Y GENERADORES DE ANALISIS LEXICOS.pptx
ERRORES LEXICOS Y GENERADORES DE ANALISIS LEXICOS.pptxERRORES LEXICOS Y GENERADORES DE ANALISIS LEXICOS.pptx
ERRORES LEXICOS Y GENERADORES DE ANALISIS LEXICOS.pptx
 
Compiladores (1) pedro vasques
Compiladores (1) pedro vasquesCompiladores (1) pedro vasques
Compiladores (1) pedro vasques
 
Analisis lexico automatas i
Analisis lexico automatas iAnalisis lexico automatas i
Analisis lexico automatas i
 
Taller de actividades de compiladores 06 06 2019
Taller de actividades de compiladores 06 06 2019Taller de actividades de compiladores 06 06 2019
Taller de actividades de compiladores 06 06 2019
 
Analizador Sintáctico
Analizador SintácticoAnalizador Sintáctico
Analizador Sintáctico
 

Más de MARCO POLO SILVA SEGOVIA

Autoevaluación portafolio profesor compiladores
Autoevaluación portafolio profesor compiladoresAutoevaluación portafolio profesor compiladores
Autoevaluación portafolio profesor compiladoresMARCO POLO SILVA SEGOVIA
 
Tarea de compiladores carmen vargas_metacompiladordescompilador
Tarea de compiladores carmen vargas_metacompiladordescompiladorTarea de compiladores carmen vargas_metacompiladordescompilador
Tarea de compiladores carmen vargas_metacompiladordescompiladorMARCO POLO SILVA SEGOVIA
 
Autoevaluación portafolio profesor procesos y calidad
Autoevaluación portafolio profesor procesos y calidadAutoevaluación portafolio profesor procesos y calidad
Autoevaluación portafolio profesor procesos y calidadMARCO POLO SILVA SEGOVIA
 
aseguramiento de la calidad de software acs
aseguramiento de la calidad de software acsaseguramiento de la calidad de software acs
aseguramiento de la calidad de software acsMARCO POLO SILVA SEGOVIA
 

Más de MARCO POLO SILVA SEGOVIA (20)

Autoevaluación portafolio profesor compiladores
Autoevaluación portafolio profesor compiladoresAutoevaluación portafolio profesor compiladores
Autoevaluación portafolio profesor compiladores
 
Tutorial compiladores
Tutorial compiladoresTutorial compiladores
Tutorial compiladores
 
Jlex y cup en java
Jlex y cup en javaJlex y cup en java
Jlex y cup en java
 
Lex yacc
Lex yaccLex yacc
Lex yacc
 
Capitulo 3 paul carrera,dego balcazar
Capitulo 3 paul carrera,dego balcazarCapitulo 3 paul carrera,dego balcazar
Capitulo 3 paul carrera,dego balcazar
 
Decompilador y metacompilador
Decompilador y metacompiladorDecompilador y metacompilador
Decompilador y metacompilador
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Tarea de compiladores carmen vargas_metacompiladordescompilador
Tarea de compiladores carmen vargas_metacompiladordescompiladorTarea de compiladores carmen vargas_metacompiladordescompilador
Tarea de compiladores carmen vargas_metacompiladordescompilador
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Registro anecdótico procesos y calidad
Registro anecdótico procesos y calidadRegistro anecdótico procesos y calidad
Registro anecdótico procesos y calidad
 
Autoevaluación portafolio profesor procesos y calidad
Autoevaluación portafolio profesor procesos y calidadAutoevaluación portafolio profesor procesos y calidad
Autoevaluación portafolio profesor procesos y calidad
 
Procesos y calidad i parcial
Procesos y calidad i parcialProcesos y calidad i parcial
Procesos y calidad i parcial
 
Prueba de aplicaciones
Prueba de aplicacionesPrueba de aplicaciones
Prueba de aplicaciones
 
Procesos itil! aviles maruri
Procesos itil! aviles maruriProcesos itil! aviles maruri
Procesos itil! aviles maruri
 
prueba de aplicaciones convencionales
prueba de aplicaciones convencionalesprueba de aplicaciones convencionales
prueba de aplicaciones convencionales
 
aseguramiento de la calidad de software acs
aseguramiento de la calidad de software acsaseguramiento de la calidad de software acs
aseguramiento de la calidad de software acs
 
tecnicas de revisión del software
tecnicas de revisión del softwaretecnicas de revisión del software
tecnicas de revisión del software
 
conceptos de calidad
conceptos de calidadconceptos de calidad
conceptos de calidad
 
Conceptos de calidad
Conceptos de calidadConceptos de calidad
Conceptos de calidad
 
PROCESOS
PROCESOSPROCESOS
PROCESOS
 

Último

POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 

Último (13)

POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 

Capítulo 2 compiladores (willian gallo -------boris chungandro)

  • 1. PONTIFICIA UNIVERSISDA CATOLICA DEL ECUADOR SEDE SANTO DOMINGO Capítulo 2 Análisis Lexicográfico Concepto de analizador léxico Se encarga de buscar los componentes léxicos o palabras que componen el programa fuente, según unas reglas o patrones. Funciones del analizador léxico El analizador léxico es la primera fase de un compilador. Su principal función consiste en leer los caracteres de entrada y elaborar como salida una secuencia de componentes léxicos que utiliza el analizador sintáctico para hacer el análisis. Simplificación del diseño U n diseño sencillo es quizás la ventaja más importante. Separar el análisis léxico del análisis sintáctico a menudo permite simplificar una, otra o ambas fases. Normalmente añadir un analizador léxico permite simplificar notablemente el analizador sintáctico. Aún más, la simplificación obtenida se hace especialmente patente cuando es necesario realizar modificaciones o extensiones al lenguaje inicialmente idead o; en otras palabras, se facilita el mantenimiento del compilador a medida que el lenguaje evoluciona. Eficiencia La división entre análisis léxico y sintáctico también mejora la eficiencia del compilador. Gran parte del tiempo de compilación se invierte en leer el programa fuente y dividirlo en componentes léxicos. Con técnicas especializadas de manejo de buffers para la lectura de caracteres de entrada y procesamiento de patrones se puede mejorar significativamente el rendimiento de un compilador. Portabilidad Se mejora la portabilidad del compilador, ya que las peculiaridades del alfabeto de partida, del juego de caracteres base y otras anomalías propias de los dispositivos de entrada pueden limitarse al analizador léxico. COMPILADORES Boris Chungandro Willian Gallo
  • 2. PONTIFICIA UNIVERSISDA CATOLICA DEL ECUADOR SEDE SANTO DOMINGO Token, patrón y lexema Patrón: es una expresión regular. Token: es la categoría léxica asociada a un patrón. Cada token se convierte en un número o código identificador único. En algunos casos, cada número tiene asociada información adicional necesaria para las fases posteriores de la etapa de análisis. El concepto de token coincide directamente con el concepto de terminal desde el punto de vista de la gramática utilizada por el analizador sintáctico. Lexema: Es cada secuencia de caracteres concreta que encaja con un patrón. P.ej: “8", “23" y “50" son algunos lexemas que encajan con el patrón (‘0'|’1'|’2'| ... |’9')+. E l número de lexemas que puede encajar con un patrón puede ser finito o infinito, p.ej. en el patrón ‘W ’‘H ’‘I’‘L’‘E ’ sólo encaja el lexema “W H ILE ”. El generador de analizadores lexicográficos: PCLex Enestasecciónsedescribelaherramientaactualmentemásextendida,llamada laespecificacióndeanalizadoresléxicosengeneral Lex,para Creacióndeunanalizadorléxico PCLextienesupropiolenguaje,alquellamaremos Lexyquepermiteespecificarlaestructuraabstractade unanalizadorléxico Lospasosparacrearunanalizadorléxicoconestaherramientason ConstruirunficherodetextoenlenguajeLexquecontienelaestructura abstractadelanalizador. Metacompilarelficheroanteriorcon PCLex.Asíseobtendráunfichero fuenteenCestándar.Algunasveceshayqueefectuarmodificacionesdirectas enestecódigo,aunquelasúltimasversionesdePCLexhandisminuidoal máximoestassituaciones. CompilarelfuenteenCgeneradoporPCLexconuncompiladorC,conlo queobtendremosunejecutablequesiguelospasosdescritosenelepígrafe COMPILADORES Boris Chungandro Willian Gallo
  • 3. PONTIFICIA UNIVERSISDA CATOLICA DEL ECUADOR SEDE SANTO DOMINGO Premisas deLexparareconocerlexemas Elyylex()generadoporPCLexsiguedosdirectricesfundamentalespara reconocer lexemas en caso de ambigüedad. Estas directrices son, por orden de prioridad: 1. Entrarsiempreporel patrónquereconoceellexemamáslargoposible. 2. Encasodeconflictousaelpatrónqueapareceenprimeraposición. CcaracteresespecialesdeLex Sirveparaencerrarcualquiercadenadeliterales. Haceliteralalsiguientecarácter.Ej.:”reconoceunascomillas. Tambiénse utilizaparaexpresar aquelloscaracteres quenotienenrepresentacióndirecta porpantalla:nparaelretornodecarro, Caracteresdesensibilidadalcontexto Lexsuministraciertascapacidades parareconocer patronesquenoseajustan aunaexpresiónregular,sinomásbienaunagramáticadecontextolibre Estadoléxicos Losestadosléxicosvienenasercomovariableslógicasexcluyentesquesirvenparaindicar queunpatrónsólopuede aplicarsesielestadoléxicoquellevaasociadoseencuentra activado ElgeneradordeanalizadoreslexicográficosJFlex JFlexesungeneradordeanalizadoreslexicográficosdesarrolladoporGerwin Klein extensión a la herramienta JLexdesarrollada en la Universidad de Princeton. JFlexestádesarrolladoenJavaygeneracódigoJava. como LosprogramasescritosparaJFlextienenunformatoparecidoalosescritos enPCLex;dehechotodoslospatronesregularesadmisiblesenLextambiénson admitidosporJFlex,porloqueenesteapartadonoscentraremostansóloenlas diferenciasyextensiones, tantodepatronescomodel esqueletoquedebeposeer el ficherodeentradaaJFlex. COMPILADORES Boris Chungandro Willian Gallo
  • 4. PONTIFICIA UNIVERSISDA CATOLICA DEL ECUADOR SEDE SANTO DOMINGO Áreade opciones y declaraciones Esteárea permite indicar a JFlexuna serie de opcionespara adaptar el fichero .java resultante de la meta-compilación y que será el que implemente nuestro analizadorlexicográficoen Java.También permiteasociarun identificadordeusuario alospatronesmásutilizadoseneláreadereglas. Opciones Lasopcionesmásinteresantessepuedenclasificarenopcionesdeclase,de la funcióndeanálisis, defindefichero,dejuegodecaracteresydecontadores.Todas ellasempiezanporelcarácter%ynopuedenestarprecedidaspornadaenlalíneaen queaparecen. Opcionesdeclase Lasopcionesdeclasemásútilesson: %classnombreClase.Pordefecto,laclaseque elanalizadorlexicográficosellamaYylex. generaJFlexyqueimplementa %implementsinterface1,interface2,etc.Elprogramadordeberáintroducirlos métodosnecesariosparahacerefectivadichaimplementación. %extendsnombreClase.Generaunaclasequeheredadelaclaseindicada. %public.Generaunaclasepública. %final.Generaunaclasefinal,delaquenadiepodráheredar. %abstract.Generaunaclaseabstractadelaquenosepuedencrearobjetos. COMPILADORES Boris Chungandro Willian Gallo
  • 5. PONTIFICIA UNIVERSISDA CATOLICA DEL ECUADOR SEDE SANTO DOMINGO %{ bloqueJava%}.El declaracionesymétodos programador también puede incluir sus propias %init{códigoJava%init}.Esposibleincluircódigoenel constructorgenerado automáticamente por JFlexpara la clase Yylexmediante el uso de esta opción. Opcionesdelafuncióndeanálisis Estasopcionespermitenmodificarel métodoofunciónencargadade análisislexicográficoensí.Lasopcionesmásútilesson: realizar el %functionnombreFuncionAnalizadora.Estaopción permitecambiardenombrealafunciónyylex(). %int.Hacequelafunciónyylex()devuelvavaloresdetipointenlugarde Yytoken. %intwrap.Hacequelafunciónyylex()devuelvavaloresdetipoIntegeren lugardeYytoken. %typenombreTipo.Hacequelafunciónyylex()devuelvavaloresdeltipo especificado(yaseaprimitivoono)enlugardeYytoken Opcionesdejuegodecaracteres Estasopcionespermitenespecificareljuegodecaracteresenelqueestará codificadalaentradaalanalizadorlexicográficogeneradoporJFlex %7bit.Eslaopciónpordefecto,yasumequecadacarácterdelaentradaestá formadoporunúnicobytecuyobitmássignificativoes0,loqueda128 caracteres. %8bit.Asumequecadacarácterestáformadoporunbytecompleto,loqueda 256caracteres. %unicode.AsumequelaentradaestaráformadaporcaracteresUnicode.Estono quieredecirquesetomendosbytesdelaentradaporcadacaráctersinoque larecuperacióndecaracteressedejarecaerenlaplataformasobrelaquese ejecutayylex(). %ignorecase.Hace que yylex()ignore entremayúsculas yminúsculas mediante el usodelosmétodostoUpperCaseytoLowerCasedelaclaseCharacter. COMPILADORES Boris Chungandro Willian Gallo
  • 6. PONTIFICIA UNIVERSISDA CATOLICA DEL ECUADOR SEDE SANTO DOMINGO Opcionesdecontadores %char.Almacenaenlavariableyycharelnúmerodecaracteresquehayentre elcomienzodelcanaldeentradayelcomienzodellexemaactual. %line.Almacenaenlavariableyylineelnúmerodelíneaenquecomienzael lexemaactual. %column.Almacenaenlavariableyycolumnelnúmerodecolumnaenque comienzaellexemaactual. Declaraciones. Ademásdeopciones,elprogramadorpuedeindicardeclaracionesdedostipos áreaquenosocupa,asaber,declaracionesdeestadosléxicosydeclaracionesde reglas. enel Declaracionesdeestadosléxicos. Losestadoléxicossedeclaranmediantelaopción: %stateestado1,estado2,etc. Declaracionesdereglas. Encasodequeunpatrónseutilicerepetidas vecesocuandosucomplejidad es elevada,esposibleasignarleunnombreyutilizarlo posteriormenteen cualquierotra reglaencerrándoloentrellaves, demaneraanálogaacomoseestudióenLex. Áreadereglas. EláreadereglastienelamismaestructuraqueenLex,conlaúnicadiferencia de que es posible agruparlas reglas a aplicaren un mismo estado léxico.Comoejemplo,lasreglas: Patrón [:jletter:] [:jletterdigit:] [:letter:] [:digit:] [:uppercase:] [:lowercase:] Predicadoasociado isJavaIdentifierStart() isJavaIdentifierPart() isLetter() isDigit() isUpperCase() isLowerCase() FuncionesyvariablesdelaclaseYylex Tratadefuncionesyvariablesmiembro,porloque,sisonutilizadasfueradelas léxicas: acciones COMPILADORES Boris Chungandro Willian Gallo
  • 7. PONTIFICIA UNIVERSISDA CATOLICA DEL ECUADOR SEDE SANTO DOMINGO Yylex(Readerr): eselconstructordelanalizadorléxico.Tomacomoparámetro elcanaldeentradadelcualseleeránloscaracteres. Yytokenyylex():funciónprincipalqueimplementaelanalizadorléxico.Tomalaentradadelpar ámetroespecificadoenlallamadaalconstructordeYylex. PuedeelevarunaexcepciónIOException,porloqueserecomiendainvocarla enelinteriordeunasentenciatry-catch. Stringyytext():devuelveellexemaactual. intyylength():devuelveelnúmerodecaracteresdellexemaactual. voidyyreset(Readerr):cierraelcanaldeentradaactualyredirigelaentrada haciaelnuevocanal especificadocomoparámetro. voidyypushStream(Readerr):guardaelcanal deentradaactual continúalalecturaporelnuevocanalespecificado.Cuandoéstefinalice continuaráporelanterior,extrayéndolodelapila.Estafunciónesdeespecial importanciaparaimplementarladirectiva enunapilay voidyypushback(intn):equivalealafunciónyyless()deLex. yyline,yychareyycolumn:sonlasvariablesgeneradaspor lasopciones%line, %chary%columnrespectivamente,ycomentadasenelapartado COMPILADORES Boris Chungandro Willian Gallo