SlideShare ist ein Scribd-Unternehmen logo
1 von 7
Downloaden Sie, um offline zu lesen
Apuntes de compiladores

El Analizador léxico y su función
El analizador léxico es una de las fases de un compilador, donde su principal
consiste en leer el programa fuente de izquierda a derecha y elaborar como salida
una secuencia de caracteres que tienen un significado, llamados componentes
léxicos o tokens, que son utilizados por el analizador sintáctico para hacer el
análisis.

Esta interacción convierte al analizador léxico en una subrutina del analizador
sintáctico (ver figura 3). Cada vez que el analizador léxico recibe orden “obtén el
siguiente componente léxico” del analizador sintáctico, el analizador léxico lee los
caracteres de entrada hasta que puede identificar el siguiente componente léxico.

Componente léxico

Programa
fuente

Analizador
léxico

Analizador
sintáctico
Obtén el siguiente.
Componente léxico

Tabla de
símbolos
Figura 3.-Interacción de un analizador léxico con el analizador sintáctico

Cada componente léxico es una secuencia lógicamente coherente de caracteres
relativa a un identificador, una palabra reservada, un operador o un carácter de
puntuación.
A la secuencia de caracteres que representa un componente léxico se le llama
lexema (o con su nombre en inglés token). En el caso de los identificadores
creados por el programador no solo se genera un componente léxico, sino que se
genera otro lexema en la tabla de símbolos.

Rubén Jerónimo Yedra

18/31
Apuntes de compiladores
El analizador también puede realizar ciertas funciones secundarias en la interfaz
del usuario como:
 Eliminar del programa fuente comentarios
 Eliminar espacio en blanco en forma de:
 Carácter de espacio en blanco
 Carácter de tab.
 Línea nueva
 Relacionar los mensajes de error del compilador con el programa fuente.

Componentes léxicos, patrones y lexemas
Componente léxico (token):
Secuencia de caracteres que tienen un significado colectivo.

Patrón
Es una regla que va a permitir generar la secuencia de caracteres que puede
representar a un determinado componente léxico.

Lexema
Cadena de caracteres que concuerda con un patrón que escribe un componente
léxico.

En la mayoría de los lenguajes de programación se consideran componentes
léxico:


Palabras reservadas:
Ejemplos:



if, for, while, do

Identificadores:
Asociados de nombres de variables, de funciones o de Tipos definido por el

usuario.


Operadores:
Aritméticos: +, -, *, /, %

Rubén Jerónimo Yedra

19/31
Apuntes de compiladores
Relacionales: >, <, >=, <=, ==, !=
Lógicos: ||, &&, !
Asignación: =


Símbolos especiales:
Paréntesis ( , )
Llaves { , }
Corchetes [ , ]



Número o constantes numéricas:
Ejemplo: 105, -4.2, 5E-2



Literal o constante de caracteres: literales que representan cadenas de
caracteres:
Ejemplo: “el resultado es:”, “los datos son:”



Carácter de puntuación:
Punto y coma (;)
Coma (,)

Nota
 El conjunto de lexema de palabras reservadas es finito, por lo tanto el
componente léxico es finito.


El conjunto de lexema de identificadores es infinito, por lo tanto su
correspondiente componente léxico tiene una infinidad de posibilidades.



El conjunto de lexemas de números o contantes numéricos es infinito, por lo
tanto su correspondientes componente léxico tiene una infinidad de
posibilidades.

Rubén Jerónimo Yedra

20/31
Apuntes de compiladores
Ejemplo:
a) suma=5 + A - 4.3 * dato;
Componentes léxico

Lexema

patrón

Identificador

suma

Letra seguido por letra o numero

Operador de
asignación
Numero o constante
numérica
Operador aritmético
identificador
Operador aritmético
Numero o constante
numérica
Operador aritmético
identificador

=

Carácter (=)

5

Cualquier constante numérica

+
A
4.3

Cualquier caracter + | - | * | / | %
Letra seguido por letra o numero
Cualquier caracter + | - | * | / | %
Cualquier constante numérica

*
dato

Cualquier caracter + | - | * | / | %
Letra seguido por letra o numero

