Conceptos básicos sobre gramáticas

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

Download "Conceptos básicos sobre gramáticas"

Transcripción

1 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 pertenecientes al alfabeto. Es posible que la cadena vacía, ɛ, pertenezca a un lenguaje Una gramática es una forma compacta de representar un lenguaje IMPORTANTE: Una gramática genera un único lenguaje, pero un mismo lenguaje puede ser generado por varias gramáticas Una gramática es una cuádrupla G = (V N, V T, S, P ), donde V N es el conjunto de símbolos variables o no terminales, V T es el conjunto de símbolos terminales (todos los terminales deben pertenecer al alfabeto), S es el símbolo inicial de la gramática (S siempre es un ), y P es el conjunto de producciones o reglas de la gramática Producciones y derivaciones Una producción o regla de una gramática tiene una parte izquierda y una parte derecha. Tanto la parte izquierda como la parte derecha son una cadena de símbolos terminales y es Normalmente, solamente se especifica el conjunto de producciones P, y se asume que el símbolo inicial de la gramática es la parte izquierda de la primera producción. Ejemplo: A a B C B b bas B big C boss C ɛ C c G = (V N = A, B, C, V T = a, b, bas, big, boss, c, S = A, P = A...) Una derivación es una secuencia de cadenas de símbolos (llamadas formas sentenciales) en la que cada cadena es resultado de la aplicación de una regla de la gramática a la cadena anterior. Una derivación válida es aquella en la que la primera cadena de la secuencia es el símbolo inicial, y la última es una cadena de terminales. Ejemplos: A a B C a B c a big C boss c a big boss c A a B C a b bas C a b bas En los ejemplos, la primera derivación se dice que es una derivación por la derecha, porque siempre se deriva el situado más a la derecha, y la segunda es una derivación por la izquierda IMPORTANTE: El lenguaje generado por una gramática es el conjunto de cadenas de terminales obtenidas a partir de derivaciones válidas usando las reglas de la gramática Un árbol de derivación es un árbol en el que se representa una derivación válida de una cadena (pero no se especifica el orden en que se han aplicado las reglas)

2 PL, 2013/ A a B C b bas ε Características especiales Se dice que una gramática es ambigua cuando, para una cadena determinada, existe más de un árbol de derivación IMPORTANTE: la única forma de saber si una gramática es ambigua es encontrando una cadena con más de un árbol de derivación, no hay otra forma Ejemplo: E E opsuma E E num La cadena tiene dos árboles de derivación, y la cadena tiene más de dos árboles ( cuántos?) Una gramática se dice que es recursiva por la izquierda si tiene al menos una regla de esta forma: E E opsuma T De forma similar, una gramática puede presentar recursividad por la derecha: E T opsuma E Una gramática se dice que tiene factores comunes por la izquierda si tiene en al menos dos reglas (con la misma parte izquierda) símbolos comunes al principio de la parte derecha de la regla: Jerarquía de gramáticas A B a C A B a d... Según la forma de las producciones, las gramáticas se clasifican en: Regulares: en la parte izquierda sólo hay un, y la parte derecha puede haber: terminal terminal ɛ Independientes del contexto (context-free): en la parte izquierda sólo hay un, en la parte derecha no hay restricciones Dependientes del contexto: en la parte izquierda puede haber terminales y es, pero al menos debe haber un, y la longitud de la parte derecha debe ser mayor o igual que la de la parte izquierda No restringidas

