SlideShare una empresa de Scribd logo
ANALISIS LEXICO
FASES DE UN COMPILADOR La fase de análisis tiene como entrada, el PF. En base a este programa fuente, la fase de análisis construye una representación intermedia. ¿de quién?...  Del PF, precisamente. En la fase de síntesis se toma de entrada a esta representación intermedia, para la generación del código que constituye al  PO.
El análisis que toma al PF como entrada, consiste a su vez de tres fases:  FASES DEL ANALISIS
ANALISIS LEXICO TAREA PRINCIPAL Consiste en leer de izquierda a derecha el PF. El PF es la entrada al analizador lexico y generalmente es un archivo de texto (los interpretes reciben una o varias cadenas como entrada, desde el teclado). Este monitoreo de la entrada (PF) lo efectua el analizador lexico con el fin de identificar  tokens , los cuales son cadenas o secuencias de caracteres que tienen un cierto significado. La salida de un analizador lexico es un  conjunto de tokens
Ademas de su principal funcion, tambien realiza otra de gran importancia: Elimina los comentarios del programa. Elimina espacios en blanco, tabuladores, retorno de carro, etc y en general todo aquello que carezca de significado según la sintaxis del lenguaje. Reconocer los identificadores del usuario, numeros, palabras reservadas, etc. Llevar la cuenta del numero de lineas por la que va leyendo, por si se produce un error, dar informacion acerca de donde se ha producido. Avisar de errores lexicos, Por ejem, si el carácter “@” no pertenece al lenguaje, se debe emitir un error. ANALISIS LEXICO
ANALISIS LEXICO Recibida la orden “Dame el siguiente componente lexico del analizador sintactico, el lexico lee los caracteres de entrada hasta que pueda identificar el siguiente componente lexico.
TOKEN, PATRON Y LEXEMA PATRON Es una regla que describe el conjunto de lexemas que puede representar a un determinado token en los programas fuentes. TOKEN (COMPONENTE LEXICO) Es la categoria lexica de un patron. Los cuales son cadenas o secuencias de caracteres que tienen un cierto significado. En un lenguaje de programación, tenemos varias clases de tokens: Palabras reservadas, Identificadores, Operadores aritméticos, Operadores relacionales, Operadores lógicos, Constantes Literales (String), Números, Separadores, Operadores de asignación, etc. LEXEMA Es cada secuencia de caracteres concreta que encaja con un patron. P.ej: “8", “23"  y “50"  son  algunos lexemas  que  encajan  con el patrón (‘0'|’1'|’2'| ... |’9') . El 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 “WHILE”.
EJEMPLO:   TOKEN, PATRON LEXEMA
ESPECIFICACIONES DE LOS COMPONENTES LEXICOS (TOKENS) Cada patron concuerda con una serie de cadenas, de modo que los patrones serviran como nombres para conjuntos de cadenas. CADENAS Y LENGUAJES Alfabeto:  Cualquier conjunto finito de simbolos. Ejem. El conjunto  {0,1} es el alfabeto binario, El codigo ASCII es alfabeto del computador. Cadena:  Es una secuencia finita de simbolos tomados de ese alfabeto. La longitud de una cadena  s que suele escribirse |s| es el numero de apariciones de simbolos en s. Una cadena vacia , representada por  є , es una cadena especial de longitud 0.
 