;

Punto y coma(;),coma(,)

Carácter de
puntuación

b) if (nuevo>3.5)
Componentes léxico
Palabra reservada

lexema
if

Símbolo especial

(

patrón
Cualquiera de las palabras
reservadas
Cualquier carácter[,],{,},(,)

identificado
Operador relacional

nuevo
>

Letra seguido por letra o numero
>|>=|<|<=|==|!=

Numero o constante
numérica

3.5

Cualquier constante numérica

Símbolo especial

)

Cualquier carácter[,]{,},(,),;

Rubén Jerónimo Yedra

21/31
Apuntes de compiladores

ALFABETO, CADENA Y LENGUAJE
a) Alfabeto (Conjunto de símbolos)
Un alfabeto denota cualquier conjunto de símbolos.
Ejemplo:
 El conjunto del alfabeto del idioma español
∑= {A, B, C, D, E…., Z}
 El conjunto de los dígitos del código hexadecimal
∑={1,2,3,4,5,6,7,8,9, A, B, C, D, E, F}
 El conjunto de los dígitos del código binario
∑= {0,1}
 El conjunto de caracteres de tabla del código ASCII
 El conjunto de código EBCDIC
b) Cadena(S):
Una cadena sobre algún alfabeto es una secuencia finita de símbolos tomados de
ese alfabeto.

Ejemplo:
∑= {A, B, C,…, Ñ, …,Z}
s=casa
s=ABCD
s=nuevo

alfabeto del idioma español

s∑
s∑
s∑

Longitud de cadena (s) :
Una cadena, también llamada frase o palabra, es el número de apariciones de
símbolos en ∑ y se denota |s|, donde:
0 si s=

ε

|s| =
n si s=a, a2, a3…. an

Siendo ξ, la cadena vacía que tiene una longitud cero.

Ejemplo:
1) s=casado
2) s=ABCD

|s|=6
|s|=4

Rubén Jerónimo Yedra

22/31
Apuntes de compiladores
Algunos términos comunes asociados con las partes de una cadena son:

Figura 4.- Términos de partes de una cadena
c) Lenguajes (L)
El termino lenguaje se refiere a cualquier conjunto de cadena de un alfabeto fijo y
se denota como L C ∑.
Dentro de esta definición se abarca lenguajes abstractos como el conjunto vacio Ø
o {ε} y el conjunto que solo contiene la cadena vacía.
Si x e y son cadenas, entonces la concatenación de x con y se escribe xy, es la
cadena que resulta de agregar y a x.
Ejemplo:

x=caza y=fortunas  xy=cazafortunas

La concatenación se puede visualizar como si estuviera uniendo por medio de un
producto ambas cadenas.

Operaciones aplicadas a los lenguajes
Hay varias operaciones importantes que se pueden aplicar a los lenguajes.
Para el análisis léxico, interesan principalmente la unión, la concatenación y la
cerradura.

Rubén Jerónimo Yedra

23/31
Apuntes de compiladores

Figura 5.- Definiciones de Operaciones sobre lenguajes
Ejemplo:
Sea L, el alfabeto que contiene el conjunto de letras mayúsculas y minúsculas,
L={A,B,C,D,..Z,a,b,c,…z}, y sea D, el alfabeto que contiene el conjunto de los diez
dígitos decimales, M={0,1,2,3,4,5,6,7,8,9}, las operaciones:
1.- LUD
Es el conjunto de cadenas formado por letras y digito
Ejemplo: A0, A01, AB012, A012B
2.- LD
Es el conjunto de cadenas que consta de una letra seguido de un digito.
Ejemplo: B1, a3, r8
3.- L4
Es un conjunto de todas las cadenas formadas por 4 letras (L*L*L*L).
Ejemplo: unos, tavo, alas
4.- L*
Es el conjunto de todas las cadenas de letras, incluyendo la cadena vacia.
Ejemplo: abc, abababdf, Nuevos, casados
5.-L(L υ D)*
El conjunto de todas las cadenas que comienzan con una letra, seguido de
todas las cadenas que tienen una letra y un digito incluyendo la cadena
vacía.
Ejemplo: aa1, b, ba1a2, cb2h4g3
6.D+
Conjunto de uno o más combinaciones de dígitos de cadenas
Ejemplo: 1, 23,3245,283838

