Compiladores e Intérpretes Análisis Léxico

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Compiladores e Intérpretes Análisis Léxico"

Transcripción

1 1 Compiladores e Intérpretes Análisis Léxico Sebastian Gottifredi 2017

2 Organizacion Esquema General de Análisis Léxico Tokens Especificando Tokens Expresiones Regulares Reconociendo Tokens Autómatas Finitos Implementando Analizadores Léxicos 2

3 Esquema General del Análisis Léxico 3

4 Esquema General del Análisis Léxico El programa fuente es una cadena de caracteres Tenemos que reconocer si esa cadena pertenece al lenguaje utilizando las reglas de sintaxis del lenguaje Las reglas de sintaxis se expresan en términos de palabras if(id1>10) var= hola ; else print chau ; //fin TEXT: if(id1>10) var =_ hola ; else print_ chau ; //fin 4

5 Esquema General del Análisis Léxico if(id1>10) var=_ hol a ; else print_ chau ; //fin Analizador Léxico El Analizador Léxico es el encargado de leer directamente el texto del programa fuente Busca construir esas palabras o subcadenas agrupando caracteres Elimina blancos, separadores y comentarios Informa de Errores Léxicos if ( id > num ) id = String ; else print String ; 5

6 Esquema General del Análisis Léxico El Analizador Léxico funciona por demanda! El analizador sintáctico irá solicitándole palabras Analizador Léxico NEXT! id Analizador if( Sintáctico if(id1>10) var=_ hol a ; else print_ chau ; //fin 6

7 Esquema General del Análisis Léxico En esta etapa también se detectan los errores léxicos Estos errores se producen, por ejemplo, cuando: Aparece un caracter extraño que no es una palabra del lenguaje (por ejemplo: el carácter en un código java) Cuando una de las palabras del lenguaje está mal formada (por ejemplo en Pascal 123ab es un número o identificador mal formado) Se detecta un comentario multi-línea sin cerrar 7

8 Tokens 8

9 Tokens Las palabras o subcadenas agrupadas por el analizador léxico son llamadas Lexemas Son clasificadas en Tokens Los Tokens caracterizan subcadenas con un rol dentro del lenguaje de programación Por ejemplo: Enteros, Strings, Identificadores, palabra clave IF, Igual, etc.. 9

10 Tokens Caracterizan conjuntos de subcadenas! Por ejemplo: Token Identificador: subcadena que empiezan con una letra y sigue con una sequencia de letras y/o dígitos Ejemplos: id1 var myvar amigo a1244 Token String: subcadena que comienza con, sigue con una secuencia de caracteres, y termina con Ejemplos: hola me#@!!& id1 10

11 Tokens Otros son identificados por una única subcadena Por ejemplo: Token Igual: subcadena con el caracter = Token Mayor o Igual: subcadena con los carácteres >= Token Palabra Clave IF: subcadena con los caracteres if Los espacios, tabs, enters (blancos) y comentarios NO son tokens! 11

12 Tokens La salida del analizador léxico ante un pedido del analizador sintáctico es un token. El token retornado está acompañado por el lexema caracterizado por ese token. El lexema es un atributo del token retornado! Como los blancos y comentarios no son tokens, no son retornados por el analizador léxico! 12

13 Especificando Tokens Expresiones Regulares 13

14 Especificando Tokens Expresiones Regulares Para implementar el analizador léxico de un lenguaje de programación tenemos que identificar sus tokens Describir los lexemas que caracterizan, es decir, dar una especificación para los tokens del lenguaje El formalismo usual para esta tarea son los Lenguajes Regulares Por qué estos lenguajes? Son lenguajes formales menos complejos, más simples y más eficientes capaces identificar los lexemas. 14

15 Especificando Tokens Expresiones Regulares Los lenguajes regulares se notan con expresiones regulares (ER): Dado un alfabeto una expresión regular r puede ser: Un caracter c de la cadena vacía Dadas dos expresiones regulares r1 y r2 en se puede construir como: r1r2 (secuencia) r1 r2 (opción) r1* (clausura) r1 + (clausura positiva) Se puede usar paréntesis para indicar agrupamiento o precedencia 15

16 Especificando Tokens Expresiones Regulares El conjunto de cadenas o lenguaje que genera con una expresión regular r se denota L(r), Por ejemplo, si r3 = a(b c) tenemos que L(r3) = {ab, ac} Qué representa rd = ( )? Cómo es L(rd)? Cómo es la expresión regular re para un entero? y L(re)? Cómo sería la de un identificador? La de mayor? La de mayor o igual? Pizarrón! Por simplicidad usamos [0..9], [a..z] y [A..Z] para caracterizar dígitos, letras minúsculas y letras mayúsculas respectivamente 16

17 Reconociendo Tokens Autómatas Finitos 17

18 Reconociendo Tokens Autómatas Finitos Los Autómatas Finitos (AF) reconocen cadenas de los lenguajes regulares Un autómata finito esta formalmente caracterizado por: Alfabeto Conjunto de estados E Función de transición de estados T: E x E Estado inicial I Conjunto de estados finalizadores F E Estado Estado Inicial Estado Aceptador Transición c 18

19 Reconociendo Tokens Autómatas Finitos El AF va aplicando transiciones a medida que consume los caracteres de la cadena de entrada Partiendo del estado inicial, si el autómata puede consumir toda la toda la cadena y queda en un estado finalizador acepta la cadena sino rechaza la cadena b a e0 e1 e2 a a abba aabb abbaa 19

20 Reconociendo Tokens Autómatas Finitos Dada una ER podemos construir un AF que reconoce el lenguaje generado por esa expresión Cómo sería el autómata para reconocer X? donde X es: El operador igual El operador mayor o igual Palabra clave else Enteros Identificadores Pizarrón! 20

21 Implementado Analizadores Léxicos 21

22 Implementando Analizadores Léxicos Para implementar el Analizador Léxico vamos a usar los AF que reconocen las ER asociadas a cada token del lenguaje Cómo lo implementamos? Recibe y va leyendo el programa fuente Funciona por demanda Ante un pedido, reconoce un token y lo retorna Al retornar un token puede no haber terminado de procesar el programa fuente 22

23 Implementando Analizadores Léxicos Ante un pedido el Analizador Léxico debería poder reconocer cualquier token válido Entero e0 e1 e1 Entero Pizarrón! Id Mayor o Igual Mayor e0 e1 letra letra o > = e0 e1 e2 e0 > e1 e0 el Analizador Léxico se basará en un AF que se construye uniendo adecuadamente los AFs de cada ER letra > > e3 e5 e2 = letra o e4 Mayor Id Mayor o Igual 23

24 Implementando Analizadores Léxicos Hay tokens que comparten prefijos Mayor o Igual Mayor > = e0 e1 e2 e0 > e1 No determinista! > = e0 e3 e4 > e5 > 24

25 Implementando Analizadores Léxicos Hay tokens que comparten prefijos Mayor o Igual > = e0 e1 e2 > = e0 e3 e4 Mayor e0 > e1 > 25

26 Implementando Analizadores Léxicos Los estados terminadores deben retornar el token reconocido (con su lexema) e0 Analizador Léxico letra e1 e2 > = e3 letra o e4 Next Token! >=5 26

27 Implementando Analizadores Léxicos Los estados terminadores deben retornar el token reconocido (con su lexema) Analizador Léxico e1 e0 letra e2 > = e3 letra o e4 >=5 27

28 Implementando Analizadores Léxicos Los estados terminadores deben retornar el token reconocido (con su lexema) Analizador Léxico e1 e0 letra e2 letra o > = e3 e4 op>= >= >=5 28

29 Implementando Analizadores Léxicos La cadena de entrada puede contener más de un token Analizador Léxico e1 Next Token! Analizador Léxico e1 Next Token! e0 letra e2 > = e3 >=5 letra o e4 Al iniciar el reconocimiento de un token debe estar en el estado inicial e0 letra e2 > = e3 >=5 letra o e4 29

30 Implementando Analizadores Léxicos Reconocer el token más grande posible Analizador Léxico e1 Next Token! e0 letra e2 > = e3 543>= letra o e4 30

31 Implementando Analizadores Léxicos Reconocer el token más grande posible e0 Analizador Léxico letra e1 e2 > = e3 543>= letra o e4 Estoy en un estado terminador pero tengo que seguir armando el token! Aún no hay que retornar nada! 32

32 Implementando Analizadores Léxicos Reconocer el token más grande posible Analizador Léxico e1 e0 letra e2 > = e3 543>= letra o e4 33

33 Implementando Analizadores Léxicos Reconocer el token más grande posible e0 Analizador Léxico letra e1 e2 > = e3 543>= letra o e4 Termino porque mirando el caracter (sin consumirlo) no puedo seguir armando el token int

34 Implementando el Analizador Léxico Los blancos y comentarios no son tokens Aun así el Analizador Léxico debe ser capaz de procesarlos, ya que: Se pueden usar como separadores entre tokens (ids, números, etc) Para ignorarlos hay que consumirlos Pueden tener errores! (solo en comentarios) El autómata debería tener transiciones para realizar estas tareas Cómo consumirían los espacios, tabs y enters? Pizarrón! 35

35 Implementando el Analizador Léxico Cómo detectamos un error léxico? e0 Analizador Léxico letra e1 e2 > = e3 letra o e4 Estando en un estado no terminador y el caracter actual no se corresponde con ninguna transición ~ Cómo detectamos el error de un comentario multilínea sin cerrar? 36

36 Implementando el Analizador Léxico Estrategias para codificar el autómata Subprogramas x Estado Swtich/Case Tabla Herramientas Automáticas 37

37 Implementando el Analizador Léxico Subprogramas: para cada estado ei, creamos una función ei(): Si caracteractual = c1 Agregar caracteractual a lexemaactual Consumir caracter retornar el resultado de ej() Sino Si caracteractual = cn Agregar caracteractual a lexemaactual Consumir caracter retornar el resultado de ek() Sino Si ei es un estado terminador retornar token asociado a ei Sino ERROR! ei ej ek Pizarrón! NextToken(): lexemaactual = vacio retornar el resultado de e0() 38

38 Implementando el Analizador Léxico Switch/Case: la función nexttoken captura todos los estados Loop switch (estado): case ei: Si caracteractual = c1 Agregar caracteractual a lexemaactual Consumir carácter estado = ej break Sino Si ei es aceptador retornar token de ei Sino ERROR! case ej: end loop ei ej ek 39

39 Implementando el Analizador Léxico En general implementar las palabras claves del lenguaje utilizando sus AF es problemático porque: Requiere muchos estados (casi uno por letra de la palabra clave) Hay que fusionar esos estados entre sí y con los de identificadores En la mayoría de los lenguajes las palabras clave son prácticamente identificadores especiales Cómo podemos aprovechar esto? Cuando armamos un token identificador controlamos si no es una palabra clave en una tabla de palabras clave! 40

Análisis léxico. Formalización y desarrollo. Procesadores de Lenguajes. Ingeniería Técnica superior de Ingeniería Informática

Análisis léxico. Formalización y desarrollo. Procesadores de Lenguajes. Ingeniería Técnica superior de Ingeniería Informática Procesadores de Lenguajes Ingeniería Técnica superior de Ingeniería Informática Departamento de Lenguajes y Sistemas informáticos Análisis léxico Formalización y desarrollo Javier Vélez Reyes jvelez@lsi.uned.es

Más detalles

UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA Escuela Técnica Superior de Ingeniería Informática Procesadores de Lenguajes. Tema 2.

UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA Escuela Técnica Superior de Ingeniería Informática Procesadores de Lenguajes. Tema 2. UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA Escuela Técnica Superior de Ingeniería Informática Procesadores de Lenguajes Tema 2 Análisis Léxico Javier Vélez Reyes jvelez@lsi.uned.es Objetivos del Tema

Más detalles

ANÁLISIS LÉXICO Ing. Ronald Rentería Ayquipa

ANÁLISIS LÉXICO Ing. Ronald Rentería Ayquipa ANÁLISIS LÉXICO Ing. Ronald Rentería Ayquipa ANALIZADOR LÉXICO (AL) El Analizador léxico (scanner), lee la secuencia de caracteres del programa fuente, caracter a caracter, y los agrupa para formar unidades

Más detalles

SSL Guia de Ejercicios

SSL Guia de Ejercicios 1 SSL Guia de Ejercicios INTRODUCCIÓN A LENGUAJES FORMALES 1. Dado el alfabeto = {a, b, c}, escriba las palabras del lenguaje L = {x / x }. 2. Cuál es la cardinalidad del lenguaje L = {, a, aa, aaa}? 3.

Más detalles

Objetivos Que el estudiante logre conocer, comprender y manejar conceptos y técnicas vinculados con el Analizador Léxico, para lo cual debe:

Objetivos Que el estudiante logre conocer, comprender y manejar conceptos y técnicas vinculados con el Analizador Léxico, para lo cual debe: 09:19 1 2 Temas Funciones del Analizador Léxico Manejo de buffers de entrada Especificación y reconocimiento de tokens Generación automática de Analizadores Léxicos Objetivos Que el estudiante logre conocer,

Más detalles

Funcionamiento del A.L.

Funcionamiento del A.L. ANALIZADOR LEXICO 1 Funcionamiento del A.L. Programa fuente Analizador léxico Componente léxico Obtén el siguiente componente léxico Analizador sintáctico Tabla de símbolos 2 Maneja el fichero del programa

Más detalles

Tema 2: Análisis léxico

Tema 2: Análisis léxico Tema 2: Análisis léxico Procesamiento de Lenguajes Dept. de Lenguajes y Sistemas Informáticos Universidad de Alicante Procesamiento de Lenguajes Tema 2: Análisis léxico 1 / 22 Fundamentos del análisis

Más detalles

Agenda. Introducción Analizador léxico Analysis El problema de analizar sintácticamente Analizador sintáctico descendeterecursivo

Agenda. Introducción Analizador léxico Analysis El problema de analizar sintácticamente Analizador sintáctico descendeterecursivo Agenda Introducción Analizador léxico Analysis El problema de analizar sintácticamente Analizador sintáctico descendeterecursivo Analizador sintáctico Bottom-Up 1-1 1-2 Introducción Los sistemas de implementación

Más detalles

Unidad III Análisis Léxico. M.C. Juan Carlos Olivares Rojas

Unidad III Análisis Léxico. M.C. Juan Carlos Olivares Rojas Unidad III Análisis Léxico M.C. Juan Carlos Olivares Rojas Agenda 3.1 Introducción a los Autómatas finitos y expresiones regulares. 3.2 Analizador de léxico. 3.3 Manejo de localidades temporales de memoria

Más detalles

16 Análisis sintáctico I

16 Análisis sintáctico I 2 Contenido Recordando la estructura de un compilador Recordando el análisis léxico l análisis sintáctico Comparación con el análisis léxico l Rol del Parser Lenguajes de programación Gramáticas structura

Más detalles

Compiladores e Intérpretes Análisis Semántico I

Compiladores e Intérpretes Análisis Semántico I 1 Compiladores e Intérpretes Análisis Semántico I Sebastian Gottifredi 2017 Organización Repaso Intuición General del Análisis Semántico Gramáticas de Atributos Funcionamiento Atributos: Sintetizados-Heredados-Intrinsecos

Más detalles

Compiladores: Análisis Léxico. Pontificia Universidad Javeriana Cali Ingeniería de Sistemas y Computación Prof. Gloria Inés Alvarez V.

Compiladores: Análisis Léxico. Pontificia Universidad Javeriana Cali Ingeniería de Sistemas y Computación Prof. Gloria Inés Alvarez V. Compiladores: Análisis Léxico Pontificia Universidad Javeriana Cali Ingeniería de Sistemas y Computación Prof. Gloria Inés Alvarez V. Análisis Léxico Programa Lenguaje Fuente Análisis Léxico (Token, Lexema)

Más detalles

DEFINICIÓN FORMAL DE UN AFP

DEFINICIÓN FORMAL DE UN AFP Los AUTÓMATAS FINITOS CON PILA además de reconocer a los Lenguajes Regulares, tienen la capacidad de reconocer a los LICs, como las expresiones aritméticas y las sentencias de un Lenguaje de Programación.

Más detalles

8- LEX-Expresiones regulares

8- LEX-Expresiones regulares 8- LEX-Expresiones regulares Objetivos: Utilizar la herramienta KEX para trabajar con expresiones regulares Recursos: Maquina virtual Linux distribución Bodhi LXterminal y FLEX Introducción Flex le permite

Más detalles

Analizador Léxico. Programación II Margarita Álvarez. Analizador Léxico - Funciones

Analizador Léxico. Programación II Margarita Álvarez. Analizador Léxico - Funciones Analizador Léxico Programación II Margarita Álvarez Analizador Léxico - Funciones Función Principal Leer carácter por carácter de la entrada y elaborar como salida una secuencia de componentes léxicos

Más detalles

CAPITULO 2: LENGUAJES

CAPITULO 2: LENGUAJES CAPITULO 2: LENGUAJES 2.1. DEFINICIONES PREIAS SIMBOLO: Es una entidad indivisible, que no se va a definir. Normalmente los símbolos son letras (a,b,c,.., Z), dígitos (0, 1,.., 9) y otros caracteres (+,

Más detalles

El proceso del Análisis Léxico

El proceso del Análisis Léxico El proceso del Análisis Léxico El proceso de análisis léxico se refiere al trabajo que realiza el scanner con relación al proceso de compilación. El scanner representa una interfaz entre el programa fuente

Más detalles

Tema: Autómatas de Estado Finitos

Tema: Autómatas de Estado Finitos Compiladores. Guía 2 1 Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores Tema: Autómatas de Estado Finitos Contenido En esta guía se aborda la aplicación de los autómatas en el campo de

Más detalles

Analizador De léxico. V A R i : I N T E G E R ; \n...

Analizador De léxico. V A R i : I N T E G E R ; \n... UNIDAD III Analisis de Lexico 3.1 Analizador de Lexico La tarea del análisis de léxico es reconocer símbolos en un flujo de caracteres y presentarlos en una representación mas util para el análisis sintáctico.

Más detalles

Compiladores e intérpretes Análisis Léxico I. Análisis Léxico I

Compiladores e intérpretes Análisis Léxico I. Análisis Léxico I Análisis Léxico I Profesor: Eridan Otto Análisis Léxico I Introducción Funciones Tokens,Patrones y Lexemas Reconocimiento de tokens Implementación de un AL 1 Análisis léxico: Introducción En esta unidad

Más detalles

Sintaxis de C Ing. Jose Maria Sola Dr. Oscar Ricardo Bruno

Sintaxis de C Ing. Jose Maria Sola Dr. Oscar Ricardo Bruno 1.1. Gramática Léxica 1.1.1. Elementos Léxicos Sintaxis de C Ing. Jose Maria Sola Dr. Oscar Ricardo Bruno ->

Más detalles

NOTAS PARA LA MATERIA LENGUAJES DE PROGRAMACIÓN

NOTAS PARA LA MATERIA LENGUAJES DE PROGRAMACIÓN NOTAS PARA LA MATERIA LENGUAJES DE PROGRAMACIÓN G r a m á t i c a s UNIVERSIDAD DE SONORA DEPARTAMENTO DE MATEMÁTICAS LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN Dra. María de Guadalupe Cota Ortiz Lenguaje

Más detalles

Ciencias de la Computación I

Ciencias de la Computación I Ciencias de la Computación I Gramáticas Regulares Expresiones Regulares Gramáticas - Intuitivamente una gramática es un conjunto de reglas para formar correctamente las frases de un lenguaje - Por ejemplo,

Más detalles

Procesadores de lenguaje Tema 2: Análisis léxico

Procesadores de lenguaje Tema 2: Análisis léxico Procesadores de lenguaje Tema 2 Análisis léxico Departamento de Ciencias de la Computación Universidad de Alcalá de Henares Resumen del tema Objetivo: comprender la estructura, organización y funcionamiento

Más detalles

Procesadores de lenguaje Tema 2 Análisis léxico

Procesadores de lenguaje Tema 2 Análisis léxico Procesadores de lenguaje Tema 2 Análisis léxico Departamento de Ciencias de la Computación Universidad de Alcalá de Henares Resumen del tema Objetivo: comprender la estructura, organización y funcionamiento

Más detalles

ANÁLISIS LÉXICO EXPRESIONES REGULARES

ANÁLISIS LÉXICO EXPRESIONES REGULARES Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público

Más detalles

No todos los LRs finitos se representan mejor con ERs. Observe el siguiente ejemplo:

No todos los LRs finitos se representan mejor con ERs. Observe el siguiente ejemplo: 1 Clase 3 SSL EXPRESIONES REGULARES Para REPRESENTAR a los Lenguajes Regulares. Se construyen utilizando los caracteres del alfabeto sobre el cual se define el lenguaje, el símbolo y operadores especiales.

Más detalles

Tema 5. Análisis semántico

Tema 5. Análisis semántico Departamento de Tecnologías de la Información Tema 5 Análisis semántico Ciencias de la Computación e Inteligencia Artificial Índice 5.1 Características del análisis semántico 5.2 Gramáticas atribuidas

Más detalles

07 Análisis léxico III

07 Análisis léxico III 2 Contenido Lenguaje Operaciones entre lenguajes Lenguajes regulares Expresiones regulares 3 Lenguaje Un lenguaje es un conjunto de palabras (cadenas) de un determinado alfabeto Σ. Formalmente: Se llama

Más detalles

18 Análisis sintáctico III Compiladores - Profr. Edgardo Adrián Franco Martínez. Clasificación de métodos de análisis sintáctico Análisis descendente

18 Análisis sintáctico III Compiladores - Profr. Edgardo Adrián Franco Martínez. Clasificación de métodos de análisis sintáctico Análisis descendente 2 Contenido Clasificación de métodos de análisis sintáctico Análisis descendente Análisis descendente recursivo Análisis descendente predictivo Métodos deterministas Problemas del análisis descendente

Más detalles

1. Cadenas EJERCICIO 1

1. Cadenas EJERCICIO 1 LENGUAJES FORMALES Y AUTÓMATAS CURSO 2006/2007 - BOLETÍN DE EJERCICIOS Víctor J. Díaz Madrigal y José Miguel Cañete Departamento de Lenguajes y Sistemas Informáticos 1. Cadenas La operación reversa aplicada

Más detalles

ESPECIFICACIÓN DE SÍMBOLOS

ESPECIFICACIÓN DE SÍMBOLOS 1 UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA DEPARTAMENTO DE COMPUTACIÓN ESPECIFICACIÓN DE SÍMBOLOS Elaborado el Sábado 24 de Julio de 2004 I.- COMPONENTES LÉXICOS, PATRONES Y LEXEMAS (extraído de

Más detalles

Controla el flujo de tokens reconocidos por parte del analizador léxico. 4.2 Introduccion a las gramaticas libres de contexto y arboles de derivacion

Controla el flujo de tokens reconocidos por parte del analizador léxico. 4.2 Introduccion a las gramaticas libres de contexto y arboles de derivacion UNIDAD IV Analisis Sintactico 4.1 Introduccion Sintaxis significa estructura del orden de las palabras en una frase. La tarea del analisis sintactico es revisar si los símbolos aparecen en el orden correcto

Más detalles

Lenguajes y Compiladores Aspectos Formales (Parte 2) Compiladores

Lenguajes y Compiladores Aspectos Formales (Parte 2) Compiladores Facultad de Ingeniería de Sistemas Lenguajes y Aspectos Formales (Parte 2) 2007 1 Derivaciones El proceso de búsqueda de un árbol sintáctico para una cadena se llama análisis sintáctico. El lenguaje generado

Más detalles

ANÁLISIS LÉXICO CONCEPTOS BÁSICOS DEL ANÁLISIS LÉXICO

ANÁLISIS LÉXICO CONCEPTOS BÁSICOS DEL ANÁLISIS LÉXICO Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público

Más detalles

Tema: Análisis Léxico

Tema: Análisis Léxico Compiladores. Guía 2 1 Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores Tema: Análisis Léxico Contenido En esta guía se dará a conocer la manera en que un compilador realiza el análisis

Más detalles

Analizador Sintáctico Ascendente

Analizador Sintáctico Ascendente Analizador Sintáctico Ascente Un Analizador Sintáctico (A. St.) Ascente construye el árbol desde las hojas hacia la raíz. Funciona por reducción-desplazamiento, lo cual quiere decir que, siempre que puede,

Más detalles

Lex (flex,... ) Generación de analizador léxico p.1

Lex (flex,... ) Generación de analizador léxico p.1 Generación de analizador léxico Lex (flex... ) Generación de analizador léxico p.1 Expresiones regulares tipo grep Expresiones simples (un sólo carácter): carácter carácter. cualquier carácter (excepto

Más detalles

Tema 2. Análisis léxico

Tema 2. Análisis léxico Departamento de Tecnologías de la Información Tema 2 Análisis léxico Ciencias de la Computación e Inteligencia Artificial Índice 2.1 Introducción 2.2 Especificación de categorías léxicas 2.3 Autómatas

Más detalles

LEX. Las definiciones y subrutinas son opcionales. El segundo %% es opcional pero el primer %% indica el comienzo de las reglas.

LEX. Las definiciones y subrutinas son opcionales. El segundo %% es opcional pero el primer %% indica el comienzo de las reglas. LEX Estructura de un programa en LEX { definiciones { reglas { subrutinas del usuario Las definiciones y subrutinas son opcionales. El segundo es opcional pero el primer indica el comienzo de las reglas.

Más detalles

DIAGRAMAS DE TRANSICIONES

DIAGRAMAS DE TRANSICIONES 1 UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA DEPARTAMENTO DE COMPUTACIÓN DIAGRAMAS DE TRANSICIONES Elaborado el Lunes 06 de Septiembre de 2004 I.- INTRODUCCIÓN (extraído de Compiladores: Principios,

Más detalles

Software para la Enseñanza de las Fases de Análisis Léxico y Análisis Sintáctico en Procesadores de Lenguajes

Software para la Enseñanza de las Fases de Análisis Léxico y Análisis Sintáctico en Procesadores de Lenguajes Software para la Enseñanza de las Fases de Análisis Léxico y Análisis Sintáctico en Procesadores de Lenguajes Manual de usuario Realizado por: José Francisco Jódar Reyes Dirigido por: Jorge Revelles Moreno

Más detalles

Algunos ejercicios sobre modelado sintáctico en exámenes de Compiladores e intérpretes

Algunos ejercicios sobre modelado sintáctico en exámenes de Compiladores e intérpretes Algunos ejercicios sobre modelado sintáctico en exámenes de Compiladores e intérpretes IG29: Compiladores e intérpretes Séptima sesión de teoría Ejercicio 1 Considera el lenguaje de las listas que cumplen

Más detalles

Máquinas de estado finito y expresiones regulares

Máquinas de estado finito y expresiones regulares Capítulo 3 Máquinas de estado finito y expresiones regulares En este tema definiremos y estudiaremos máquinas de estado finito, llamadas también máquinas de estado finito secuenciales o autómatas finitos.

Más detalles

Seminario de introducción a Flex

Seminario de introducción a Flex Seminario de introducción a Flex David Portolés Rodríguez dporto@unizar.es Lenguajes y Sistemas Informáticos Dpto. de Informática e Ing. de Sistemas Universidad de Zaragoza Qué es Flex? Flex es un una

Más detalles

08 Análisis léxico IV

08 Análisis léxico IV 2 Contenido Expresiones regulares Lenguaje generado por una expresión regular Precedencia de las operaciones con las expresiones regulares Ejemplos Definiciones regulares Extensiones de las expresiones

Más detalles

Compiladores: Análisis Sintáctico. Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V.

Compiladores: Análisis Sintáctico. Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V. Compiladores: Análisis Sintáctico Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V. Análizador Sintáctico de abajo hacia arriba Es un proceso de Reducción,

Más detalles

Nombre de la asignatura: Lenguajes y Autómatas I. Créditos: Aportación al perfil

Nombre de la asignatura: Lenguajes y Autómatas I. Créditos: Aportación al perfil Nombre de la asignatura: Lenguajes y Autómatas I Créditos: 2 3 5 Aportación al perfil Desarrollar, implementar y administrar software de sistemas o de aplicación que cumpla con los estándares de calidad

Más detalles

GRAMÁTICAS LIBRES DE CONTEXTO

GRAMÁTICAS LIBRES DE CONTEXTO GRAMÁTICAS LIBRES DE CONTEXTO Definición Una gramática libre de contexto (GLC) es una descripción estructural precisa de un lenguaje. Formalmente es una tupla G=, donde Vn es el conjunto

Más detalles

Tema 3: Gramáticas regulares. Teoría de autómatas y lenguajes formales I

Tema 3: Gramáticas regulares. Teoría de autómatas y lenguajes formales I Tema 3: Gramáticas regulares Teoría de autómatas y lenguajes formales I Bibliografía Hopcroft, J. E., Motwani, R., y Ullman, J. D. Introducción a la Teoría de Autómatas, Lenguajes y Computación. Addison

Más detalles

Unidad 4. Autómatas de Pila

Unidad 4. Autómatas de Pila Unidad 4. Autómatas de Pila Una de las limitaciones de los AF es que no pueden reconocer el lenguaje {0n1n} debido a que no se puede registrar para todo n con un número finito de estados. Otro lenguaje

Más detalles

Unidad 4. Autómatas de Pila

Unidad 4. Autómatas de Pila Unidad 4. Autómatas de Pila Una de las limitaciones de los AF es que no pueden reconocer el lenguaje {0 n 1 n } debido a que no se puede registrar para todo n con un número finito de estados. Otro lenguaje

Más detalles

Analizadores sintácticos LR(0) y SLR

Analizadores sintácticos LR(0) y SLR Teoría de Lenguajes Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires Clase de Hoy Anteriores: Parsing descendente (LL(1), ELL) Recursivos e iterativos Generan árbol de derivación desde

Más detalles

Tema 4: Gramáticas independientes del contexto. Teoría de autómatas y lenguajes formales I

Tema 4: Gramáticas independientes del contexto. Teoría de autómatas y lenguajes formales I Tema 4: Gramáticas independientes del contexto Teoría de autómatas y lenguajes formales I Bibliografía Hopcroft, J. E., Motwani, R., y Ullman, J. D. Introducción a la Teoría de Autómatas, Lenguajes y Computación.

Más detalles

Apuntes de compiladores

Apuntes de compiladores Apuntes de compiladores Tomás Barros 4 de septiembre de 2008 1. Introducción Un compilador es simplemente un programa que puede leer un programa en un lenguaje y traducirlo a otro lenguaje programa fuente

Más detalles

INTRODUCCIÓN AL PROCESO DE COMPILACIÓN

INTRODUCCIÓN AL PROCESO DE COMPILACIÓN INTRODUCCIÓN AL PROCESO DE COMPILACIÓN El programa que se debe compilar es una secuencia de caracteres que termina con un centinela. CONCEPTOS BÁSICOS Un compilador es un complejo programa que lee un programa

Más detalles

10 Análisis léxico VI Compiladores - Profr. Edgardo Adrián Franco Martínez

10 Análisis léxico VI Compiladores - Profr. Edgardo Adrián Franco Martínez 2 Contenido Clasificación de los autómatas finitos Autómata finito no determinista (AFND) Autómata finito determinista (AFD) Teorema sobre la transformación de AFND en AFD Transformación de una expresión

Más detalles

Universidad de Valladolid

Universidad de Valladolid Universidad de Valladolid Departamento de Informática Teoría de autómatas y lenguajes formales. 2 o I.T.Informática. Gestión. Examen de primera convocatoria. 18 de junio de 29 Apellidos, Nombre... Grupo:...

Más detalles

Conceptos básicos sobre gramáticas

Conceptos básicos sobre gramáticas Procesamiento de Lenguajes (PL) Curso 2014/2015 Conceptos básicos sobre gramáticas Gramáticas y lenguajes Gramáticas Dado un alfabeto Σ, un lenguaje es un conjunto (finito o infinito) de cadenas de símbolos

Más detalles

Lex. Lex. Ing. Adrian Ulises Mercado Martínez. Enero 30, Ing. Adrian Ulises Mercado Martínez Lex Enero 30, / 27

Lex. Lex. Ing. Adrian Ulises Mercado Martínez. Enero 30, Ing. Adrian Ulises Mercado Martínez Lex Enero 30, / 27 Lex Ing. Adrian Ulises Mercado Martínez Enero 30, 2015 Ing. Adrian Ulises Mercado Martínez Lex Enero 30, 2015 1 / 27 1 Lex 2 Compilar con lex 3 Estructura de un programa en lex 4 Expresiones Regulares

Más detalles

Práctica No. 4 Programas en Lex

Práctica No. 4 Programas en Lex Práctica No. 4 Programas en Lex Objetivo El objetivo de esta práctica es conocer el programa flex y utilizarlo para crear y compilar algunos ejemplos de programas Lex autónomos. Introducción Podemos definir

Más detalles

22, 23 y 24 Análisis sintáctico V Compiladores - Profr. Edgardo Adrián Franco Martínez

22, 23 y 24 Análisis sintáctico V Compiladores - Profr. Edgardo Adrián Franco Martínez 2 Contenido Análisis Sintáctico Ascendente Métodos Ascendentes Método Ascendente SLR Pasos para el método SLR Ejemplo SLR Resumen Ejercicios Compiladores (Análisis Sintáctico VI - Análisis Ascendente -

Más detalles

DATOS DE IDENTIFICACIÓN. Materia: Introducción a la teoría de los lenguajes formales Definición de alfabeto ETAPA PREINSTRUCCIONAL

DATOS DE IDENTIFICACIÓN. Materia: Introducción a la teoría de los lenguajes formales Definición de alfabeto ETAPA PREINSTRUCCIONAL Actividades ACTIVIDAD 1.1 Introducción a la teoría de los lenguajes formales Definición de alfabeto 30 minutos Búsqueda de diferentes lenguajes Desarrollar el análisis de textos y el aprendizaje autónomo.

Más detalles

Fundamentos de Ciencias de la Computación Trabajo Práctico N 2 Lenguajes Libres del Contexto y Sensibles al Contexto Segundo Cuatrimestre de 2002

Fundamentos de Ciencias de la Computación Trabajo Práctico N 2 Lenguajes Libres del Contexto y Sensibles al Contexto Segundo Cuatrimestre de 2002 Departamento de Cs. e Ingeniería de la Computación Universidad Nacional del Sur Ejercicios Fundamentos de Ciencias de la Computación Trabajo Práctico N 2 Lenguajes Libres del Contexto y Sensibles al Contexto

Más detalles

Elementos de un programa en C

Elementos de un programa en C Elementos de un programa en C Un programa en C consta de uno o más archivos. Un archivo es traducido en diferentes fases. La primera fase es el preprocesado, que realiza la inclusión de archivos y la sustitución

Más detalles

12 La herramienta LEX

12 La herramienta LEX 2 Contenido La herramienta Lex Esquema de un fuente en Lex Zona de definiciones Zona de reglas Zona de rutinas del usuario Archivo de salida (lex.yy.c) Copilar un fuente de Lex Opciones estándar Depuración

Más detalles

Lenguaje C. República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III

Lenguaje C. República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III Lenguaje C 1 Puntos previos Los códigos fuentes generados en C requieren ser compilados

Más detalles

Compiladores: Introducción

Compiladores: Introducción Compiladores: Introducción Pontificia Universidad Javeriana Cali Ingeniería de Sistemas y Computación Prof. Gloria Inés Alvarez V. (galvarez@puj.edu.co) Basado en [Aho, 2007, chp. 1] Qué es un COMPILADOR?

Más detalles

09 Análisis léxico V Compiladores - Profr. Edgardo Adrián Franco Martínez

09 Análisis léxico V Compiladores - Profr. Edgardo Adrián Franco Martínez 2 Contenido Autómata Definición formal de autómata Representación de un autómata Mediante tablas de transiciones Mediante diagramas de estados Autómata finito Definición formal de autómata finito Lenguaje

Más detalles

PROGRAMACIÓN II AÑO 2009 TALLER 3: TEORÍA DE LENGUAJES Y AUTÓMATAS

PROGRAMACIÓN II AÑO 2009 TALLER 3: TEORÍA DE LENGUAJES Y AUTÓMATAS Licenciatura en Sistemas de Información PROGRAMACIÓN II AÑO 2009 TALLER 3: TEORÍA DE LENGUAJES Y AUTÓMATAS UNSE FCEyT 1. DESCRIPCIÓN Este taller consta de tres partes. En cada una de ellas se especifican

Más detalles

Compiladores. Análisis Sintáctico Ascendente. Adrian Ulises Mercado Martínez. Facultad de Ingeniería, UNAM. 5 de septiembre de 2013

Compiladores. Análisis Sintáctico Ascendente. Adrian Ulises Mercado Martínez. Facultad de Ingeniería, UNAM. 5 de septiembre de 2013 Compiladores Análisis Sintáctico Ascendente Adrian Ulises Mercado Martínez Facultad de Ingeniería, UNAM 5 de septiembre de 2013 Adrian Ulises Mercado Martínez (FI,UNAM) Compiladores 5/07/2013 1 / 34 Índice

Más detalles

CUP. Diseño de compiladores. Estructura del archivo CUP. Estructura del archivo CUP. Estructura del archivo CUP. Estructura del archivo CUP 20/04/2014

CUP. Diseño de compiladores. Estructura del archivo CUP. Estructura del archivo CUP. Estructura del archivo CUP. Estructura del archivo CUP 20/04/2014 CUP Diseño de compiladores CUP Cup es un generador de analizadores sintácticos LALR Recibe de entrada un archivo con la estructura de la gramática y su salida es un parser escrito en Java Manual oficial:

Más detalles

Análisis sintáctico Analizadores descendentes

Análisis sintáctico Analizadores descendentes Procesadores de Lenguajes Ingeniería Técnica superior de Ingeniería Informática Departamento de Lenguajes y Sistemas informáticos Análisis sintáctico Analizadores descendentes Javier Vélez Reyes jvelez@lsi.uned.es

Más detalles

Comprender las diferencias entre tipos de datos primitivos similares, y aprender a elegir el tipo más conveniente en cada caso.

Comprender las diferencias entre tipos de datos primitivos similares, y aprender a elegir el tipo más conveniente en cada caso. Elementos básicos de programación en Java Objetivos del tema Conocer la estructura básica de un programa Java. Comprender los conceptos de tipo, valor y variable. Comprender las diferencias entre tipos

Más detalles

Diseño de Compiladores I. Estructura General de un Compilador

Diseño de Compiladores I. Estructura General de un Compilador Diseño de Compiladores I Estructura General de un Compilador PROGRAMA FUENTE COMPILADOR SALIDA Mensajes de Error 2 Un compilador es un programa que traduce un programa escrito en lenguaje fuente y produce

Más detalles

Recopilación de ejercicios sobre expresiones regulares en exámenes de Compiladores e intérpretes

Recopilación de ejercicios sobre expresiones regulares en exámenes de Compiladores e intérpretes Recopilación de ejercicios sobre expresiones regulares en exámenes de Compiladores e intérpretes IG29: Compiladores e intérpretes Segunda sesión de teoría Bloque 1: Modelado Ejercicio 1 Modela mediante

Más detalles

ANÁLISIS LÉXICO AUTÓMATAS FINITOS

ANÁLISIS LÉXICO AUTÓMATAS FINITOS Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público

Más detalles

Compiladores: Introducción

Compiladores: Introducción Compiladores: Introducción Francisco J Ballesteros LSUB, URJC Page 1 of 28 Qué es un lenguaje de programación? C, Java, Go,... Pero también ls *.c grep '^[a-z].*\.8' printf("%s %d",...) Page 2 of 28 Cómo

Más detalles

Teoría de autómatas. Un enfoque práctico. Recortables. Thelma Cantú María Gpe. Mendoza

Teoría de autómatas. Un enfoque práctico. Recortables. Thelma Cantú María Gpe. Mendoza Teoría de autómatas. Un enfoque práctico Recortables Thelma Cantú María Gpe. Mendoza 1.1 Búsqueda de lenguajes Alumno: 1 Nombre del lenguaje Alfabeto: Dónde se utiliza? Cuál es el beneficio para la humanidad?

Más detalles

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main. LENGUAJE C CARACTERISTICAS DEL LENGUAJE 'C' El lenguaje 'C' se conoce como un lenguaje compilado. Existen dos tipos de lenguaje: interpretados y compilados. Los interpretados son aquellos que necesitan

Más detalles

Tema 5: Traducción dirigida por la sintaxis

Tema 5: Traducción dirigida por la sintaxis Tema 5: Traducción dirigida por la sintaxis Procesamiento de Lenguajes Dept. de Lenguajes y Sistemas Informáticos Universidad de Alicante Procesamiento de Lenguajes Tema 5: Traducción dirigida por la sintaxis

Más detalles

CONJUNTOS REGULARES. Orlando Arboleda Molina. 19 de Octubre de Escuela de Ingeniería de Sistemas y Computación de La Universidad del Valle

CONJUNTOS REGULARES. Orlando Arboleda Molina. 19 de Octubre de Escuela de Ingeniería de Sistemas y Computación de La Universidad del Valle CONJUNTOS REGULARES Orlando Arboleda Molina Escuela de Ingeniería de Sistemas y Computación de La Universidad del Valle 19 de Octubre de 2008 Contenido Expresiones regulares Teorema de Kleene Autómatas

Más detalles

COMPILADORES E INTERPRETES

COMPILADORES E INTERPRETES COMPILADORES E INTERPRETES Análisis semántico: Estudia el significado de la sentencia Procesadores de lenguaje: Convierte un programa fuente hecho en un lenguaje fuente a un programa objeto hecho en un

Más detalles

INAOE. Expresiones Regulares. Operadores y Operandos. Equivalencia de Lenguajes de FA y Lenguajes RE. Leyes Algebraicas de las. Expresiones Regulares

INAOE. Expresiones Regulares. Operadores y Operandos. Equivalencia de Lenguajes de FA y Lenguajes RE. Leyes Algebraicas de las. Expresiones Regulares INAOE (INAOE) 1 / 52 Contenido 1 2 3 4 (INAOE) 2 / 52 Es un equivalente algebraico para un autómata. Utilizado en muchos lugares como un lenguaje para describir patrones en texto que son sencillos pero

Más detalles

Tema 2: Desarrollo de Algoritmos. E.E. de Algorítmica

Tema 2: Desarrollo de Algoritmos. E.E. de Algorítmica Tema 2: Desarrollo de Algoritmos E.E. de Algorítmica Temas a tratar Identificadores Variables Constantes Tipos de Datos Separadores Operadores Aritméticos Unarios Relacionales y Condicionales Nivel de

Más detalles

UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA Escuela Técnica Superior de Ingeniería Informática Procesadores de Lenguajes. Tema 3.

UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA Escuela Técnica Superior de Ingeniería Informática Procesadores de Lenguajes. Tema 3. UNIVRSIDAD NACIONAL D DUCACIÓN A DISTANCIA scuela Técnica Superior de Ingeniería Informática Procesadores de Lenguajes Tema 3 Parte I Análisis Sintáctico Javier Vélez Reyes jvelez@lsi.uned.es Objetivos

Más detalles

Examen de Procesadores de Lenguaje

Examen de Procesadores de Lenguaje Apellidos: Nombre: Dni: Examen de Procesadores de Lenguaje Junio de 2007 (2 horas y 45 minutos) Instrucciones Entrega esta hoja, rellenada con tus datos, junto a tu examen cuando lo entregues. Ten en cuenta

Más detalles

TEMA 2: ANÁLISIS LÉXICO-SINTÁCTICO

TEMA 2: ANÁLISIS LÉXICO-SINTÁCTICO 1 TEMA 2: ANÁLISIS LÉXICO-SINTÁCTICO OBJETIVO Dar respuesta a las siguientes preguntas: Qué es el análisis léxico-sintáctico de un lenguaje? Cómo se diseña y construye un analizador léxico-sintáctico?

Más detalles

Componentes Básicos. InCo. InCo Componentes Básicos 1 / 28

Componentes Básicos. InCo. InCo Componentes Básicos 1 / 28 Componentes Básicos InCo InCo Componentes Básicos 1 / 28 Modelo de Computación Vemos al computador como un procesador de datos. +------------+ Entrada ===> Computador ===> Salida +------------+ InCo Componentes

Más detalles

µ-c: Manual de referencia del lenguaje Micro-C

µ-c: Manual de referencia del lenguaje Micro-C µ-c: Manual de referencia del lenguaje Micro-C Introducción Este manual de referencia describe en detalle el lenguaje Micro-C, para ser implementado como proyecto de los cursos de Compíladores I y II en

Más detalles

ANALIZADOR LEXICO. Implementar en Visual C#, un analizador léxico que permita reconocer las palabras reservadas:

ANALIZADOR LEXICO. Implementar en Visual C#, un analizador léxico que permita reconocer las palabras reservadas: ANALIZADOR LEXICO Implementar en Visual C#, un analizador léxico que permita reconocer las palabras reservadas: const var entero real cadena leer visua fin Además de los siguientes operadores: +, -, /,

Más detalles

Tema: Análisis Sintáctico

Tema: Análisis Sintáctico Compiladores. Guía 3 1 Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores Tema: Análisis Sintáctico Contenido En esta guía se abordarán los conceptos pertenecientes al componente de análisis

Más detalles

Teoría de Autómatas y Compiladores [ICI-445] Capítulo 2: Autómatas Finitos

Teoría de Autómatas y Compiladores [ICI-445] Capítulo 2: Autómatas Finitos Teoría de Autómatas y Compiladores [ICI-445] Capítulo 2: Autómatas Finitos Dr. Ricardo Soto [ricardo.soto@ucv.cl] [http://www.inf.ucv.cl/ rsoto] Escuela de Ingeniería Informática Pontificia Universidad

Más detalles

Pontificia Universidad Católica del Ecuador

Pontificia Universidad Católica del Ecuador 1. DATOS INFORMATIVOS: MATERIA O MÓDULO: COMPILADORES E INTERPRETES CÓDIGO: 10730 CARRERA: NIVEL: SISTEMAS QUINTO No. CRÉDITOS: 4 CRÉDITOS TEORÍA: 4 CRÉDITOS PRÁCTICA: - SEMESTRE / AÑO ACADÉMICO: 2 / 2010

Más detalles

Tema: Autómata de Pila

Tema: Autómata de Pila Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores 1 Tema: Autómata de Pila Contenido La presente guía aborda los autómatas de pila, y se enfoca en la aplicación que se le puede dar a estas

Más detalles

FACULTAD POLITÉCNICA DIRECCIÓN ACADÉMICA PROGRAMA DE ESTUDIO I. IDENTIFICACIÓN Carrera : Ingeniería de Sistemas CARGA HORARIA (Horas reloj) Asignatura : Compiladores Carga Horaria Semestral 64 Semestre

Más detalles

Tema 5. Análisis sintáctico ascendente

Tema 5. Análisis sintáctico ascendente Tema 5 Análisis sintáctico Ciencias de la Computación e Inteligencia Artificial Índice 5.1 Introducción 5.2 Análisis sintáctico por desplazamiento y reducción 5.3 El autómata reconocedor de prefijos viables

Más detalles

Máquinas Secuenciales, Autómatas y Lenguajes. Tema 4: Expresiones Regulares. Luis Peña

Máquinas Secuenciales, Autómatas y Lenguajes. Tema 4: Expresiones Regulares. Luis Peña Máquinas Secuenciales, Autómatas y Lenguajes Tema 4: Expresiones Regulares Luis Peña Sumario Tema 4: Expresiones Regulares. 1. Concepto de Expresión Regular 2. Teoremas de Equivalencia Curso 2012-2013

Más detalles

Expresiones regulares, gramáticas regulares Unidad 3

Expresiones regulares, gramáticas regulares Unidad 3 Expresiones regulares, gramáticas regulares Unidad 3 Los LR en la jerarquía de Chomsky La clasificación de lenguajes en clases de lenguajes se debe a N. Chomsky, quien propuso una jerarquía de lenguajes,

Más detalles

Lenguajes y Compiladores Análisis Sintáctico Parte I. Teoría Lenguajes 1

Lenguajes y Compiladores Análisis Sintáctico Parte I. Teoría Lenguajes 1 Facultad de Ingeniería de Sistemas Lenguajes y Compiladores Análisis Sintáctico Parte I 1 Introducción El analizador sintáctico recibe una secuencia de tokens y decide si la secuencia está correcta o no.

Más detalles