SlideShare una empresa de Scribd logo
1 de 35
En un compilador, el análisis lineal se llama análisis lineal o exploración. Por análisis lineal entendemos la cadena de caracteres que constituye el programa fuente se lee de izquierda a derecha y se agrupan en componentes léxicos, que son secuencias de caracteres que tiene un significado colectivo. Por ejemplo, en análisis léxico los caracteres de las siguientes proposiciones de asignación
  Los espacios en blanco (delimitadores) que separan los caracteres de estos componentes léxicos normalmente se eliminan durante el análisis léxico.
Una expresión regular denota un conjunto de secuencias de símbolos  válidas que se construyen en base al alfabeto de un lenguaje. Generalmente estos conjuntos se representan como: Es una expresión regular que denota el conjunto vacío (el conjunto no contiene secuencias de símbolos).
  Una secuencia de símbolos S es una expresión  regular que denota a un conjunto que contiene a S. Operaciones  sobre Lenguajes   Es una expresión regular que denota al conjunto que contiene la secuencia vacía.
  *Son una notación para definir lenguajes *Se ha demostrado que pueden expresar la clase de los  lenguajes regulares * Permiten hacer una definición algebraica de un lenguaje * Se expresa el lenguaje de manera declarativa
  Dadas dos expresiones regulares E1, E2, el resultado de aplicar cualquiera de estas tres operaciones, da como resultado otra expresión regular: *Unión (E1 ∪ E2) = {x | x ∈ E1 ´ox ∈ E2 ´o x ∈ E1 ∩ E2}. *Concatenación E1  ・  E2 = {xy | x ∈ E1, y ∈ E2} *Clausura o Estrella de Kleene (E1* ) = ∪ i>=E1i
Construir una expresión regular es realizar operaciones sobre el alfabeto de un lenguaje. Podemos decir que el lenguaje, en su aspecto de léxico, está conformado por las operaciones    Unión de L y M . LUM = { S | S está en L ó S está en M } Concatenación de L y M. LM = { st | s está en L y t está en M}
  Cerradura Kleene. (L se repite de 0 a infinito) Cerradura Positiva. ( L se repite de 1 a infinito).
  Como se ve, las expresiones regulares son operaciones que se realizan sobre conjuntos de símbolos que pertenecen al alfabeto de un lenguaje. Estos conjuntos se describen colocando a los símbolos que pertenecen a ellos entre llaves. Por ejemplo, los caracteres que ubicamos como letras podrían conformar el conjunto {ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz}
  Si los elementos del conjunto tienen un orden conocido o asociado al código ASCII se puede describir colocando el primer símbolo y el último separados por un guión (-) como {A-Z a-z} Para hacer más simple la construcción de una expresión regular, se designa bajo un nombre al conjunto con el cual se trabajará. así el conjunto letra se puede describir como L = {A-Z a-z}
  Cuando a un conjunto o a una expresión regular se le da un nombre, ésta recibe el nombre de definición regular. Así, la expresión regular para un identificador será: ID=L (L | D | G) * si las definiciones sobre las cuales está construida son: L= {A-Z a-z} D = {0123456789} G = {_}
  Por ejemplo, en Ada los identificadores están formados por letras, dígitos o guiones, pero el guión no puede ser el último caracter. La expresión regular con la cual se puede conformar el patrón para esta unidad de léxico puede ser: ID_ada = L (L | D) * (G (L | D ) + ) * U na expresión regular es un método formal para describir un patrón y puede ser empleada para construir un analizador léxico que lo reconozca en una computadora. De hecho, la expresión sufre una serie de transformaciones para llegar a ser explotada como tabla:
    Expresión Regular   se convierte en   Autómata Finito No deterministico (NFA)   se convierte en   Autómata Finito Deterministico (DFA)   que se representa como    Tabla  
  ,[object Object],[object Object],[object Object]
  Un NFA esa un modelo matemático que consiste de:  1.- Un conjunto de estados.  2.- Un conjunto de símbolos de entrada.  3.- Una función de transición que corresponde pares estado-símbolo a conjuntos de estados.  4.- Un estado So que denota como el estado inicial.  5.- Un conjunto de estados F que denotan los estados de aceptación o finales.  Un NFA no tiene restricciones para que exista mas de una transición con el mismo nombre a diferentes estados
  por lo que en una representación tabular no es posible determinar de  manera única el estado destino para un símbolo  determinado. Por ejemplo, el siguiente diagrama  representa la expresión  (a | b)* a b b  
  Un DFA es un caso especial de NFA en el que ningún estado tiene transiciones para diversos estados bajo el mismo símbolo y no se permiten transiciones épsilon. Los diagramas de transición son autómatas determinísticos. Por ejemplo, el DFA de (a | b)* a b b puede ser:
que podría ser muy aproximado al diagrama de transición que construiríamos para la expresión.
  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
  Para la implementación de la tabla de símbolos, nos hemos ayudado de la librería  STL . Hemos hecho uso del contenedor STL_HASHMAP. El acceso se realiza aplicando una función hash sobre el char * del identificador del símbolo. Para mayor legibilidad y facilidad, hemos implementado la clase c_tabla_simbolos. Realiza las operaciones que necesitamos, y se las implementa haciendo uso del citado contenedor hash.
  Debido a que necesitaremos más de una tabla en determinados momentos, y a su vez, una jerarquía entre las tablas, hemos implementado también la clase c_almacen_tablas. Dicha clase hace uso del contenedor STL_STACK.  A continuación se muestran los diagramas de las clases implementadas en notación UML.
  :
 
  El método show de la clase c_tabla_simbolos sirve para llamar a los métodos show de cada símbolo almacenado. De esa manera se realiza el volcado pedido.  En cuanto a la clase c_almacen_tablas, hemos implementado las operaciones avanzar, retroceder y enderezar. Sirven para poder movernos dentro de la pila sin perder elementos. Esto significa, que en un momento dado, podemos ejecutar avanzar sobre la pila, y la cima pasa a ser la tabla de símbolos previa.
  Hemos supuesto que esto puede ser provechoso para las operaciones en las que haya que buscar si un símbolo se encuentra en la tabla de símbolos actual o en cualquiera de las tablas previas de la jerarquía. Al utilizar internamente dos pilas, una llamada posterior a retroceder dejaría la pila en su situación original. Enderezar se utiliza para regresar la pila a su posición original desde cualquier posición.
  La clase Parse::Lex nos permite crear un analizador léxico. La estrategia seguida es mover el puntero de búsqueda dentro de la cadena a analizar utilizando conjuntamente el operador pos() y el ancla .  > cat -n tokenizer.pl 1  #!/usr/local/bin/perl 2 3  require 5.004; 4  #BEGIN {  unshift @INC, "../lib"; } 5 6  $^W = 0; 7  use Parse::Lex; 8  print STDERR "Version $Parse::ALex::VERSION" ;
  9 10  @token = ( 11  qw( 12  ADDOP  [-+] 13  LEFTP  [] 14  RIGHTP  [] 15  INTEGER  [1-9][0-9]* 16  NEWLINE   17  ), 18  qw(STRING),  [qw(" (?:[^"]+|"")* ")], 19  qw(ERROR  .*), sub {
  20  die qq!canapos;t analyze: "$_[1]"!; 21  } 22  ); 23 24  Parse::Lex->trace; 25  $lexer = Parse::Lex->new(@token); 26 27  $lexer->from(DATA);
  27  $lexer->from(DATA); 28  print &quot;Tokenization of DATA:&quot;; 29 30  TOKEN:while (1) { 31  $token = $lexer->next; 32  if (not $lexer->eoi) { 33  print &quot;Record number: &quot;, $lexer->line, &quot;&quot;; 34  print &quot;Type: &quot;, $token->name, &quot;&quot;; 35  print &quot;Content:->&quot;, $token->text, &quot;<-&quot;; 36  } else { 37  last TOKEN;
  38  } 39  } 40 41  __END__ 42  1+2-5 43  &quot;This is a multiline 44  string with an embedded &quot;&quot; in it&quot; 45  this is an invalid string with a &quot;&quot; in it&quot;
  Entrada:   function main(){ /* Otra prueba mas ! */ var a = 3 // var b = 2 /* a debería estar en la tabla de símbolos, b no !  */   var i var v = new Array (101) for (i=0; i<100; i+=5){ v[i]=i; }  
  for (i=0; i<100; i+=5){ document.write(v[i], &quot; &quot;); } document.write(&quot;&quot;); }   main(); // Fin de la prueba Salida:   Leyendo del fichero 'prueba10'
  ANA RAQUEL GARCIA FALLA YUDY MERCEDES LOSADA ROMERO
  *En que se clasifica las expresiones autónomas finitas? * Cual es la funcionalidad de las expresiones regulares?
  * El lenguaje en su aspecto léxico esta compuesto de que operaciones y de ejemplo de cada una de ellas.