Rubén Jerónimo Yedra

24/31

Weitere ähnliche Inhalte

Was ist angesagt?

Analisis de algoritmos complejidad en tiempo y espacio
Analisis de algoritmos complejidad en tiempo y espacioAnalisis de algoritmos complejidad en tiempo y espacio
Analisis de algoritmos complejidad en tiempo y espacioAdamari Cortes
 
Unidad 3 ensambladores
Unidad 3 ensambladoresUnidad 3 ensambladores
Unidad 3 ensambladoresGustavo Davila
 
Memoria Estatica
Memoria EstaticaMemoria Estatica
Memoria EstaticaJ M
 
maquinas de turing jflap
maquinas de turing jflapmaquinas de turing jflap
maquinas de turing jflapAnel Sosa
 
Paradigmas de ingenieria del software
Paradigmas de ingenieria del softwareParadigmas de ingenieria del software
Paradigmas de ingenieria del softwareTensor
 
Protocolos, estandares y tipos de modem
Protocolos, estandares y tipos de modemProtocolos, estandares y tipos de modem
Protocolos, estandares y tipos de modemMirna L. Torres Garcia
 
GESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas OperativosGESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas Operativosadriel91
 
Algoritmo de planificación srt
Algoritmo de planificación srtAlgoritmo de planificación srt
Algoritmo de planificación srtCarlos Solano
 
simulacion numeros pseudoaleatorios
simulacion numeros pseudoaleatoriossimulacion numeros pseudoaleatorios
simulacion numeros pseudoaleatoriosAnel Sosa
 
SIMULACIÓN DE SISTEMAS DISCRETOS
SIMULACIÓN DE SISTEMAS DISCRETOSSIMULACIÓN DE SISTEMAS DISCRETOS
SIMULACIÓN DE SISTEMAS DISCRETOSLeonardoCelleri1
 
Planificación por prioridad
Planificación por prioridadPlanificación por prioridad
Planificación por prioridadGarNav
 
TIPOS DE LENGUAJES ENSAMBLADOR Y CLASIFICACION DE MEMORIAS
TIPOS DE LENGUAJES ENSAMBLADOR Y CLASIFICACION DE MEMORIAS TIPOS DE LENGUAJES ENSAMBLADOR Y CLASIFICACION DE MEMORIAS
TIPOS DE LENGUAJES ENSAMBLADOR Y CLASIFICACION DE MEMORIAS Guillermo Iván Prisco Pérez
 
Nucleo del sistema operativo
Nucleo del sistema operativoNucleo del sistema operativo
Nucleo del sistema operativoEmily_Fdez
 

Was ist angesagt? (20)

LENGUAJE ENSAMBLADOR
LENGUAJE ENSAMBLADOR LENGUAJE ENSAMBLADOR
LENGUAJE ENSAMBLADOR
 
Modos de direccionamiento y formatos
Modos de direccionamiento y formatosModos de direccionamiento y formatos
Modos de direccionamiento y formatos
 
Memoria dinamica
Memoria dinamicaMemoria dinamica
Memoria dinamica
 
Analisis de algoritmos complejidad en tiempo y espacio
Analisis de algoritmos complejidad en tiempo y espacioAnalisis de algoritmos complejidad en tiempo y espacio
Analisis de algoritmos complejidad en tiempo y espacio
 
Unidad 3 ensambladores
Unidad 3 ensambladoresUnidad 3 ensambladores
Unidad 3 ensambladores
 
Memoria Estatica
Memoria EstaticaMemoria Estatica
Memoria Estatica
 
maquinas de turing jflap
maquinas de turing jflapmaquinas de turing jflap
maquinas de turing jflap
 
Tecnicas de Administracion de Memoria
Tecnicas de Administracion de MemoriaTecnicas de Administracion de Memoria
Tecnicas de Administracion de Memoria
 
Paradigmas de ingenieria del software
Paradigmas de ingenieria del softwareParadigmas de ingenieria del software
Paradigmas de ingenieria del software
 