3 PL, 2013/ Qué tipos de gramáticas se usan en los compiladores? En los compiladores se utilizan solamente gramáticas regulares y gramáticas independientes del contexto (GIC) Las gramáticas regulares se utilizan para especificar los tokens (en realidad, se utilizan expresiones regulares, pero son equivalentes) Las GIC se utilizan para especificar la sintaxis de las construcciones del lenguaje fuente En los lenguajes de programación hay restricciones semánticas (p.ej. es necesario haber declarado una variable antes de utilizarla), que hacen que en realidad los lenguajes de programación sean lenguajes sensibles al contexto, pero no se utilizan gramáticas sensibles al contexto, se utilizan GIC a las que se añaden acciones para la comprobación de las restricciones semánticas. Diseño de gramáticas para expresiones en lenguajes de programación Un buen diseño de la gramática nos permitirá reflejar de forma natural características semánticas del lenguaje en el árbol de derivación, y esto permitirá que la traducción sea más sencilla Es importante por tanto diseñar una buena gramática, pero luego es posible que se tenga que modificar según el tipo de analizador sintáctico que se desee utilizar Además, es posible que al diseñar el proceso de traducción sea necesario rediseñar la gramática para facilitar el diseño del traductor Diseño de gramáticas para expresiones: asociatividad La asociatividad indica cómo se agrupan los operandos en un operador cuando aparecen más de dos operandos. Por ejemplo, normalmente vale -1, porque el operador - suele tener asociatividad por la izquierda, y primero se evalua 4-3 y al resultado se le resta 2. Sin embargo, si la asociatividad fuera por la derecha, el resultado sería 3 ( 4-(3-2) ) Los paréntesis permiten alterar la asociatividad por defecto de un operador Cómo se puede reflejar la asociatividad en una gramática? asociatividad izquierda E E opsuma T asociatividad derecha E T opsuma E Pero... no son todos los operadores asociativos por la izquierda? Sí, casi todos, pero no todos: a=b=c=0 Diseño de gramáticas para expresiones: precedencia En la mayoría de los lenguajes de programación, unos operadores se evaluan antes que otros. Por ejemplo, 2+3*4 casi siempre vale 14. Como ocurre con la asociatividad, los paréntesis permiten alterar la precedencia de los operadores: (2+3)*4 Cómo se puede reflejar la precedencia en una gramática? con un diferente para cada nivel de precedencia: Expr Expr or EBool Expr EBool EBool EBool and ExpRel EBool ExpRel ExpRel E oprel E E E opsuma T E T T T opmul F T F F... Algunos operadores no permiten usar más de dos operandos, como por ejemplo: a<b<c a<b && b<c

4 PL, 2013/ Tabla de asociatividades y precedencias Es una tabla en la que aparecen los operadores y su asociatividad, ordenados de menor a mayor precedencia: Operador izquierda % derecha # izquierda A B A B B C % B B C C C # D C D D... Operadores unarios Los operadores unarios son más difíciles de reflejar en una gramática, requiere un buen conocimiento del lenguaje y de las gramáticas Los ejemplos más conocidos son: el operador de negación,!, que además permite que se repita el operador:!!!true ExpRel! ExpRel el operador de cambio de signo, - o +, que no permite repeticiones (por ejemplo, no es correcto) E opsuma T El problema del dangling- Con qué if se asocia el? La regla que se usa normalmente es asociar el al if más cercano: Consejo: es mejor usar bloques entre llaves de forma explícita

5 PL, 2013/ Fragmento de gramática para la instrucción if : Tiene dos características no deseables: 1. Tiene factores comunes por la izquierda 2. Es ambigua!!!!! Instr id opasig Expr Instr... Instr if ( Expr ) Instr Instr if ( Expr ) Instr Instr... y sin embargo, se utiliza en prácticamente todos los compiladores basados en análisis sintáctico ascendente (los que usan yacc o bison).

Introducción. Las gramáticas definen las reglas que definen a los lenguajes Las reglas pueden tener una diversa variedad de esquemas

Introducción. Las gramáticas definen las reglas que definen a los lenguajes Las reglas pueden tener una diversa variedad de esquemas Gramáticas Introducción Las gramáticas definen las reglas que definen a los lenguajes Las reglas pueden tener una diversa variedad de esquemas En algunos lenguajes, una sucesión de símbolos depende del

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

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

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

Generación de Código Intermedio

Generación de Código Intermedio Generación de Código Intermedio Programación II Margarita Álvarez Generación de código intermedio Con la generación de código intermedio se inicia la tarea de síntesis. Aunque un programa fuente se puede

Más detalles

Lenguajes y Compiladores Aspectos Formales (Parte 1) Compiladores

Lenguajes y Compiladores Aspectos Formales (Parte 1) Compiladores Facultad de Ingeniería de Sistemas Lenguajes y Aspectos Formales (Parte 1) 1 Aspectos Formales Los compiladores traducen lenguajes que están formalmente definidos a través de reglas que permiten escribir