CADENAS Y LENGUAJES Lenguaje:  Es cualquier conjunto de cadenas de un alfabeto fijo. Esta definicion no atribuye ningun significado a las cadenas de un lenguaje. Si x e y son cadenas, entonces la concatenacion de x e y, que se escribe xy es la cadena que resulta de agregar y a x. Por ejemplo, si x = caza  e y= fortunas, entonces xy = casafortunas. s є  = s
Se considera la concatenacion como un producto, la cual se define de la siguiente manera: s 0  =  є ,  s 1  =  s,  s 2  =  ss,    s 3  =  sss CADENAS Y LENGUAJES
Para el analizador lexico interesan principalmente la union, concatenacion y la cerradura. OPERACIONES APLICADA A LOS LENGUAJES
Ejemplo: Sea:  L el conjunto  {A,B,…,Z,a,b,…,z} y D={0,1,…,9} Se puede considerar L y D de la siguiente manera: L como el alfabeto de letras mayusculas y minusculas D como el alfabeto de los 10 digitos decimales Los siguientes son ejemplos de nuevos lenguajes creados  a partir de L y D. L U D es el conjunto de letras y digitos LD es el conjunto de cadenas que consta de una letra seguida de un digito L 4  es el conjunto de todas las cadenas de cuatro letras L* es el conjunto de todas las cadenas de letras, incluyendo  є , la cadena vacia L(L U D)* es el conjunto de todas las cadenas de letras y digitos que comienzan con una letra. D* es el conjunto de todas las cadenas de uno o mas digitos. L? es el conjunto de 0 o una concatenacion de L OPERACIONES APLICADA A LOS LENGUAJES
EJEMPLO Sea A= {A,B,…,Z} y  B= {0,1,2,…,9} y  cad1 = HOLA  cad2 = TODOS cad3=T3 cad1cad2cad3= HOLATODOST3 є cad1  є є cad3  є є є cad2= HOLAT3TODOS Longitud = 11 cad1=A 4 cad2=A 5 cad2=L(B)
Sea A=  {0,1} B= {a,b,c}  y C= {1,2} obtener: (a)AUB   = {0,1}U{a,b,c} = {0,1,a,b,c}  (b)  (BC) U A   =  {a,b,c} {1,2}  U  {0,1}  =  {a1,a2,b1,b2,c1,c2}  U  {0,1}  =  {a1,a2,b1,b2,c1,c2,0,1}  (c)  A*   = {0,1}* = {0,1} 0  U  {0,1} 1  U  {0,1} 2  U  {0,1} 3  U  ...  = { є  } U {0,1} U {0,1}{0,1} U {0,1}{0,1}{0,1} U ...  = { є ,0,1} U {00,01,10,11} U {000,001,010,011,100,101,110,111}U...   ={ є ,0,1,00,01,10,11,000,001,010,011,100,101,110,111,...}  (d)  (B+ U C) 0   =  { є }  (e)  (C? A)?  =  ( {1,2}? {0,1} )?  =  (( {1,2} 0   U  {1,2} 1   ) {0,1} )?  =  (( { є } U  {1,2} ) {0,1} )?  =  ( { є ,1,2} {0,1} )?  =  {0,1,10,11,20,21}?  =  {0,1,10,11,20,21} 0   U  {0,1,10,11,20,21} 1 =  { є }  U  {0,1,10,11,20,21}  =  { є ,0,1,10,11,20,21}
continuacion EJERCICIO
EJERCICIO EN CLASE Sea X= {c,d,e}, Y={3,4} y Z={a,b} obtener: X U Y (Z? X)? (Z U X)+ (XY) 0 (XUZ?)U X 0 ZY U YZ (XY) U Z Sean las cadenas cad1=Ana, cad2=reprobo cad3=la cad4=materia 1. cad1cad2=  2. Longitud= 3. cad1cad2cad3cad4= 4. Longitud= 5.  є є cad3  є  cad4  є є є  cad1  є  cad2=

Más contenido relacionado

PDF
Digitalización de las señales de abonado
PDF
Unidad1 2 Lenguajes y automatas
PDF
Mapa conceptual lenguaje c.
PDF
71456126 enunciado-practica1-afd
PPT
Ejercicios
PDF
Autómata de Pila
PPT
Modulación pcm
PPTX
Compiladores, Analisis Lexico
Digitalización de las señales de abonado
Unidad1 2 Lenguajes y automatas
Mapa conceptual lenguaje c.
71456126 enunciado-practica1-afd
Ejercicios
Autómata de Pila
Modulación pcm
Compiladores, Analisis Lexico

La actualidad más candente (20)