Protocolos, estandares y tipos de modem
Protocolos, estandares y tipos de modemProtocolos, estandares y tipos de modem
Protocolos, estandares y tipos de modem
 
GESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas OperativosGESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas Operativos
 
Analisis Semantico
Analisis Semantico Analisis Semantico
Analisis Semantico
 
Algoritmo de planificación srt
Algoritmo de planificación srtAlgoritmo de planificación srt
Algoritmo de planificación srt
 
simulacion numeros pseudoaleatorios
simulacion numeros pseudoaleatoriossimulacion numeros pseudoaleatorios
simulacion numeros pseudoaleatorios
 
SIMULACIÓN DE SISTEMAS DISCRETOS
SIMULACIÓN DE SISTEMAS DISCRETOSSIMULACIÓN DE SISTEMAS DISCRETOS
SIMULACIÓN DE SISTEMAS DISCRETOS
 
Noción de archivo real y virtual
Noción de archivo real y virtual Noción de archivo real y virtual
Noción de archivo real y virtual
 
Planificación por prioridad
Planificación por prioridadPlanificación por prioridad
Planificación por prioridad
 
TIPOS DE LENGUAJES ENSAMBLADOR Y CLASIFICACION DE MEMORIAS
TIPOS DE LENGUAJES ENSAMBLADOR Y CLASIFICACION DE MEMORIAS TIPOS DE LENGUAJES ENSAMBLADOR Y CLASIFICACION DE MEMORIAS
TIPOS DE LENGUAJES ENSAMBLADOR Y CLASIFICACION DE MEMORIAS
 
Nucleo del sistema operativo
Nucleo del sistema operativoNucleo del sistema operativo
Nucleo del sistema operativo
 
TABLA DE SÍMBOLOS
TABLA DE SÍMBOLOSTABLA DE SÍMBOLOS
TABLA DE SÍMBOLOS
 

Ähnlich wie Apuntes compiladores

Ähnlich wie Apuntes compiladores (20)

Analisis lexico 2
Analisis lexico 2Analisis lexico 2
Analisis lexico 2
 
Compiladores, Analisis Lexico Conceptos
Compiladores, Analisis Lexico ConceptosCompiladores, Analisis Lexico Conceptos
Compiladores, Analisis Lexico Conceptos
 
Analisis lexico 1
Analisis lexico 1Analisis lexico 1
Analisis lexico 1
 
Compiladores1
Compiladores1Compiladores1
Compiladores1
 
Clase analisis lexico
Clase analisis lexicoClase analisis lexico
Clase analisis lexico
 
Clase6 conceptos del analisis lexico
Clase6 conceptos del analisis lexicoClase6 conceptos del analisis lexico
Clase6 conceptos del analisis lexico
 
Compilador2
Compilador2Compilador2
Compilador2
 
Analisis Lexico
Analisis LexicoAnalisis Lexico
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
 
Análisis lexicográfico
Análisis lexicográficoAnálisis lexicográfico
Análisis lexicográfico
 
Analizador léxico
Analizador léxico Analizador léxico
Analizador léxico
 
Analizador lexico
Analizador lexicoAnalizador lexico
Analizador lexico
 
Compilador Exp
Compilador ExpCompilador Exp
Compilador Exp
 
Analizador sintáctico
Analizador sintácticoAnalizador sintáctico
Analizador sintáctico
 
Automatas y compiladores clase2
Automatas y compiladores clase2Automatas y compiladores clase2
Automatas y compiladores clase2
 
Análisis Sintáctico
Análisis SintácticoAnálisis Sintáctico
Análisis Sintáctico
 
AnáLisis LéXico
AnáLisis LéXicoAnáLisis LéXico
AnáLisis LéXico
 
Gramatica libre de contexto
Gramatica libre de contextoGramatica libre de contexto
Gramatica libre de contexto
 
Analizador léxico
Analizador léxicoAnalizador léxico
Analizador léxico
 
Teoría de Autómatas y Lenguajes Formales (I Bimestre)
Teoría de Autómatas y Lenguajes Formales (I Bimestre)Teoría de Autómatas y Lenguajes Formales (I Bimestre)
Teoría de Autómatas y Lenguajes Formales (I Bimestre)
 