Más detalles

YACC (Yet Another Compiler Compiler) LALR(1) Parser Generator

YACC (Yet Another Compiler Compiler) LALR(1) Parser Generator YACC (Yet Another Compiler Compiler) LALR(1) Parser Generator 1 INDICE 1. Introducción 2. Especificaciones 3. Ambigüedad y conflictos 4. Tratamiento de errores 5. Uso con el LEX 6. Algunos consejos prácticos

Más detalles

token siguiente! Tabla de símbolos

token siguiente! Tabla de símbolos TEMA 3 3.1 LA FUNCIÓN DEL ANALIZADOR SINTÁCTICO Como ya se indicó en la introducción, la principal tarea del analizador sintáctico (o parser) no es comprobar que la sintaxis del programa fuente sea correcta,

Más detalles

LENGUAJES Y GRAMÁTICAS

LENGUAJES Y GRAMÁTICAS LENGUAJES Y GRAMÁTICAS Orlando Arboleda Molina Escuela de Ingeniería de Sistemas y Computación de La Universidad del Valle 20 de septiembre de 2008 Contenido Lenguajes y Gramáticas Gramáticas Gramáticas

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. Sintaxis Define la estructura del lenguaje Ejemplo: Jerarquía en

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

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

ÁRBOLES DE SINTAXIS. Los nodos no terminales (nodos interiores) están rotulados por los símbolos no terminales.

ÁRBOLES DE SINTAXIS. Los nodos no terminales (nodos interiores) están rotulados por los símbolos no terminales. ÁRBOLES DE SINTAXIS ÁRBOL grafo dirigido acíclico. Los nodos no terminales (nodos interiores) están rotulados por los símbolos no terminales. Los nodos terminales (nodos hojas) están rotulados por los

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

INTRODUCCIÓN A LOS LENGUAJES

INTRODUCCIÓN A LOS LENGUAJES INTRODUCCIÓN A LOS LENGUAJES 1 Definición de lenguaje 2 Lenguajes formales 2.1 Requisitos 2.2 Aplicaciones 2.3 Especificación 2.4 Gramáticas 2.4.1 Definición y Ejemplos 2.4.2 Ambigüedad 2.4.3 Clasificación

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

AMBIENTES DE COMPILACION

AMBIENTES DE COMPILACION AMBIENTES DE COMPILACION Los compiladores a menudo producen como resultado del análisis semántico, una forma de representación intermedia del código fuente. Hoy en día, es cada vez más común que, en ambientes

Más detalles

Gramáticas de Atributos

Gramáticas de Atributos Teoría de Lenguajes Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires Etapas de un Compilador Analizador Léxico Analizador Sintáctico (Parser)... Lexer: Genera secuencia de tokens Reporta

Más detalles

Gramáticas tipo 0 o Estructura de frase En este tipo de gramáticas no hay restricción en su producciones y tienen la forma siguiente.

Gramáticas tipo 0 o Estructura de frase En este tipo de gramáticas no hay restricción en su producciones y tienen la forma siguiente. Gramáticas Libres de Contexto 1. Gramáticas. Como vimos en el capítulo anterior una gramática es un conjunto finito de reglas que describen todas las secuencias de símbolos que pertenecen a un lenguaje.

Más detalles

Lenguajes y Compiladores Traducción Dirigida por la Sintaxis

Lenguajes y Compiladores Traducción Dirigida por la Sintaxis Facultad de Ingeniería de Sistemas Lenguajes y Compiladores Traducción Dirigida por la Sintaxis 1 Definición Código Intermedio: estructura de código que posee una complejidad comprendida entre el código

Más detalles

Análisis Semántico y Traducción Dirigida por la Sintaxis. Programación II Margarita Álvarez

Análisis Semántico y Traducción Dirigida por la Sintaxis. Programación II Margarita Álvarez Análisis Semántico y Traducción Dirigida por la Sintaxis Programación II Margarita Álvarez Análisis Semántico Comprobación estática Comprobación de tipos: la aplicación de los operadores y operandos deben

Más detalles

Procesadores de Lenguajes. Análisis sintáctico. Gramáticas libres de contexto