Más contenido relacionado

La actualidad más candente

Unidadi. lenguajes de interfaz
Unidadi.   lenguajes de interfazUnidadi.   lenguajes de interfaz
Unidadi. lenguajes de interfazLuiS YmAY
 
Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Osiris Mirerus
 
Teoria de automatas
Teoria de automatasTeoria de automatas
Teoria de automatasequipolf
 
Analizador Sintáctico
Analizador SintácticoAnalizador Sintáctico
Analizador SintácticoPablo Guerra
 
Automatas y compiladores clase3
Automatas y compiladores clase3Automatas y compiladores clase3
Automatas y compiladores clase3Germania Rodriguez
 
Lenguaje ensamblador basico
Lenguaje ensamblador basicoLenguaje ensamblador basico
Lenguaje ensamblador basicoGustavo Davila
 
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrenteTópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrenteJosé Antonio Sandoval Acosta
 
Unidad 4 graficación
Unidad 4 graficaciónUnidad 4 graficación
Unidad 4 graficaciónAndhy H Palma
 
Aseguramiento de la calidad en software III
Aseguramiento de la calidad en software IIIAseguramiento de la calidad en software III
Aseguramiento de la calidad en software IIITensor
 
maquinas de turing
maquinas de turingmaquinas de turing
maquinas de turingAnel Sosa
 
Compiladores
CompiladoresCompiladores
CompiladoresIsabel
 

La actualidad más candente (20)

Compiladores
CompiladoresCompiladores
Compiladores
 
Unidadi. lenguajes de interfaz
Unidadi.   lenguajes de interfazUnidadi.   lenguajes de interfaz
Unidadi. lenguajes de interfaz
 
Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1
 
Diseño caso de pruebas
Diseño caso de pruebasDiseño caso de pruebas
Diseño caso de pruebas
 
Teoria de automatas
Teoria de automatasTeoria de automatas
Teoria de automatas
 
Analizador Sintáctico
Analizador SintácticoAnalizador Sintáctico
Analizador Sintáctico
 
Traductor y su estructura
Traductor y su estructuraTraductor y su estructura
Traductor y su estructura
 
Uml diagramas-caso-de-uso
Uml diagramas-caso-de-usoUml diagramas-caso-de-uso
Uml diagramas-caso-de-uso
 
Automatas y compiladores clase3
Automatas y compiladores clase3Automatas y compiladores clase3
Automatas y compiladores clase3
 
Lenguaje ensamblador basico
Lenguaje ensamblador basicoLenguaje ensamblador basico
Lenguaje ensamblador basico
 
Compiladores, Analisis Lexico, Ejemplo Minilenguaje
Compiladores, Analisis Lexico, Ejemplo MinilenguajeCompiladores, Analisis Lexico, Ejemplo Minilenguaje
Compiladores, Analisis Lexico, Ejemplo Minilenguaje
 
UNIDAD 2 PROGRAMACIÓN BASICA
UNIDAD 2 PROGRAMACIÓN BASICAUNIDAD 2 PROGRAMACIÓN BASICA
UNIDAD 2 PROGRAMACIÓN BASICA
 
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrenteTópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
 
Unidad 4 graficación
Unidad 4 graficaciónUnidad 4 graficación
Unidad 4 graficación
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacional
 
Topicos avanzados de programacion
Topicos avanzados de programacionTopicos avanzados de programacion
Topicos avanzados de programacion
 
Aseguramiento de la calidad en software III
Aseguramiento de la calidad en software IIIAseguramiento de la calidad en software III
Aseguramiento de la calidad en software III
 
maquinas de turing
maquinas de turingmaquinas de turing
maquinas de turing
 
Tabla De Transicion
Tabla De TransicionTabla De Transicion
Tabla De Transicion
 
Compiladores
CompiladoresCompiladores
Compiladores
 

Destacado (20)

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
 
Compiladores, Analisis Lexico Conceptos
Compiladores, Analisis Lexico ConceptosCompiladores, Analisis Lexico Conceptos
Compiladores, Analisis Lexico Conceptos
 
2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automata2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automata
 
Semantico.apun
Semantico.apunSemantico.apun
Semantico.apun
 