PPT
Lecture 15 probabilidad de error y ber en señales bandabase binaria
PDF
Introduccion a las comunicaciones por microondas
PPTX
Lenguaje ensamblador y Estructura del CPU
PPT
Teoría de Autómatas y Lenguajes Formales (I Bimestre)
DOCX
Apuntes generación de codigo intermedio
PPTX
Programación Orientada a Objetos - atributos y métodos
PPTX
T1. Introducción a la Teoría de Lenguajes Formales.pptx
PPTX
Cable utp
PPT
Automatas de pila
PPTX
Teoría de autómatas
PPTX
El origen del español
PDF
Gramaticas
PPT
Fibra clase 2
PDF
Convolucion Tiempo Discreto
PPTX
Трипілля. Скіфи. Північне Причорномор'я.
PPTX
Modulación qam
PDF
57246221 normas-itu
PPTX
Entorno de desarrollo integrado de Visual Basic .NET
PPTX
Modulación AM - PM - FM
PPTX
Autómatas de Pila
Lecture 15 probabilidad de error y ber en señales bandabase binaria
Introduccion a las comunicaciones por microondas
Lenguaje ensamblador y Estructura del CPU
Teoría de Autómatas y Lenguajes Formales (I Bimestre)
Apuntes generación de codigo intermedio
Programación Orientada a Objetos - atributos y métodos
T1. Introducción a la Teoría de Lenguajes Formales.pptx
Cable utp
Automatas de pila
Teoría de autómatas
El origen del español
Gramaticas
Fibra clase 2
Convolucion Tiempo Discreto
Трипілля. Скіфи. Північне Причорномор'я.
Modulación qam
57246221 normas-itu
Entorno de desarrollo integrado de Visual Basic .NET
Modulación AM - PM - FM
Autómatas de Pila
Publicidad

Destacado (6)

PPT
Claselexico
PPT
Analisis lexico 2
PDF
Análisis sintáctico
PPT
DiseñO De Compilador
PPTX
Análisis léxico y análisis sintáctico
PPT
El análisis sintáctico
Claselexico
Analisis lexico 2
Análisis sintáctico
DiseñO De Compilador
Análisis léxico y análisis sintáctico
El análisis sintáctico
Publicidad

Similar a Analisis lexico 1 (20)

PDF
Apuntes compiladores
PPT
Analisis Lexico
PDF
Compiladores, Analisis Lexico Conceptos
PDF
Lenguajes formales y teoría de autómatas I.pdf
PPT
Compiladores1
PDF
PRESENTACION. CfdggdgfddfdfdONCEPTOS BÁSICOS.pdf
PDF
Automatas y compiladores clase2
PPTX
Automatas. presentacion
PPTX
Autómatas Finitos, Deterministas y no Deterministas
PPT
Analizador LÉxico
PPT
AnáLisis LéXico
PPTX
Introducción a los compiladores - Parte 2
PPTX
Compilador2
PPT
Compilador Exp
PDF
Análisis Sintáctico
PDF
Alfabeto, Cadenas, Lenguajes, y Problemas
DOCX
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...
PDF
Clase analisis lexico
PPT
Curso prog sist
Apuntes compiladores
Analisis Lexico
Compiladores, Analisis Lexico Conceptos
Lenguajes formales y teoría de autómatas I.pdf
Compiladores1
PRESENTACION. CfdggdgfddfdfdONCEPTOS BÁSICOS.pdf
Automatas y compiladores clase2
Automatas. presentacion
Autómatas Finitos, Deterministas y no Deterministas
Analizador LÉxico
AnáLisis LéXico
Introducción a los compiladores - Parte 2
Compilador2
Compilador Exp
Análisis Sintáctico
Alfabeto, Cadenas, Lenguajes, y Problemas
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...
Clase analisis lexico
Curso prog sist

Más de perlallamas (20)