Procesadores de Lenguajes. Análisis sintáctico. Gramáticas libres de contexto Procesadores de Lenguajes Ingeniería Técnica superior de Ingeniería Informática Departamento de Lenguajes y Sistemas informáticos Análisis sintáctico Gramáticas libres de contexto Javier Vélez Reyes [email protected]

Más detalles

Modelos De Computación. Guía Modelos de Computación. Tema I: Lenguajes y Gramáticas

Modelos De Computación. Guía Modelos de Computación. Tema I: Lenguajes y Gramáticas Guía Modelos de Computación Tema I: Lenguajes y Gramáticas Introducción La sintaxis de un lenguaje natural, esto es, la de los lenguajes hablados, como el inglés, el español, el alemán o el francés, es

Más detalles

Definición de la sintaxis (1) Definición de la sintaxis (2) Definición de la sintaxis (3)

Definición de la sintaxis (1) Definición de la sintaxis (2) Definición de la sintaxis (3) Definición de la sintaxis (1) Gramática independiente del contexto: tiene cuatro componentes: Un conjunto de componentes léxicos, denominados símbolos terminales. Un conjunto de no terminales. Un conjunto

Más detalles

GRAMATICAS LIBRES DEL CONTEXTO

GRAMATICAS LIBRES DEL CONTEXTO GRMTICS LIBRES DEL CONTEXTO Estas gramáticas, conocidas también como gramáticas de tipo 2 o gramáticas independientes del contexto, son las que generan los lenguajes libres o independientes del contexto.

Más detalles

Computabilidad y lenguajes formales: Sesión 19. Gramáticas Incontextuales (Context Free Grammars)

Computabilidad y lenguajes formales: Sesión 19. Gramáticas Incontextuales (Context Free Grammars) Computabilidad y lenguajes formales: Sesión 19. Gramáticas Incontextuales (Context Free Grammars) Prof. Gloria Inés Alvarez V. Departamento de Ciencias e Ingeniería de la Computación Pontificia Universidad

Más detalles

PROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07

PROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07 PROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07 1. En qué método de análisis sintáctico puede suceder que en la construcción del árbol de derivación de las posibles expansiones de un símbolo no terminal

Más detalles

Capítulo 9. Introducción a los lenguajes formales. Continuar

Capítulo 9. Introducción a los lenguajes formales. Continuar Capítulo 9. Introducción a los lenguajes formales Continuar Introducción Un lenguaje es un conjunto de símbolos y métodos para estructurar y combinar dichos símbolos. Un lenguaje también recibe el nombre

Más detalles

Sintaxis y Semántica. Un repaso