Analisis lexico 2
Analisis lexico 2Analisis lexico 2
Analisis lexico 2
 
Clase15
Clase15Clase15
Clase15
 
Automatas y compiladores clase2
Automatas y compiladores clase2Automatas y compiladores clase2
Automatas y compiladores clase2
 
Analisis semantico
Analisis semanticoAnalisis semantico
Analisis semantico
 
Código intermedio
Código intermedioCódigo intermedio
Código intermedio
 
Analizador lexico
Analizador lexicoAnalizador lexico
Analizador lexico
 
Etapas de compilacion
Etapas de compilacionEtapas de compilacion
Etapas de compilacion
 
Análisis fonológico de las palabras
Análisis fonológico de las palabrasAnálisis fonológico de las palabras
Análisis fonológico de las palabras
 
Generador de codigo intermedio
Generador de codigo intermedioGenerador de codigo intermedio
Generador de codigo intermedio
 
Fondo y forma del poema
Fondo y forma del poemaFondo y forma del poema
Fondo y forma del poema
 
Analizador léxico
Analizador léxicoAnalizador léxico
Analizador léxico
 
Automatas y compiladores analisis sintactico
Automatas y compiladores analisis sintacticoAutomatas y compiladores analisis sintactico
Automatas y compiladores analisis sintactico
 
Fases de programacion
Fases de programacionFases de programacion
Fases de programacion
 
Arbol analisis sintactico
Arbol analisis sintacticoArbol analisis sintactico
Arbol analisis sintactico
 
Fases del proceso de programación
Fases del proceso de programaciónFases del proceso de programación
Fases del proceso de programación
 
Blas de Otero
Blas de Otero  Blas de Otero
Blas de Otero
 

Similar a Analisis Lexico

Analisis lexico 1
Analisis lexico 1Analisis lexico 1
Analisis lexico 1perlallamas
 
Lenguajes formales y teoría de autómatas I.pdf
Lenguajes formales y teoría de autómatas I.pdfLenguajes formales y teoría de autómatas I.pdf
Lenguajes formales y teoría de autómatas I.pdfKEILLIEDAILYNSICAJAC
 
Presentación 2014 profe gabriel
Presentación 2014 profe gabrielPresentación 2014 profe gabriel
Presentación 2014 profe gabrielEnrique Morales
 
Introducción a los compiladores - Parte 2
Introducción a los compiladores - Parte 2Introducción a los compiladores - Parte 2
Introducción a los compiladores - Parte 2Universidad
 
Compiladores - Incorporacion de una Tabla de Simbolos Compiladores
Compiladores - Incorporacion de una Tabla de Simbolos CompiladoresCompiladores - Incorporacion de una Tabla de Simbolos Compiladores
Compiladores - Incorporacion de una Tabla de Simbolos Compiladoresjose haar
 
Incorporacion De Una Tabla De Simbolos Compiladores
Incorporacion De Una Tabla De Simbolos CompiladoresIncorporacion De Una Tabla De Simbolos Compiladores
Incorporacion De Una Tabla De Simbolos Compiladoresguest5fa3fc
 
Expresiones regulares2.pdf
Expresiones regulares2.pdfExpresiones regulares2.pdf
Expresiones regulares2.pdfJeffreyagnz
 
Tema 11 expresiones regulares en java por gio
Tema 11   expresiones regulares en java por gioTema 11   expresiones regulares en java por gio
Tema 11 expresiones regulares en java por gioRobert Wolf
 
Expresiones regulares fin
Expresiones regulares finExpresiones regulares fin
Expresiones regulares finmariellitaocj
 

Similar a Analisis Lexico (20)

Compiladores1
Compiladores1Compiladores1
Compiladores1
 
Analisis lexico 1
Analisis lexico 1Analisis lexico 1
Analisis lexico 1
 
Lenguajes formales y teoría de autómatas I.pdf
Lenguajes formales y teoría de autómatas I.pdfLenguajes formales y teoría de autómatas I.pdf
Lenguajes formales y teoría de autómatas I.pdf
 
Presentación 2014 profe gabriel
Presentación 2014 profe gabrielPresentación 2014 profe gabriel
Presentación 2014 profe gabriel
 
Introducción a los compiladores - Parte 2
Introducción a los compiladores - Parte 2Introducción a los compiladores - Parte 2
Introducción a los compiladores - Parte 2
 