PPTX
PPTX
DOCX
DOCX
03 ejemplo - plan soporte
PPTX
Sw necesario pc
PPTX
PDF
Guia para adquirir una laptop
PDF
Como elegir-una-pc-de-escritorio
PPTX
Arquitectura Hardware
PPTX
PPTX
PDF
Avance programático instala y configura servicios
PDF
Avance programático administra s.o
PPTX
Diagramas de flujo (1)
PDF
Diagramas
PDF
Que son los diagramas de flujo
PDF
Procedimiento mantenimiento correctivo hw
PDF
Visio preventivo -hw-1 a
DOCX
Diagnostico
PDF
Examen power point
03 ejemplo - plan soporte
Sw necesario pc
Guia para adquirir una laptop
Como elegir-una-pc-de-escritorio
Arquitectura Hardware
Avance programático instala y configura servicios
Avance programático administra s.o
Diagramas de flujo (1)
Diagramas
Que son los diagramas de flujo
Procedimiento mantenimiento correctivo hw
Visio preventivo -hw-1 a
Diagnostico
Examen power point

Analisis lexico 1

  • 2. FASES DE UN COMPILADOR La fase de análisis tiene como entrada, el PF. En base a este programa fuente, la fase de análisis construye una representación intermedia. ¿de quién?... Del PF, precisamente. En la fase de síntesis se toma de entrada a esta representación intermedia, para la generación del código que constituye al PO.
  • 3. El análisis que toma al PF como entrada, consiste a su vez de tres fases: FASES DEL ANALISIS
  • 4. ANALISIS LEXICO TAREA PRINCIPAL Consiste en leer de izquierda a derecha el PF. El PF es la entrada al analizador lexico y generalmente es un archivo de texto (los interpretes reciben una o varias cadenas como entrada, desde el teclado). Este monitoreo de la entrada (PF) lo efectua el analizador lexico con el fin de identificar tokens , los cuales son cadenas o secuencias de caracteres que tienen un cierto significado. La salida de un analizador lexico es un conjunto de tokens
  • 5. Ademas de su principal funcion, tambien realiza otra de gran importancia: Elimina los comentarios del programa. Elimina espacios en blanco, tabuladores, retorno de carro, etc y en general todo aquello que carezca de significado según la sintaxis del lenguaje. Reconocer los identificadores del usuario, numeros, palabras reservadas, etc. Llevar la cuenta del numero de lineas por la que va leyendo, por si se produce un error, dar informacion acerca de donde se ha producido. Avisar de errores lexicos, Por ejem, si el carácter “@” no pertenece al lenguaje, se debe emitir un error. ANALISIS LEXICO
  • 6. ANALISIS LEXICO Recibida la orden “Dame el siguiente componente lexico del analizador sintactico, el lexico lee los caracteres de entrada hasta que pueda identificar el siguiente componente lexico.
  • 7. TOKEN, PATRON Y LEXEMA PATRON Es una regla que describe el conjunto de lexemas que puede representar a un determinado token en los programas fuentes. TOKEN (COMPONENTE LEXICO) Es la categoria lexica de un patron. Los cuales son cadenas o secuencias de caracteres que tienen un cierto significado. En un lenguaje de programación, tenemos varias clases de tokens: Palabras reservadas, Identificadores, Operadores aritméticos, Operadores relacionales, Operadores lógicos, Constantes Literales (String), Números, Separadores, Operadores de asignación, etc. LEXEMA Es cada secuencia de caracteres concreta que encaja con un patron. P.ej: “8", “23" y “50" son algunos lexemas que encajan con el patrón (‘0'|’1'|’2'| ... |’9') . El 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 “WHILE”.
  • 8. EJEMPLO: TOKEN, PATRON LEXEMA
  • 9. ESPECIFICACIONES DE LOS COMPONENTES LEXICOS (TOKENS) Cada patron concuerda con una serie de cadenas, de modo que los patrones serviran como nombres para conjuntos de cadenas. CADENAS Y LENGUAJES Alfabeto: Cualquier conjunto finito de simbolos. Ejem. El conjunto {0,1} es el alfabeto binario, El codigo ASCII es alfabeto del computador. Cadena: Es una secuencia finita de simbolos tomados de ese alfabeto. La longitud de una cadena s que suele escribirse |s| es el numero de apariciones de simbolos en s. Una cadena vacia , representada por є , es una cadena especial de longitud 0.
  • 10.  
  • 11. CADENAS Y LENGUAJES Lenguaje: Es cualquier conjunto de cadenas de un alfabeto fijo. Esta definicion no atribuye ningun significado a las cadenas de un lenguaje. Si x e y son cadenas, entonces la concatenacion de x e y, que se escribe xy es la cadena que resulta de agregar y a x. Por ejemplo, si x = caza e y= fortunas, entonces xy = casafortunas. s є = s
  • 12. Se considera la concatenacion como un producto, la cual se define de la siguiente manera: s 0 = є , s 1 = s, s 2 = ss, s 3 = sss CADENAS Y LENGUAJES
  • 13. Para el analizador lexico interesan principalmente la union, concatenacion y la cerradura. OPERACIONES APLICADA A LOS LENGUAJES
  • 14. Ejemplo: Sea: L el conjunto {A,B,…,Z,a,b,…,z} y D={0,1,…,9} Se puede considerar L y D de la siguiente manera: L como el alfabeto de letras mayusculas y minusculas D como el alfabeto de los 10 digitos decimales Los siguientes son ejemplos de nuevos lenguajes creados a partir de L y D. L U D es el conjunto de letras y digitos LD es el conjunto de cadenas que consta de una letra seguida de un digito L 4 es el conjunto de todas las cadenas de cuatro letras L* es el conjunto de todas las cadenas de letras, incluyendo є , la cadena vacia L(L U D)* es el conjunto de todas las cadenas de letras y digitos que comienzan con una letra. D* es el conjunto de todas las cadenas de uno o mas digitos. L? es el conjunto de 0 o una concatenacion de L OPERACIONES APLICADA A LOS LENGUAJES
  • 15. EJEMPLO Sea A= {A,B,…,Z} y B= {0,1,2,…,9} y cad1 = HOLA cad2 = TODOS cad3=T3 cad1cad2cad3= HOLATODOST3 є cad1 є є cad3 є є є cad2= HOLAT3TODOS Longitud = 11 cad1=A 4 cad2=A 5 cad2=L(B)
  • 16. Sea A= {0,1} B= {a,b,c} y C= {1,2} obtener: (a)AUB = {0,1}U{a,b,c} = {0,1,a,b,c} (b) (BC) U A = {a,b,c} {1,2} U {0,1} = {a1,a2,b1,b2,c1,c2} U {0,1} = {a1,a2,b1,b2,c1,c2,0,1} (c) A* = {0,1}* = {0,1} 0 U {0,1} 1 U {0,1} 2 U {0,1} 3 U ... = { є } U {0,1} U {0,1}{0,1} U {0,1}{0,1}{0,1} U ... = { є ,0,1} U {00,01,10,11} U {000,001,010,011,100,101,110,111}U... ={ є ,0,1,00,01,10,11,000,001,010,011,100,101,110,111,...} (d) (B+ U C) 0 = { є } (e) (C? A)? = ( {1,2}? {0,1} )? = (( {1,2} 0 U {1,2} 1 ) {0,1} )? = (( { є } U {1,2} ) {0,1} )? = ( { є ,1,2} {0,1} )? = {0,1,10,11,20,21}? = {0,1,10,11,20,21} 0 U {0,1,10,11,20,21} 1 = { є } U {0,1,10,11,20,21} = { є ,0,1,10,11,20,21}
  • 18. EJERCICIO EN CLASE Sea X= {c,d,e}, Y={3,4} y Z={a,b} obtener: X U Y (Z? X)? (Z U X)+ (XY) 0 (XUZ?)U X 0 ZY U YZ (XY) U Z Sean las cadenas cad1=Ana, cad2=reprobo cad3=la cad4=materia 1. cad1cad2= 2. Longitud= 3. cad1cad2cad3cad4= 4. Longitud= 5. є є cad3 є cad4 є є є cad1 є cad2=