Sintaxis y Semántica. Un repaso Sintaxis y Semántica Un repaso Definición: Alfabeto Un conjunto finito de símbolos: {a,b,c,d} {0,1,2,34,5,6,7,8,9} {identificador, número, +,-,*, /} {while, if, {, }, >, >=,

Más detalles

Gramáticas libres de contexto

Gramáticas libres de contexto Gramáticas libres de contexto Conceptos básicos El siguientes es un ejemplo de una gramática libre de contexto, a la cual llamaremos G1. A 0A1 A B B # Una gramática consiste de una colección de reglas

Más detalles

Gramaticas Independientes del Contexto, ejemplos y ejercicios

Gramaticas Independientes del Contexto, ejemplos y ejercicios OpenStax-CNX module: m16320 1 Gramaticas Independientes del Contexto, ejemplos y ejercicios Carlos Arturo Cortés Fuentes This work is produced by OpenStax-CNX and licensed under the Creative Commons Attribution

Más detalles

Yacc/Bison. Introducción

Yacc/Bison. Introducción Yacc/Bison Índice Marina de la Cruz Alfonso Ortega Introducción Uso de Yacc/Bison con Lex/Flex Construcción del programa objetivo casple Comunicación entre las funcionesmain(), yylex() eyyparse() Formato

Más detalles

Unidad 5 Análisis semántico

Unidad 5 Análisis semántico 61 Unidad 5 Análisis semántico Se compone de un conjunto de rutinas independientes, llamadas por los analizadores morfológico y sintáctico. El análisis semántico utiliza como entrada el árbol sintáctico

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

ANÁLISIS SINTÁCTICO I ANALIZADORES SINTÁCTICOS

ANÁLISIS SINTÁCTICO I ANALIZADORES SINTÁCTICOS 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

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

ANÁLISIS SINTÁCTICO II GENERADOR DE ANALIZADORES SINTÁCTICOS ASCENDENTES

ANÁLISIS SINTÁCTICO II GENERADOR DE ANALIZADORES SINTÁCTICOS ASCENDENTES 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

Procesadores de Lenguaje

Procesadores de Lenguaje Procesadores de Lenguaje Repaso TALF Cristina Tîrnăucă Dept. Matesco, Universidad de Cantabria Fac. Ciencias Ing. Informática Primavera de 2013 La Jerarquía de Chomsky Cuatro niveles de lenguajes formales

Más detalles

Se pueden agrupar las reglas que tienen la misma parte izquierda:

Se pueden agrupar las reglas que tienen la misma parte izquierda: GRAMÁTICA DE CONTEXTO LIBRE Gramática de contexto libre G = (V N, V T, P, S) que genera oraciones copulativas: V N = { , , , , V T = {el, la, hombre, niña,

Más detalles

1. Acciones en Yacc. %{ #include <stdio.h> yyerror (char *s) { fprintf (stderr, %s\n, s) ; } %} %% : S \n {printf ( Correcto\n );} ; : ( S ) S

1. Acciones en Yacc. %{ #include <stdio.h> yyerror (char *s) { fprintf (stderr, %s\n, s) ; } %} %% : S \n {printf ( Correcto\n );} ; : ( S ) S El generador de analizadores sintácticos Yacc III Teoría de autómatas y lenguajes formales Alma María Pisabarro Marrón ([email protected]) Universidad de Valladolid 1. Acciones en Yacc Las acciones en

Más detalles

Expresiones y sentencias

Expresiones y sentencias Expresiones y sentencias Expresión Construcción (combinación de tokens) que se evalúa para devolver un valor. Sentencia Representación de una acción o una secuencia de acciones. En C, todas las sentencias

Más detalles

14 Lenguajes y gramáticas II

14 Lenguajes y gramáticas II 2 Contenido Lenguaje generado por una gramática (Derivaciones) Ejemplo Jerarquía de Chomsky Gramáticas tipo 3 Gramáticas tipo 2 Gramáticas tipo 1 Gramáticas tipo 0 Descripción de las gramáticas Ejercicios

Más detalles

Sintaxis y Semántica. Tema 3. Sintaxis y Semántica. Expresiones y Lenguajes Regulares. Dr. Luis A. Pineda ISBN:

Sintaxis y Semántica. Tema 3. Sintaxis y Semántica. Expresiones y Lenguajes Regulares. Dr. Luis A. Pineda ISBN: Tema 3 Expresiones y Lenguajes Regulares Dr Luis A Pineda ISBN: 970-32-2972-7 Sintaxis y Semántica En us uso normal, las expresiones lingüística hacen referencia a objetos individuales, así como a sus

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

ANÁLISIS SINTÁCTICO I GRAMÁTICAS

ANÁLISIS SINTÁCTICO I GRAMÁTICAS 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

CAPITULO 5: GRAMÁTICAS

CAPITULO 5: GRAMÁTICAS CAPITULO 5: GRAMÁTICAS 5.1. GRAMÁTICA EN UN LENGUAJE NATURAL: En un lenguaje natural la estructura de las frases, se describen por medio de una gramática que agrupa las palabras en categorías sintácticas

Más detalles

17 Análisis sintáctico II Compiladores - Profr. Edgardo Adrián Franco Martínez. Gramáticas limpias y bien formadas

17 Análisis sintáctico II Compiladores - Profr. Edgardo Adrián Franco Martínez. Gramáticas limpias y bien formadas 2 Contenido Gramáticas limpias y bien formadas Algoritmo para detectar símbolos muertos Algoritmo para detectar símbolos inaccesibles Gramáticas ambiguas Clasificación de métodos de análisis sintáctico

Más detalles

Alfabetos y cadenas (1) Alfabetos y cadenas (2) Lenguajes. Propiedades de la concatenación:

Alfabetos y cadenas (1) Alfabetos y cadenas (2) Lenguajes. Propiedades de la concatenación: Alfabetos y cadenas (1) 0 b b 0 1 Alfabeto: Un alfabeto Σ es un conjunto finito y no vacío de símbolos. Cadena sobre un alfabeto Σ: Es una sucesión de caracteres tomados de Σ. Cadena vacía: Cadena sin

Más detalles

Lenguajes y Compiladores Análisis Léxico

Lenguajes y Compiladores Análisis Léxico Facultad de Ingeniería de Sistemas Lenguajes y Compiladores Análisis Léxico 1 Análisis léxico La tarea del análisis léxico es reconocer símbolos dentro de la cadena de caracteres que es el programa fuente.

Más detalles

Gramaticas Independientes del Contexto, ejemplos y ejercicios *

Gramaticas Independientes del Contexto, ejemplos y ejercicios * OpenStax-CNX module: m16320 1 Gramaticas Independientes del Contexto, ejemplos y ejercicios * Carlos Arturo Cortés Fuentes This work is produced by OpenStax-CNX and licensed under the Creative Commons

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

Unidad IV Análisis Sintáctico. M.C. Juan Carlos Olivares Rojas

Unidad IV Análisis Sintáctico. M.C. Juan Carlos Olivares Rojas Unidad IV Análisis Sintáctico M.C. Juan Carlos Olivares Rojas Agenda 4.1 Introducción a las Gramáticas libres de contexto y árboles de derivación. 4.2 Diagramas de sintaxis. 4.3 Precedencia de operadores.

Más detalles

Qué es el análisis semántico?

Qué es el análisis semántico? Análisis semántico Estrella Pulido Cañabate Qué es el análisis semántico? Fase del compilador en la que se comprueba la corrección semántica del programa Conjunto de subrutinas independientes que pueden

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

Expresiones regulares

Expresiones regulares Expresiones regulares Elvira Mayordomo Universidad de Zaragoza 26 de septiembre de 2013 Elvira Mayordomo (Universidad de Zaragoza) Expresiones regulares 26 de septiembre de 2013 1 / 15 Contenido de este

Más detalles

HERRAMIENTAS YACC Y BISON

HERRAMIENTAS YACC Y BISON HERRAMIENTAS YACC Y BISON INTRODUCCION En la actualidad no es posible pensar en la realización computacional de un procesador de lenguajes, como por ejemplo, compiladores, intérpretes, etc., sin utilizar

Más detalles

Este método de diseño de algoritmos en etapas, yendo de los conceptos generales a los de detalle, se conoce como método descendente (top-down).

Este método de diseño de algoritmos en etapas, yendo de los conceptos generales a los de detalle, se conoce como método descendente (top-down). PLANTEMAIENTO DEL PROBLEMA Identificación de entradas y salidas Un algoritmo puede ser definido como la secuencia ordenada de pasos, sin ambigüedades, que conducen a la resolución de un problema dado y

Más detalles

INTRODUCCIÓN A COMPILADORES Y LENGUAJES FORMALES LENGUAJES FORMALES

INTRODUCCIÓN A COMPILADORES Y LENGUAJES FORMALES LENGUAJES FORMALES 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

Bison. Introducción. Índice. Introducción Uso de Bison con Flex. Formato del fichero de especificación de Bison

Bison. Introducción. Índice. Introducción Uso de Bison con Flex. Formato del fichero de especificación de Bison Bison Índice Marina de la Cruz Alfonso Ortega Introducción Uso de Bison con Flex Construcción del programa objetivo alfa Comunicación entre las funciones main(), yylex() e yyparse() Formato del fichero

Más detalles

Los modelos abstractos de cómputo. Tema 1: Introducción. El modelo transductor. El modelo reconocedor. ordenador. datos. Modelo Abstracto de Cómputo

Los modelos abstractos de cómputo. Tema 1: Introducción. El modelo transductor. El modelo reconocedor. ordenador. datos. Modelo Abstracto de Cómputo Tema 1: Introducción Preliminares Los Modelos Abstractos de Cómputo El principio de inducción Palabras y Lenguajes Palabras Operadores sobre palabras Predicados sobre palabras Lenguajes Operadores sobre

Más detalles

Operadores y Expresiones

Operadores y Expresiones Operadores y Expresiones Los programas Java constan de datos, sentencias de programas y expresiones. Una expresión es normalmente, una ecuación matemática, tal como 3 * x + 5 * z. En esta expresión, los

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: 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

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

CÓMO DESARROLLAR Y PROBAR PROGRAMAS?, COMPRUÉBALO!

CÓMO DESARROLLAR Y PROBAR PROGRAMAS?, COMPRUÉBALO! CÓMO DESARROLLAR Y PROBAR PROGRAMAS?, COMPRUÉBALO! AUTORÍA MARÍA CATALÁ CARBONERO TEMÁTICA PROGRAMACIÓN ETAPA CICLO MEDIO Y SUPERIOR DE INFORMÁTICA Resumen A la hora de realizar un programa en cualquier

Más detalles

Expresiones regulares, gramáticas regulares

Expresiones regulares, gramáticas regulares Expresiones regulares, gramáticas regulares 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, donde

Más detalles

Coordinación de Ciencias Computacionales INAOE. Teoría de Autómatas y Lenguajes Formales. Temario detallado para examen de ingreso 2012

Coordinación de Ciencias Computacionales INAOE. Teoría de Autómatas y Lenguajes Formales. Temario detallado para examen de ingreso 2012 Coordinación de Ciencias Computacionales INAOE Teoría de Autómatas y Lenguajes Formales Temario detallado para examen de ingreso 2012 1. Autómatas 1.1. Por qué estudiar la teoría de autómatas? 1.1.1. Introducción

Más detalles

Introducción a la Lógica y la Computación

Introducción a la Lógica y la Computación Introducción a la Lógica y la Computación Parte III: Lenguajes y Autómatas Clase del 7 de Noviembre de 2014 Parte III: Lenguajes y Autómatas Introducción a la Lógica y la Computación 1/20 Lenguajes Formales

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

Unidad II: Análisis semántico

Unidad II: Análisis semántico Unidad II: Análisis semántico Se compone de un conjunto de rutinas independientes, llamadas por los analizadores morfológico y sintáctico. El análisis semántico utiliza como entrada el árbol sintáctico

Más detalles

GENERACIÓN DE CÓDIGO INTERMEDIO ÁRBOLES DE SINTAXIS ABSTRACTA (ASA)

GENERACIÓN DE CÓDIGO INTERMEDIO ÁRBOLES DE SINTAXIS ABSTRACTA (ASA) 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 e intérpretes Introducción

Compiladores e intérpretes Introducción Introducción Profesor: Eridan Otto Introducción Perspectiva histórica Motivación Definiciones Componentes y fases de un compilador 1 Introducción Definiciónes básicas Traductor: desde un punto de vista

Más detalles

Expresiones y sentencias

Expresiones y sentencias Expresiones y sentencias Expresión Construcción (combinación de tokens) que se evalúa para devolver un valor. Sentencia Representación de una acción o una secuencia de acciones. En Java, todas las sentencias

Más detalles

Teoría de la Computación y Leguajes Formales

Teoría de la Computación y Leguajes Formales y Leguajes Formales Prof. Hilda Y. Contreras Departamento de Computación [email protected] [email protected] Contenido Tema 0: Introducción y preliminares: Conocimientos matemáticos

Más detalles

FLEX: A FAST LEXICAL ANALYZER GENERATOR

FLEX: A FAST LEXICAL ANALYZER GENERATOR FLEX: A FAST LEXICAL ANALYZER GENERATOR Especificación Léxica Fichero.l flex Programa con la implementación del AFD, código fuente, yy.lex.c yy.lex.c Compilador de C milex (ejecutable) cc yylex.c o milex

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

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

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

Tema 2: Lenguajes Formales. Informática Teórica I

Tema 2: Lenguajes Formales. Informática Teórica I Tema 2: Lenguajes Formales Informática Teórica I Teoría de Lenguajes Formales. Bibliografía M. Alfonseca, J. Sancho y M. Martínez. Teoría de Lenguajes, Gramáticas y Autómatas, R.A.E.C., Madrid, (1998).

Más detalles