Compilador2
Compilador2Compilador2
Compilador2
 
Compilador Exp
Compilador ExpCompilador Exp
Compilador Exp
 
Gramáticas formales
Gramáticas formales Gramáticas formales
Gramáticas formales
 
Analisis sintactico
Analisis sintacticoAnalisis sintactico
Analisis sintactico
 
Lizbeth...
Lizbeth...Lizbeth...
Lizbeth...
 
Apuntes compiladores
Apuntes compiladoresApuntes compiladores
Apuntes compiladores
 
TABLA DE SIMBOLOS
TABLA DE SIMBOLOSTABLA DE SIMBOLOS
TABLA DE SIMBOLOS
 
Compiladores - Incorporacion de una Tabla de Simbolos Compiladores
Compiladores - Incorporacion de una Tabla de Simbolos CompiladoresCompiladores - Incorporacion de una Tabla de Simbolos Compiladores
Compiladores - Incorporacion de una Tabla de Simbolos Compiladores
 
Incorporacion De Una Tabla De Simbolos Compiladores
Incorporacion De Una Tabla De Simbolos CompiladoresIncorporacion De Una Tabla De Simbolos Compiladores
Incorporacion De Una Tabla De Simbolos Compiladores
 
Gramática y autómatas
Gramática y autómatasGramática y autómatas
Gramática y autómatas
 
Expresiones regulares2.pdf
Expresiones regulares2.pdfExpresiones regulares2.pdf
Expresiones regulares2.pdf
 
Lex yacc
Lex yaccLex yacc
Lex yacc
 
Tema 11 expresiones regulares en java por gio
Tema 11   expresiones regulares en java por gioTema 11   expresiones regulares en java por gio
Tema 11 expresiones regulares en java por gio
 
Expresiones regulares fin
Expresiones regulares finExpresiones regulares fin
Expresiones regulares fin
 
Expresiones regulares
Expresiones regularesExpresiones regulares
Expresiones regulares
 

Más de FARIDROJAS

Evauacion desempeño 1278 ppt
Evauacion desempeño 1278 pptEvauacion desempeño 1278 ppt
Evauacion desempeño 1278 pptFARIDROJAS
 
Homenaje A Belen Falla2
Homenaje A Belen Falla2Homenaje A Belen Falla2
Homenaje A Belen Falla2FARIDROJAS
 
Conceptos BáSicos Io
Conceptos BáSicos IoConceptos BáSicos Io
Conceptos BáSicos IoFARIDROJAS
 
Ondas Maestros 2006
Ondas Maestros 2006Ondas Maestros 2006
Ondas Maestros 2006FARIDROJAS
 
Anteproyectosesionoctubre18
Anteproyectosesionoctubre18Anteproyectosesionoctubre18
Anteproyectosesionoctubre18FARIDROJAS
 
Aguirre Jimenez
Aguirre JimenezAguirre Jimenez
Aguirre JimenezFARIDROJAS
 
Validacion Y Verificacion
Validacion Y VerificacionValidacion Y Verificacion
Validacion Y VerificacionFARIDROJAS
 

Más de FARIDROJAS (9)

Evauacion desempeño 1278 ppt
Evauacion desempeño 1278 pptEvauacion desempeño 1278 ppt
Evauacion desempeño 1278 ppt
 
Homenaje A Belen Falla2
Homenaje A Belen Falla2Homenaje A Belen Falla2
Homenaje A Belen Falla2
 
Conceptos BáSicos Io
Conceptos BáSicos IoConceptos BáSicos Io
Conceptos BáSicos Io
 
Ondas Maestros 2006
Ondas Maestros 2006Ondas Maestros 2006
Ondas Maestros 2006
 
Anteproyectosesionoctubre18
Anteproyectosesionoctubre18Anteproyectosesionoctubre18
Anteproyectosesionoctubre18
 
Compilador
CompiladorCompilador
Compilador
 
Aguirre Jimenez
Aguirre JimenezAguirre Jimenez
Aguirre Jimenez
 
ANTEPROYECTO
ANTEPROYECTOANTEPROYECTO
ANTEPROYECTO
 
Validacion Y Verificacion
Validacion Y VerificacionValidacion Y Verificacion
Validacion Y Verificacion
 

Último