Kürzlich hochgeladen

Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosJhonJairoRodriguezCe
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 

Kürzlich hochgeladen (11)

Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 

Apuntes compiladores

  • 1. Apuntes de compiladores El Analizador léxico y su función El analizador léxico es una de las fases de un compilador, donde su principal consiste en leer el programa fuente de izquierda a derecha y elaborar como salida una secuencia de caracteres que tienen un significado, llamados componentes léxicos o tokens, que son utilizados por el analizador sintáctico para hacer el análisis. Esta interacción convierte al analizador léxico en una subrutina del analizador sintáctico (ver figura 3). Cada vez que el analizador léxico recibe orden “obtén el siguiente componente léxico” del analizador sintáctico, el analizador léxico lee los caracteres de entrada hasta que puede identificar el siguiente componente léxico. Componente léxico Programa fuente Analizador léxico Analizador sintáctico Obtén el siguiente. Componente léxico Tabla de símbolos Figura 3.-Interacción de un analizador léxico con el analizador sintáctico Cada componente léxico es una secuencia lógicamente coherente de caracteres relativa a un identificador, una palabra reservada, un operador o un carácter de puntuación. A la secuencia de caracteres que representa un componente léxico se le llama lexema (o con su nombre en inglés token). En el caso de los identificadores creados por el programador no solo se genera un componente léxico, sino que se genera otro lexema en la tabla de símbolos. Rubén Jerónimo Yedra 18/31
  • 2. Apuntes de compiladores El analizador también puede realizar ciertas funciones secundarias en la interfaz del usuario como:  Eliminar del programa fuente comentarios  Eliminar espacio en blanco en forma de:  Carácter de espacio en blanco  Carácter de tab.  Línea nueva  Relacionar los mensajes de error del compilador con el programa fuente. Componentes léxicos, patrones y lexemas Componente léxico (token): Secuencia de caracteres que tienen un significado colectivo. Patrón Es una regla que va a permitir generar la secuencia de caracteres que puede representar a un determinado componente léxico. Lexema Cadena de caracteres que concuerda con un patrón que escribe un componente léxico. En la mayoría de los lenguajes de programación se consideran componentes léxico:  Palabras reservadas: Ejemplos:  if, for, while, do Identificadores: Asociados de nombres de variables, de funciones o de Tipos definido por el usuario.  Operadores: Aritméticos: +, -, *, /, % Rubén Jerónimo Yedra 19/31
  • 3. Apuntes de compiladores Relacionales: >, <, >=, <=, ==, != Lógicos: ||, &&, ! Asignación: =  Símbolos especiales: Paréntesis ( , ) Llaves { , } Corchetes [ , ]  Número o constantes numéricas: Ejemplo: 105, -4.2, 5E-2  Literal o constante de caracteres: literales que representan cadenas de caracteres: Ejemplo: “el resultado es:”, “los datos son:”  Carácter de puntuación: Punto y coma (;) Coma (,) Nota  El conjunto de lexema de palabras reservadas es finito, por lo tanto el componente léxico es finito.  El conjunto de lexema de identificadores es infinito, por lo tanto su correspondiente componente léxico tiene una infinidad de posibilidades.  El conjunto de lexemas de números o contantes numéricos es infinito, por lo tanto su correspondientes componente léxico tiene una infinidad de posibilidades. Rubén Jerónimo Yedra 20/31
  • 4. Apuntes de compiladores Ejemplo: a) suma=5 + A - 4.3 * dato; Componentes léxico Lexema patrón Identificador suma Letra seguido por letra o numero Operador de asignación Numero o constante numérica Operador aritmético identificador Operador aritmético Numero o constante numérica Operador aritmético identificador = Carácter (=) 5 Cualquier constante numérica + A 4.3 Cualquier caracter + | - | * | / | % Letra seguido por letra o numero Cualquier caracter + | - | * | / | % Cualquier constante numérica * dato Cualquier caracter + | - | * | / | % Letra seguido por letra o numero ; Punto y coma(;),coma(,) Carácter de puntuación b) if (nuevo>3.5) Componentes léxico Palabra reservada lexema if Símbolo especial ( patrón Cualquiera de las palabras reservadas Cualquier carácter[,],{,},(,) identificado Operador relacional nuevo > Letra seguido por letra o numero >|>=|<|<=|==|!= Numero o constante numérica 3.5 Cualquier constante numérica Símbolo especial ) Cualquier carácter[,]{,},(,),; Rubén Jerónimo Yedra 21/31
  • 5. Apuntes de compiladores ALFABETO, CADENA Y LENGUAJE a) Alfabeto (Conjunto de símbolos) Un alfabeto denota cualquier conjunto de símbolos. Ejemplo:  El conjunto del alfabeto del idioma español ∑= {A, B, C, D, E…., Z}  El conjunto de los dígitos del código hexadecimal ∑={1,2,3,4,5,6,7,8,9, A, B, C, D, E, F}  El conjunto de los dígitos del código binario ∑= {0,1}  El conjunto de caracteres de tabla del código ASCII  El conjunto de código EBCDIC b) Cadena(S): Una cadena sobre algún alfabeto es una secuencia finita de símbolos tomados de ese alfabeto. Ejemplo: ∑= {A, B, C,…, Ñ, …,Z} s=casa s=ABCD s=nuevo alfabeto del idioma español s∑ s∑ s∑ Longitud de cadena (s) : Una cadena, también llamada frase o palabra, es el número de apariciones de símbolos en ∑ y se denota |s|, donde: 0 si s= ε |s| = n si s=a, a2, a3…. an Siendo ξ, la cadena vacía que tiene una longitud cero. Ejemplo: 1) s=casado 2) s=ABCD |s|=6 |s|=4 Rubén Jerónimo Yedra 22/31
  • 6. Apuntes de compiladores Algunos términos comunes asociados con las partes de una cadena son: Figura 4.- Términos de partes de una cadena c) Lenguajes (L) El termino lenguaje se refiere a cualquier conjunto de cadena de un alfabeto fijo y se denota como L C ∑. Dentro de esta definición se abarca lenguajes abstractos como el conjunto vacio Ø o {ε} y el conjunto que solo contiene la cadena vacía. Si x e y son cadenas, entonces la concatenación de x con y se escribe xy, es la cadena que resulta de agregar y a x. Ejemplo: x=caza y=fortunas  xy=cazafortunas La concatenación se puede visualizar como si estuviera uniendo por medio de un producto ambas cadenas. Operaciones aplicadas a los lenguajes Hay varias operaciones importantes que se pueden aplicar a los lenguajes. Para el análisis léxico, interesan principalmente la unión, la concatenación y la cerradura. Rubén Jerónimo Yedra 23/31
  • 7. Apuntes de compiladores Figura 5.- Definiciones de Operaciones sobre lenguajes Ejemplo: Sea L, el alfabeto que contiene el conjunto de letras mayúsculas y minúsculas, L={A,B,C,D,..Z,a,b,c,…z}, y sea D, el alfabeto que contiene el conjunto de los diez dígitos decimales, M={0,1,2,3,4,5,6,7,8,9}, las operaciones: 1.- LUD Es el conjunto de cadenas formado por letras y digito Ejemplo: A0, A01, AB012, A012B 2.- LD Es el conjunto de cadenas que consta de una letra seguido de un digito. Ejemplo: B1, a3, r8 3.- L4 Es un conjunto de todas las cadenas formadas por 4 letras (L*L*L*L). Ejemplo: unos, tavo, alas 4.- L* Es el conjunto de todas las cadenas de letras, incluyendo la cadena vacia. Ejemplo: abc, abababdf, Nuevos, casados 5.-L(L υ D)* El conjunto de todas las cadenas que comienzan con una letra, seguido de todas las cadenas que tienen una letra y un digito incluyendo la cadena vacía. Ejemplo: aa1, b, ba1a2, cb2h4g3 6.D+ Conjunto de uno o más combinaciones de dígitos de cadenas Ejemplo: 1, 23,3245,283838 Rubén Jerónimo Yedra 24/31