PRIMER GRADO SOY LECTOR PART1- MD EDUCATIVO.pdf
PRIMER GRADO SOY LECTOR PART1- MD  EDUCATIVO.pdfPRIMER GRADO SOY LECTOR PART1- MD  EDUCATIVO.pdf
PRIMER GRADO SOY LECTOR PART1- MD EDUCATIVO.pdfGabrieldeJesusLopezG
 
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docxEJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docxFabianValenciaJabo
 
Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Rosabel UA
 
HISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICAHISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICAJesus Gonzalez Losada
 
CUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADO
CUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADOCUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADO
CUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADOEveliaHernandez8
 
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.karlazoegarciagarcia
 
NUEVO PLAN Y PROGRAMAS DE ESTUDIO 2022.pdf
NUEVO PLAN Y PROGRAMAS DE ESTUDIO  2022.pdfNUEVO PLAN Y PROGRAMAS DE ESTUDIO  2022.pdf
NUEVO PLAN Y PROGRAMAS DE ESTUDIO 2022.pdfEDNAMONICARUIZNIETO
 
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdfFichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdfssuser50d1252
 
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...MagalyDacostaPea
 
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...Martin M Flynn
 
Cuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdfCuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdflizcortes48
 
Abregú, Podestá. Directores.Líderes en Acción.
Abregú, Podestá. Directores.Líderes en Acción.Abregú, Podestá. Directores.Líderes en Acción.
Abregú, Podestá. Directores.Líderes en Acción.profandrearivero
 
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2Eliseo Delgado
 
Fichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdfFichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdfssuser50d1252
 
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxSecuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxNataliaGonzalez619348
 

Último (20)

PRIMER GRADO SOY LECTOR PART1- MD EDUCATIVO.pdf
PRIMER GRADO SOY LECTOR PART1- MD  EDUCATIVO.pdfPRIMER GRADO SOY LECTOR PART1- MD  EDUCATIVO.pdf
PRIMER GRADO SOY LECTOR PART1- MD EDUCATIVO.pdf
 
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docxEJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
 
Aedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptxAedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptx
 
Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024
 
HISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICAHISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICA
 
CUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADO
CUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADOCUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADO
CUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADO
 
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
 
NUEVO PLAN Y PROGRAMAS DE ESTUDIO 2022.pdf
NUEVO PLAN Y PROGRAMAS DE ESTUDIO  2022.pdfNUEVO PLAN Y PROGRAMAS DE ESTUDIO  2022.pdf
NUEVO PLAN Y PROGRAMAS DE ESTUDIO 2022.pdf
 
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdfFichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdf
 
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
 
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
 
¿Amor o egoísmo? Esa es la cuestión.pptx
¿Amor o egoísmo? Esa es la cuestión.pptx¿Amor o egoísmo? Esa es la cuestión.pptx
¿Amor o egoísmo? Esa es la cuestión.pptx
 
Cuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdfCuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdf
 
Sesión ¿Amor o egoísmo? Esa es la cuestión
Sesión  ¿Amor o egoísmo? Esa es la cuestiónSesión  ¿Amor o egoísmo? Esa es la cuestión
Sesión ¿Amor o egoísmo? Esa es la cuestión
 
Unidad 2 | Teorías de la Comunicación | MCDIU
Unidad 2 | Teorías de la Comunicación | MCDIUUnidad 2 | Teorías de la Comunicación | MCDIU
Unidad 2 | Teorías de la Comunicación | MCDIU
 
El Bullying.
El Bullying.El Bullying.
El Bullying.
 
Abregú, Podestá. Directores.Líderes en Acción.
Abregú, Podestá. Directores.Líderes en Acción.Abregú, Podestá. Directores.Líderes en Acción.
Abregú, Podestá. Directores.Líderes en Acción.
 
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
 
Fichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdfFichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdf
 
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxSecuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
 

Analisis Lexico

  • 1. En un compilador, el análisis lineal se llama análisis lineal o exploración. Por análisis lineal entendemos la cadena de caracteres que constituye el programa fuente se lee de izquierda a derecha y se agrupan en componentes léxicos, que son secuencias de caracteres que tiene un significado colectivo. Por ejemplo, en análisis léxico los caracteres de las siguientes proposiciones de asignación
  • 2.   Los espacios en blanco (delimitadores) que separan los caracteres de estos componentes léxicos normalmente se eliminan durante el análisis léxico.
  • 3. Una expresión regular denota un conjunto de secuencias de símbolos válidas que se construyen en base al alfabeto de un lenguaje. Generalmente estos conjuntos se representan como: Es una expresión regular que denota el conjunto vacío (el conjunto no contiene secuencias de símbolos).
  • 4.   Una secuencia de símbolos S es una expresión regular que denota a un conjunto que contiene a S. Operaciones sobre Lenguajes Es una expresión regular que denota al conjunto que contiene la secuencia vacía.
  • 5.   *Son una notación para definir lenguajes *Se ha demostrado que pueden expresar la clase de los lenguajes regulares * Permiten hacer una definición algebraica de un lenguaje * Se expresa el lenguaje de manera declarativa
  • 6.   Dadas dos expresiones regulares E1, E2, el resultado de aplicar cualquiera de estas tres operaciones, da como resultado otra expresión regular: *Unión (E1 ∪ E2) = {x | x ∈ E1 ´ox ∈ E2 ´o x ∈ E1 ∩ E2}. *Concatenación E1 ・ E2 = {xy | x ∈ E1, y ∈ E2} *Clausura o Estrella de Kleene (E1* ) = ∪ i>=E1i
  • 7. Construir una expresión regular es realizar operaciones sobre el alfabeto de un lenguaje. Podemos decir que el lenguaje, en su aspecto de léxico, está conformado por las operaciones   Unión de L y M . LUM = { S | S está en L ó S está en M } Concatenación de L y M. LM = { st | s está en L y t está en M}
  • 8.   Cerradura Kleene. (L se repite de 0 a infinito) Cerradura Positiva. ( L se repite de 1 a infinito).
  • 9.   Como se ve, las expresiones regulares son operaciones que se realizan sobre conjuntos de símbolos que pertenecen al alfabeto de un lenguaje. Estos conjuntos se describen colocando a los símbolos que pertenecen a ellos entre llaves. Por ejemplo, los caracteres que ubicamos como letras podrían conformar el conjunto {ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz}
  • 10.   Si los elementos del conjunto tienen un orden conocido o asociado al código ASCII se puede describir colocando el primer símbolo y el último separados por un guión (-) como {A-Z a-z} Para hacer más simple la construcción de una expresión regular, se designa bajo un nombre al conjunto con el cual se trabajará. así el conjunto letra se puede describir como L = {A-Z a-z}
  • 11.   Cuando a un conjunto o a una expresión regular se le da un nombre, ésta recibe el nombre de definición regular. Así, la expresión regular para un identificador será: ID=L (L | D | G) * si las definiciones sobre las cuales está construida son: L= {A-Z a-z} D = {0123456789} G = {_}
  • 12.   Por ejemplo, en Ada los identificadores están formados por letras, dígitos o guiones, pero el guión no puede ser el último caracter. La expresión regular con la cual se puede conformar el patrón para esta unidad de léxico puede ser: ID_ada = L (L | D) * (G (L | D ) + ) * U na expresión regular es un método formal para describir un patrón y puede ser empleada para construir un analizador léxico que lo reconozca en una computadora. De hecho, la expresión sufre una serie de transformaciones para llegar a ser explotada como tabla:
  • 13.     Expresión Regular   se convierte en   Autómata Finito No deterministico (NFA)   se convierte en   Autómata Finito Deterministico (DFA)   que se representa como   Tabla  
  • 14.
  • 15.   Un NFA esa un modelo matemático que consiste de: 1.- Un conjunto de estados. 2.- Un conjunto de símbolos de entrada. 3.- Una función de transición que corresponde pares estado-símbolo a conjuntos de estados. 4.- Un estado So que denota como el estado inicial. 5.- Un conjunto de estados F que denotan los estados de aceptación o finales. Un NFA no tiene restricciones para que exista mas de una transición con el mismo nombre a diferentes estados
  • 16.   por lo que en una representación tabular no es posible determinar de manera única el estado destino para un símbolo determinado. Por ejemplo, el siguiente diagrama representa la expresión (a | b)* a b b  
  • 17.   Un DFA es un caso especial de NFA en el que ningún estado tiene transiciones para diversos estados bajo el mismo símbolo y no se permiten transiciones épsilon. Los diagramas de transición son autómatas determinísticos. Por ejemplo, el DFA de (a | b)* a b b puede ser:
  • 18. que podría ser muy aproximado al diagrama de transición que construiríamos para la expresión.
  • 19.
  • 20.   Para la implementación de la tabla de símbolos, nos hemos ayudado de la librería STL . Hemos hecho uso del contenedor STL_HASHMAP. El acceso se realiza aplicando una función hash sobre el char * del identificador del símbolo. Para mayor legibilidad y facilidad, hemos implementado la clase c_tabla_simbolos. Realiza las operaciones que necesitamos, y se las implementa haciendo uso del citado contenedor hash.
  • 21.   Debido a que necesitaremos más de una tabla en determinados momentos, y a su vez, una jerarquía entre las tablas, hemos implementado también la clase c_almacen_tablas. Dicha clase hace uso del contenedor STL_STACK. A continuación se muestran los diagramas de las clases implementadas en notación UML.
  • 22.   :
  • 23.  
  • 24.   El método show de la clase c_tabla_simbolos sirve para llamar a los métodos show de cada símbolo almacenado. De esa manera se realiza el volcado pedido. En cuanto a la clase c_almacen_tablas, hemos implementado las operaciones avanzar, retroceder y enderezar. Sirven para poder movernos dentro de la pila sin perder elementos. Esto significa, que en un momento dado, podemos ejecutar avanzar sobre la pila, y la cima pasa a ser la tabla de símbolos previa.
  • 25.   Hemos supuesto que esto puede ser provechoso para las operaciones en las que haya que buscar si un símbolo se encuentra en la tabla de símbolos actual o en cualquiera de las tablas previas de la jerarquía. Al utilizar internamente dos pilas, una llamada posterior a retroceder dejaría la pila en su situación original. Enderezar se utiliza para regresar la pila a su posición original desde cualquier posición.
  • 26.   La clase Parse::Lex nos permite crear un analizador léxico. La estrategia seguida es mover el puntero de búsqueda dentro de la cadena a analizar utilizando conjuntamente el operador pos() y el ancla . > cat -n tokenizer.pl 1 #!/usr/local/bin/perl 2 3 require 5.004; 4 #BEGIN { unshift @INC, &quot;../lib&quot;; } 5 6 $^W = 0; 7 use Parse::Lex; 8 print STDERR &quot;Version $Parse::ALex::VERSION&quot; ;
  • 27.   9 10 @token = ( 11 qw( 12 ADDOP [-+] 13 LEFTP [] 14 RIGHTP [] 15 INTEGER [1-9][0-9]* 16 NEWLINE 17 ), 18 qw(STRING), [qw(&quot; (?:[^&quot;]+|&quot;&quot;)* &quot;)], 19 qw(ERROR .*), sub {
  • 28.   20 die qq!canapos;t analyze: &quot;$_[1]&quot;!; 21 } 22 ); 23 24 Parse::Lex->trace; 25 $lexer = Parse::Lex->new(@token); 26 27 $lexer->from(DATA);
  • 29.   27 $lexer->from(DATA); 28 print &quot;Tokenization of DATA:&quot;; 29 30 TOKEN:while (1) { 31 $token = $lexer->next; 32 if (not $lexer->eoi) { 33 print &quot;Record number: &quot;, $lexer->line, &quot;&quot;; 34 print &quot;Type: &quot;, $token->name, &quot;&quot;; 35 print &quot;Content:->&quot;, $token->text, &quot;<-&quot;; 36 } else { 37 last TOKEN;
  • 30.   38 } 39 } 40 41 __END__ 42 1+2-5 43 &quot;This is a multiline 44 string with an embedded &quot;&quot; in it&quot; 45 this is an invalid string with a &quot;&quot; in it&quot;
  • 31.   Entrada: function main(){ /* Otra prueba mas ! */ var a = 3 // var b = 2 /* a debería estar en la tabla de símbolos, b no ! */   var i var v = new Array (101) for (i=0; i<100; i+=5){ v[i]=i; }  
  • 32.   for (i=0; i<100; i+=5){ document.write(v[i], &quot; &quot;); } document.write(&quot;&quot;); }   main(); // Fin de la prueba Salida: Leyendo del fichero 'prueba10'
  • 33.   ANA RAQUEL GARCIA FALLA YUDY MERCEDES LOSADA ROMERO
  • 34.   *En que se clasifica las expresiones autónomas finitas? * Cual es la funcionalidad de las expresiones regulares?
  • 35.   * El lenguaje en su aspecto léxico esta compuesto de que operaciones y de ejemplo de cada una de ellas.