Definición de la sintaxis (1) Definición de la sintaxis (2) Definición de la sintaxis (3)
|
|
- Valentín Contreras Coronel
- hace 6 años
- Vistas:
Transcripción
1 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 de producciones, en el que cada producción consta de un no terminal, llamado lado izquierdo de la producción, una flecha y una secuencia de componentes léxicos y no terminales, o ambos, llamado lado derecho de la producción. La denominación de uno de los no terminales como símbolo inicial. PL. Un compilador sencillo de una pasada. 2 Definición de la sintaxis (2) Se dice que una producción es para un no terminal si el no terminal aparece en el lado izquierdo de la producción. Una cadena de componentes léxicos es una secuencia de cero o más componentes léxicos. La cadena que contiene cero componentes léxicos, que se escribe ε, recibe el nombre de cadena vacía. De una gramática se derivan cadenas empezando con el símbolo inicial y reemplazando repetidamente un no terminal por el lado derecho de una producción para ese no terminal. La derivación de Y a partir de X se representa por X *Y Las cadenas de componentes léxicos derivadas del símbolo inicial forman el lenguaje que define la gramática. El lenguaje generado por una gramática G se representa por L(G). Definición de la sintaxis (3) Ejemplos lista lista + dígito lista lista dígito lista dígito dígito bloque begin props_opc end props_opc lista_props ε lista_props lista_props ; prop prop PL. Un compilador sencillo de una pasada. 3 PL. Un compilador sencillo de una pasada. 4
2 Definición de la sintaxis (4) Derivación más a la izquierda: cuando las producciones utilizadas en la derivación se aplican siempre a los símbolos más a la izquierda. Derivación más a la derecha: cuando las producciones se aplican a los símbolos más a la derecha. Dos gramáticas G 1 y G 2 se dice que son gramáticas equivalentes, y se representa por G 1 G 2, si generan el mismo lenguaje L(G 1 )=L(G 2 ). Una gramática G se dice que es recursiva en un cierto símbolo no terminal U, cuando existe una forma sentencial de U que contiene a U. U + xuy con x,y (Σ N)* La gramática será recursiva si es recursiva para algún no terminal. Si x=ε se dice que es una gramática recursiva a izquierdas. Si y=ε se dice que es una gramática recursiva a derechas. Definición de la sintaxis (5) Notación BNF: es una forma de escribir las producciones. Las reglas son: 1 Los símbolos terminales se suelen poner en negrita, y los no terminales entre ángulos < > 2 El nexo para la producción es ::= 3 La agrupación de reglas mediante 4 Cero o una vez mediante corchetes [ ] 5 Cero o más veces mediante llaves n+k n 6 Paréntesis para delimitar casos de duda en el uso de los operadores meta-lingüísticos PL. Un compilador sencillo de una pasada. 5 PL. Un compilador sencillo de una pasada. 6 Definición de la sintaxis (6) Diagramas sintácticos (diagramas de trenes, o diagramas de Conway): son construcciones gráficas que permiten presentar la misma información sintáctica que la notación BNF pero de una manera más fácil de interpretar para las personas. No terminal Definición de la sintaxis (7) Árbol de análisis sintáctico: indica gráficamente cómo del símbolo inicial de una gramática deriva una cadena del lenguaje. Si el no terminal tiene una producción XYZ, entonces un árbol de análisis sintáctico puede tener un nodo interior etiquetado con y tres hijos etiquetados con X, Y y Z de izquierda a derecha. Terminal Varias alternativas Cero o más Uno o más X Y Z nálisis sintáctico: proceso de búsqueda de un árbol de análisis sintáctico para una cadena de componentes léxicos. Los árboles de análisis sintáctico representan el análisis sintáctico de los programas fuente y sirven de base para la generación de código. PL. Un compilador sencillo de una pasada. 7 PL. Un compilador sencillo de una pasada. 8
3 Definición de la sintaxis (8) Formalmente, dada una gramática independiente del contexto, un árbol de análisis sintáctico es un árbol con las propiedades siguientes: La raíz esta etiquetada con el símbolo inicial. Cada hoja está etiquetada con un componente léxico o con ε. Cada nodo interior está etiquetado con un no terminal. Si es el no terminal que etiqueta a algún nodo interior y X 1, X 2,..., X n son las etiquetas de los hijos de ese nodo, de izquierda a derecha, entonces X 1 X 2... X n es una producción. quí, X 1, X 2,..., X n representan un símbolo que es un terminal o un no terminal. Como caso especial, si ε, entonces un nodo etiquetado con tiene sólo un hijo etiquetado con ε. Definición de la sintaxis (9) mbigüedad: La ambigüedad puede surgir a varios niveles: en sentencias, lenguajes, y gramáticas. la hora de utilizar eficientemente los lenguajes y gramáticas, es conveniente que no exista ambigüedad, pues provoca que el análisis de las sentencias no sea determinista. Sentencia: una sentencia es ambigua si tiene más de árbol de derivación. Ej: En la gramática G=(1,S, B, 1B, 11, B 1, ) la sentencia 11 puede ser obtenida por las dos derivaciones siguientes: 1B 11 y 11 Gramática: una gramática es ambigua si tiene al menos una sentencia ambigua. Lenguaje: un lenguaje es ambiguo si existe una gramática ambigua que lo genera. Si todas las gramática que generan un lenguaje son ambiguas, el lenguaje es inherentemente ambiguo (ejemplo L=a i b j c k : i=j o j=k). PL. Un compilador sencillo de una pasada. 9 PL. Un compilador sencillo de una pasada. 10 Definición de la sintaxis (10) sociatividad de operadores: Se dice que un operador asocia a la izquierda (derecha) cuando un operando que tenga ese operador a ambos lados es tomado por el operador que este a su izquierda (derecha). Precedencia de operadores: se dice que un operador (*) tiene mayor precedencia que otro (+) si el primero considera sus operandos antes que el segundo. Definición de la sintaxis (11) Utilizando una tabla que muestre la asociatividad y precedencia de operadores se puede construir una gramática para expresiones aritméticas. sociativos por la izquierda +- sociativos por la izquierda */ Se crean dos no terminales expr y término para los dos niveles de precedencia y un no terminal adicional factor para generar unidades básicas en las expresiones. Los no terminales para los operadores de mayor precedencia son los que antes usan las unidades básicas, los de menor precedencia usan a los no terminales de mayor precedencia. expr expr + término expr - término término término término * factor término / factor factor factor dígito ( expr ) PL. Un compilador sencillo de una pasada. 11 PL. Un compilador sencillo de una pasada. 12
4 Traducción dirigida por la sintaxis (1) Definición dirigida por la sintaxis: se trata de una gramática independiente del contexto en la que a cada símbolo no terminal se le asocia un conjunto de atributos y a cada producción un conjunto de reglas semánticas para calcular sus valores. Ejemplo: PRODUCCIÓN REGL SEMÁNTIC expr expr 1 + término expr.t := expr 1.t término.t `+ expr expr 1 - término expr.t := expr 1.t término.t `- expr término expr.t := término.t término 0 término.t := `0 término 1 término.t := ` término 9 término.t := `9 Traducción dirigida por la sintaxis expr.t = (2) expr.t = 9 término.t = 9 expr.t = 95- término.t = 5 término.t = tributos sintetizados: aquellos cuyo valor en un nodo se determina a partir de los valores de los atributos de los hijos de los nodos. Una definición dirigida por la sintaxis no impone ningún orden a la evaluación de atributos en un árbol de análisis sintáctico. Los atributos sintetizados se pueden calcular durante un solo recorrido ascendente del árbol de análisis sintáctico. PL. Un compilador sencillo de una pasada. 13 PL. Un compilador sencillo de una pasada. 14 Traducción dirigida por la sintaxis (3) Esquemas de traducción: es una gramática independiente del contexto en la que se encuentran intercalados, en los lados derechos de las producciones, fragmentos de programa llamados acciones semánticas. Es como una definición dirigida por la sintaxis, con la excepción de que el orden de evaluación de las reglas semánticas se muestra explícitamente. Genera una salida para cada frase x generada por la gramática subyacente mediante la ejecución de las acciones en el orden en que aparecen durante un recorrido en profundidad de un árbol de análisis sintáctico para x. PL. Un compilador sencillo de una pasada. 15 Traducción dirigida por la sintaxis (4) Definición dirigida por la sintaxis simple: cuando la cadena que representa la traducción del no terminal del lado izquierdo de cada producción es la concatenación de las traducciones de los no terminales de la derecha, en igual orden que en la producción. Se pueden implantar con esquemas de traducción en los que las acciones impriman las cadenas adicionales en el orden en que aparecen en la definición. Ejemplo: expr expr 1 + término print(`+ ) expr expr 1 - término print(`- ) expr término término 0 print(`0 ) término 1 print(`1 )... término 9 print(`9 ) PL. Un compilador sencillo de una pasada. 16
5 nálisis sintáctico (1) El análisis sintáctico es el proceso de determinar si una cadena de componentes léxicos puede ser generada por una gramática. Es útil pensar en la construcción de árboles de análisis sintáctico (no siempre es necesario construirlo, sin embargo, un analizador sintáctico deberá poder construir el árbol para garantizar que la traducción sea correcta). La mayoría de los métodos de análisis sintáctico están comprendidos en dos clases, llamadas métodos: DESCENDENTES la construcción se inicia en la raíz y avanza hacia las hojas. es un método popular porque se pueden construir manualmente analizadores sintáctico eficientes. SCENDENTES la construcción se inicia en las hojas y avanza hacia la raíz. puede manejar una clase mayor de gramáticas y esquemas de traducción. las herramientas de software para generar analizadores sintácticos directamente a partir de las gramáticas tienden a utilizar estos métodos. PL. Un compilador sencillo de una pasada. 17 nálisis sintáctico (2) nálisis sintáctico descendente. La construcción descendente de un árbol de análisis sintáctico se hace empezando por la raíz, etiquetada con el no terminal inicial, y realizando de forma repetida los dos pasos siguientes: 1. En el nodo n, etiquetado con el no terminal, selecciónese una de las producciones para y constrúyase los hijos de n para los símbolos del lado derecho de la producción. 2. Encuéntrese el siguiente nodo en el que ha de construirse un subárbol. Para algunas gramáticas, los pasos anteriores se aplican durante un examen sencillo, de izquierda a derecha, de la cadena de entrada. Muchas veces, el componente léxico en curso analizado en la entrada se denomina símbolo de preanálisis. Inicialmente el símbolo de preanálisis es el primero, es decir, el componente léxico situado más a la izquierda de la cadena de entrada. PL. Un compilador sencillo de una pasada. 18 nálisis sintáctico (3) Ejemplo ÁRBOL DE NÁLISIS SINTÁCTICO ENTRD ÁRBOL DE NÁLISIS SINTÁCTICO ENTRD ÁRBOL DE NÁLISIS SINTÁCTICO ENTRD tipo array [ núm puntopunto núm ] of integer tipo array [ simple ] of tipo array [ núm puntopunto núm ] of integer tipo array [ simple ] of tipo array [ núm puntopunto núm ] of integer nálisis sintáctico (4) nálisis sintáctico descendente recursivo: es un método descendente en el que se ejecuta un conjunto de procedimientos recursivos para procesar la entrada. cada no terminal de una gramática se asocia un procedimiento. Un tipo especial de este tipo de análisis es el análisis sintáctico predictivo, en el que el símbolo de preanálisis determina sin ambigüedad el procedimiento seleccionado para cada no terminal. La secuencia de procedimientos llamados en el procesamiento de la entrada define implícitamente un árbol de análisis sintáctico para la entrada. PL. Un compilador sencillo de una pasada. 19 PL. Un compilador sencillo de una pasada. 20
6 nálisis sintáctico (5) procedure parea (t: complex); begin if preanálisis = t then preanálisis:=sigcomplex else error end; procedure simple; begin if preanálisis=integer then begin parea(integer) else if preánalisis=char then begin parea(char); else if preánalisis=num then begin parea(num); parea(puntopunto); parea(num) end else error end; procedure tipo; begin if preanálisis is in integer, char, num then simple else if preanálisis = then begin parea( ); parea(id) end else if preánalisis=array then begin parea(array); parea( [ ); simple; parea( ] ); parea(of); tipo end else error; PL. Un compilador sencillo de una pasada. 21 nálisis sintáctico (6) El análisis sintáctico predictivo depende de la información sobre los primeros símbolos que pueden ser generados por el lado derecho de una producción. Si α es el lado derecho de una producción para el no terminal, se define PRIMERO(α) como el conjunto de componentes léxicos que opere como los primeros símbolos de una o más cadenas generadas a partir de α. Ejemplo: PRIMERO(simple) = integer, char, núm PRIMERO( id) = PRIMERO(array [simple] of tipo) = array En la práctica, muchos lados derechos de una producción comienzan con componentes léxicos, lo que simplifica la construcción de conjuntos PRIMERO. Si hay dos producciones α y β el análisis sintáctico descendente recursivo sin retroceso requiere que PRIMERO(α) y PRIMERO(β) sean disjuntos. PL. Un compilador sencillo de una pasada. 22 nálisis sintáctico (7) Diseño de un analizador sintáctico predictivo. Se tiene un procedimiento para cada no terminal, que hace dos cosas: 1. Decide la producción a utilizar analizando el símbolo de preanálisis: Si está en PRIMERO(α), se usa la producción con lado derecha α. Si hay un conflicto entre dos lados derechos, entonces en esa gramática no se puede emplear este método de análisis sintáctico. Si no está en el conjunto PRIMERO de ningún lado derecho, se usa una producción con ε en el lado derecho. 2. Imitando el lado derecho de la producción, para: Un no terminal: se llama al procedimiento asociado. Un componente léxico que coincide con el símbolo de preanálisis: se lee el siguiente componente léxico. Un componente léxico que NO coincide con el símbolo de preanálisis: se emite un mensaje de error. PL. Un compilador sencillo de una pasada. 23 nálisis sintáctico (8) Recursividad por la izquierda Es posible que un analizador sintáctico descendente recursivo entre en un bucle infinito, si la gramática presenta producciones en las que el símbolo más a la izquierda del lado derecho es el mismo que el no terminal del lado izquierdo. Reescribiendo la producción transgresora, se puede eliminar la producción recursiva a izquierdas. α β β α α α βr R α R ε β α R R α R R α PL. Un compilador sencillo de una pasada. 24 ε
7 Traductor de expresiones simples (1) daptación del esquema de traducción. La técnica de eliminación de recursividad por la izquierda se puede aplicar también a producciones que contengan acciones semánticas. Cuando las acciones semánticas se intercalan en las producciones, se trasladan junto con la transformación. Ejemplo: expr término resto resto + término print(`+ ) resto - término print(`- ) resto ε término 0 print(`0 ) término 1 print(`1 )... término 9 print(`9 ) PL. Un compilador sencillo de una pasada. 25 Un compilador sencillo de una pasada (listado) /* define isdigit */ #include <ctype.h> /* define stderr y fprintf */ #include <stdio.h> int preanalisis; termino() if ( isdigit(preanalisis) ) putchar(preanalisis); parea(preanalisis); main() else error(); preanalisis = getchar(); expr(); putchar('\n'); parea(int t) expr() termino(); resto(); if ( preanalisis == t ) preanalisis = getchar(); else error(); resto() error() if ( preanalisis=='+' ) parea('+'); termino(); putchar('+'); resto(); /* imprime mensaje de error*/ fprint(stderr, else if ( preanalisis=='-' ) parea('-'); termino(); "error de sintaxis\n"); /* y despu'es se detiene */ exit(1); putchar('-'); resto(); else ; PL. Un compilador sencillo de una pasada. 26 nálisis léxico (1) En el siguiente tema se explica en detalle todos los aspectos del análisis léxico. entrada lee carácter reinserta carácter analizador léxico pasa el componente léxico y sus atributos analizador sintáctico Tablas de símbolos (1) Las rutinas de la tabla de símbolos se refieren principalmente a la protección y recuperación de lexemas. Cuando se guarda un lexema, también se guarda el componente léxico asociado con él. Sobre la tabla de símbolos se realizarán las siguientes operaciones: inserta(s,t): Devuelve el índice de la nueva entrada para la cadena s y el compoente léxico t. busca(s): Devuelve el índice de la entrada para la cadena s, o 0 si no encontró a s. El analizador léxico utiliza la operación busca para determinar si hay o no una entrada para un lexema en la tabla de símbolos. Si no existe entrada, entonces utiliza la operación inserta para crear una. PL. Un compilador sencillo de una pasada. 27 PL. Un compilador sencillo de una pasada. 28
8 Máquinas de pila abstracta (1) Una forma común de representación intermedia es el código para una máquina de pila abstracta. La máquina tiene memorias independientes para las instrucciones y los datos, y todas las operaciones aritméticas se realizan con los valores en una pila. Las instrucciones son bastante limitadas y están comprendidas en tres clases: aritmética entera, manipulación de la pila y flujo de control. tope PIL INSTRUCCIONES mete 5 valord 2 + valord 3 *... cp DTOS PL. Un compilador sencillo de una pasada. 29 Máquinas de pila abstracta (2) Instrucciones aritméticas La máquina abstracta ha de implantar cada operador en el lenguaje intermedio. Una operación básica esta soportada directamente. Las complejas, pueden requerir una secuencia de instrucciones. El código de máquina abstracta de una expresión aritmética simula la evaluación de una representación postfija de esa expresión utilizando una pila. Se insertan los operandos en la pila a medida que se encuentran. Cuando se encuentra un operador k-ario, la evaluación aplica el operador a los k valores de la cima de la pila, extrae los operandos e inserta el resultado en la pila. l final, el valor de la cima de la pila será el de la expresión completa. En el lenguaje intermedio, todos los valores serán enteros, donde 0 corresponde a false y los enteros distintos de cero corresponden a true. Los operadores booleanos and y or requieren la evaluación de sus dos argumentos. PL. Un compilador sencillo de una pasada. 30 Máquinas de pila abstracta (3) Manipulación de la pila Este tipo de instrucciones incluye las siguientes: mete v inserta v en la pila valord l inserta el contenido de la posición de datos l valori l inserta la dirección de la posición de datos l saca elimina el valor de la cima de la pila := el valor de lado derecho de la cima se pone en el valor de lado izquierdo que está debajo y se extraen los dos copia inserta una copia del valor de la cima en la pila Valores de lado izquierdo y de lado derecho Los valores de lado derecho suelen considerarse como valores, mientras que los valores de lado izquierdo son posiciones de memoria. Máquinas de pila abstracta (4) Traducción de expresiones La traducción de expresiones al código de la máquina de pila puede hacerse adaptando el traductor de notación infija a notación postfija. Ejemplo: traducción de asignaciones: el valor de lado izquierdo asignado al identificador se inserta en la pila, se evalúa la expresión y su valor de lado derecho se asigna al identificador. prop id := expr prop.t := 'valori' id.lexema expr.t ':=' PL. Un compilador sencillo de una pasada. 31 PL. Un compilador sencillo de una pasada. 32
9 Máquinas de pila abstracta (5) Flujo de control Opciones para la especificación de los destinos de los saltos. 1. El operando de la instrucción da la localidad destino. 2. El operando de la instrucción especifica la distancia relativa, positiva o negativa, del salto. 3. El destino se especifica simbólicamente: la máquina maneja etiquetas. Las instrucciones del flujo de control de la máquina de pila son: etiqueta l destino de los saltos a l; no tiene otro efecto vea l la siguiente instrucción se toma de la proporción etiquetada con etiqueta l sifalsovea l saca el valor del tope de la pila; salta si es cero siciertovea l saca el valor del tope de la pila; salta si es distinto de cero alto detiene la ejecución PL. Un compilador sencillo de una pasada. 33 Máquinas de pila abstracta (6) Traducción de proposiciones IF WHILE etiqueta prueba código de expr sifalsovea etiq código de expr sifalsovea etiq código de prop 1 etiqueta etiq código de prop 1 vea prueba etiqueta etiq prop while expr do prop 1 prueba := etiqnueva; etiq := etiqnueva; prop.t:= 'etiqueta' prueba expr.t 'sifalsovea' etiq prop 1.t 'vea' prueba 'etiqueta' etiq Emisión de una traducción prop while prueba := etiqnueva; emite('etiqueta', prueba); expr etiq := etiqnueva; emite('sifalsovea', etiq); do prop 1 emite('vea', prueba); emite('etiqueta', etiq); PL. Un compilador sencillo de una pasada. 34 Máquinas de pila abstracta (7) procedure prop; var prueba, etiq: integer; /* para las etiquetas */ begin if preanalisis = id then begin emite('valori', valcomplex); parea(id); parea(':='); expr; emite(':='); end else if preanalisis = 'while' then begin parea('while'); prueba:=etiqnueva; emite('etiqueta', prueba); expr; etiq:=etiqnueva; emite('sifalsovea', etiq); parea('do'); prop; emite('vea', prueba); emite('etiqueta', etiq); end /* aquí el código para el resto de las proposiciones */ else error; end; PL. Un compilador sencillo de una pasada. 35
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 detallesLenguajes 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 detallesGeneració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 detallesConceptos 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 detallesTema 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 detalles18 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Á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 detalles16 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 detallesUNIDAD V. Analisis Semantico. 5.1 Introduccion. Analizador Semántico. Verifica que el significado de las construcciones del lenguaje tengan sentido.
UNIDAD V Analisis Semantico 5.1 Introduccion Analizador Semántico. Ejemplo: Verifica que el significado de las construcciones del lenguaje tengan sentido. Tareas del analizador semántico: 1) Comprobación
Más detallesUNIVERSIDAD 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 detallesCompiladores: Sesión 16. Análisis semántico, traducción dirigida por sintaxis
Compiladores: Sesión 16. Análisis semántico, traducción dirigida por sintaxis Prof. Gloria Inés Alvarez V. Departamento de Ciencias e Ingeniería de la Computación Pontificia Universidad Javeriana Cali
Más detallesDiseñ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 detallesPROCESADORES 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 detallesAnalizador 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 detallesTipos de análisis deterministas. Análisis descendente. Tipos de análisis deterministas. Análisis ascendente. Análisis descendente
César Ignacio García Osorio Área de Lenguajes y Siste mas Informáticos Universidad de Burgos Tipos de análisis deterministas. nálisis descendente. La idea es generar una forma sentencial a partir del axioma,
Más detallesUnidad 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 detallesGRAMATICAS 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 detallesTema 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 detallesGENERACIÓ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 detallesExamen 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 detallesUNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA Escuela Técnica Superior de Ingeniería Informática Procesadores de Lenguajes.
UNIVERIDAD NACIONAL DE EDUCACIÓN A DITANCIA Escuela Técnica uperior de Ingeniería Informática Procesadores de Lenguajes Tema 3 Parte II Análisis intáctico Descendente Javier Vélez Reyes jvelez@lsi.uned.es
Más detallesObjetivos 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 detallesTema 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 detallesComponentes 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 detallesUnidad 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 detallesPrincipios de Computadoras II
Departamento de Ingeniería Electrónica y Computadoras Operadores y Expresiones rcoppo@uns.edu.ar Primer programa en Java 2 Comentarios en Java Comentario tradicional (multi-línea) Comentario de línea Comentario
Más detallesCompiladores: 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 detallesUnidad I: Análisis semántico
Unidad I: Análisis semántico 1.1 Arboles de expresiones Los árboles de expresiones representan el código de nivel del lenguaje en forma de datos. Los datos se almacenan en una estructura con forma de árbol.
Más detallesANÁ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 detallesEl lenguaje C. 1. Identificadores, constantes y variables
Principios de Programación El lenguaje C 1. Identificadores, constantes y variables 1.1. Conceptos de memoria Los nombres de variable como x, y, suma corresponden a localizaciones o posiciones en la memoria
Más detallesTema: 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 detallesLenguaje de programación C. Introducción
Lenguaje de programación C Introducción 1 Elementos del lenguaje C Colección de funciones Estas funciones contienen declaraciones, sentencias, expresiones y otros elementos que en conjunto indican a la
Más detallesTodo 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 detallesUNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA Escuela Técnica Superior de Ingeniería Informática Procesadores de Lenguajes. Tema 5
UNIVERIDAD NACIONA DE EDUCACIÓN A DIANCIA Escuela écnica uperior de Ingeniería Informática Procesadores de enguajes ema 5 raducción diriga por la sintaxis Javier Vélez Reyes jvelez@lsi.uned.es Objetivos
Más detallesANÁLISIS SEMÁNTICO. Especificación formal: Semántica Operacional, semántica denotacional, semántica Axiomática, Gramáticas con Atributos.
ANÁLISIS SEMÁNTICO El análisis semántico dota de un significado coherente a lo que hemos hecho en el análisis sintáctico. El chequeo semántico se encarga de que los tipos que intervienen en las expresiones
Más detallesContenido. Capítulo 1. Teoría de conjuntos. 1. Capítulo 2. Lenguaje. 39. Capítulo 3. Lenguajes formales. 55
Contenido Capítulo 1. Teoría de conjuntos. 1 1.1 Conjuntos.... 3 1.1.1 Definiciones básicas.... 3 1.1.2 Operaciones sobre conjuntos.... 6 1.1.3 Diagrama de Venn.... 7 1.1.4 Álgebra de conjuntos.... 7 1.2
Más detallesFundamentos 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 detallesUnidad 2. Introducción Lenguajes y Compiladores
Unidad 2 Introducción Lenguajes y Compiladores Principal material bibliográfico utilizado Compiladores Principios, técnicas y herramientas. Aho y Ullman. Addison Wesley. www.jorgesanchez.net www.iqcelaya.itc.mx/~vicente/programacion/tradcomp.pdf
Más detallesAnalizador 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 detallesAnalizador 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 detallesArboles. Definiciones formales: 1) un árbol es un grafo acíclico finito T (P, E) tal que. P = E + 1 => todo arco es desconectante.
Arboles Definición: Es una estructura acíclica que, en algún sentido puede ser considerado el siguiente paso en la jerarquía de complejidad estructural. Los árboles tienen son de amplia aplicación en el
Más detallesQué 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 detallesFundamentos de programación
Fundamentos de programación Estructuras de Control Estructuras de control Estructuras de control Estructura secuencial Estructura alternativa Sentencias if, if else Sentencias if else anidadas El operador
Más detallesTema 5 Tabla de Símbolos
Traductores, Compiladores e Intérpretes 1 Tema 5 También se la llama tabla de nombres o tabla de identificadores y tiene dos funciones principales: - Efectuar chequeos semánticos. - Generación de código.
Más detallesProcesadores de Lenguaje
Procesadores de Lenguaje Analizadores sintácticos descendentes: LL(1) Cristina Tîrnăucă Dept. Matesco, Universidad de Cantabria Fac. Ciencias Ing. Informática Primavera de 2013 Analizadores sintácticos
Más detallesCapítulo 5: Traducción Dirigida por Sintaxis
Capítulo 5: Traducción Dirigida por Sintaxis Javier Carvajal Universidad de Costa Rica, Escuela de Ciencias de la Computación e Informática, San José, Costa Rica, francisco.carvajal@ecci.ucr.ac.cr and
Más detallesALGORÍTMICA. Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid.
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid. Indíce Algoritmo Elementos de un algoritmo: Variables, Constantes, Expresiones Datos: Definición y
Más detallesSentencias de Procesamiento Iterativo: while y do-while
ESTRUCTURAS CÍCLICAS Se discuten en este documento las sentencias que se utilizan en el lenguaje C++ para representar la tercera de las estructuras utilizadas en la programación estructurada: La Estructura
Más detallesUNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA Escuela Técnica Superior de Ingeniería Informática Procesadores de Lenguajes. Tema 4
UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA Escuela Técnica Superior de Ingeniería Informática Procesadores de Lenguajes Tema 4 Análisis Sintáctico Ascendente Javier Vélez Reyes jvelez@lsi.uned.es Objetivos
Más detallesUnidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones
Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice
Más detallesTema 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 detallesAgenda. 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 detallesIntroducción. Análisis Semántico. José M. Castaño. Teoría de Lenguajes 2011 Departamento de Computación FCEyN, UBA
Análisis Semántico José M. Castaño Teoría de Lenguajes 2011 Departamento de Computación FCEyN, UBA Compiladores Análisis Léxico Análisis Sintáctico Análisis Semántico Generación Código Intermedio Optimización
Más detallesYACC (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 detallesFUNDAMENTOS DE INFORMÁTICA
FUNDAMENTOS DE INFORMÁTICA Tema 2 Expresiones, operadores y estructuras de control Departamento de Ingeniería de Sistemas y Automática Universidad de Vigo Fundamentos de Informática. Departamento de Ingeniería
Más detallesTema 7. Generación de código
Departamento de Tecnologías de la Información Tema 7 Generación de código Ciencias de la Computación e Inteligencia Artificial Índice 7.1 Visión general 7.2 Código de tres direcciones 2 Índice 7.1 Visión
Más detallesTema: 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 detallesESTRUCTURAS DE CONTROL
ESTRUCTURAS DE CONTROL En lenguajes de programación, las estructuras de control permiten modificar el flujo de ejecución de las instrucciones de un programa. Con las estructuras de control se puede: De
Más detallesANÁLISIS DESCENDENTE. Compruébese que la siguiente gramática es LL(1) sin modificarla.
Procesadores de lenguaje Ejercicios del Tema 3 ANÁLISIS DESCENDENTE Ejercicio 3.1 Compruébese que la siguiente gramática es LL(1) sin modificarla. Ejercicio 3.2 A B C D B a C b B λ C c A d C e B f C g
Más detallesIntroducció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 detallesPROGRAMA DE LABORATORIO SECCIÓN: ÁREA A LA QUE PERTENECE: POS-REQUISITO: AUXILIAR:
UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERÍA ESCUELA DE CIENCIAS PROGRAMA DE LABORATORIO CÓDIGO: 777 CRÉDITOS: 4 NOMBRE CURSO: ESCUELA: PRE-REQUISITO: Organización de Lenguajes y Compiladores
Más detallesAnalizadores 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 detallesCompiladores: 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 detallesLenguaje 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 detallesANÁ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 detallesCapí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 detallesGRAMÁ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 detallesTema: 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 detallesCompiladores: 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 detallesUniversidad de Valladolid. Departamento de informática. Campus de Segovia. Estructura de datos Tema 1: Recursividad. Prof. Montserrat Serrano Montero
Universidad de Valladolid Departamento de informática Campus de Segovia Estructura de datos Tema 1: Recursividad Prof. Montserrat Serrano Montero ÍNDICE Conceptos básicos Ejemplos recursivos Recursividad
Más detallesEstructuras de control
Estructuras de control Introducción Los algoritmos vistos hasta el momento han consistido en simples secuencias de instrucciones; sin embargo, existen tareas más complejas que no pueden ser resueltas empleando
Más detallesProgramación en Lenguaje C
Lenguaje de programación C Programación en Lenguaje C Introducción El Lenguaje de programación C fue implantado por primera vez en los años 70 por Dennis Ritchie para una computadora DEC PDP-11 corriendo
Más detallesElementos léxicos del lenguaje de programación Java
Elementos léxicos del lenguaje de programación Java Elementos léxicos del lenguaje de programación Java Palabras reservadas Identificadores Literales Operadores Delimitadores Comentarios Apéndices Operadores
Más detallesTEMA 3: ANÁLISIS SEMÁNTICO
1 TEMA 3: ANÁLISIS SEMÁNTICO OBJETIVO Dar respuesta a las siguientes preguntas: Qué es el análisis semántico de un lenguaje? Cómo se diseña y construye un analizador semántico? EL PROBLEMA DEL CÁLCULO
Más detallesUn. VI. Generador de código intermedio.
Un. VI. Generador de código intermedio. La administración de la memoria se da en esta etapa. Se debe considerar tanto la memoria estática como dinámica, y en esta se utilizan generalmente pilas. Los lenguajes
Más detallesBison. 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 detallesTema: 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 detallesEstatutos de Control C# Estatutos de Decisión (Selección)
SELECCIÓN Estatutos de Control C# Estatutos de Decisión (Selección) IF Condición THEN Estatuto1 ELSE Estatuto2 Estatuto1 Statement Condición... Antes de ver esta presentación: Lee el Capítulo correspondiente
Más detallesCompiladores: Generación de Código. Pontificia Universidad Javeriana Cali Ingeniería de Sistemas y Computación Prof. María Constanza Pabón
Compiladores: Generación de Código Pontificia Universidad Javeriana Cali Ingeniería de Sistemas y Computación Prof. María Constanza Pabón Generación de Código Representación Intermedia Tabla de Símbolos
Más detallesTema 3. Análisis sintáctico descendente
Departamento de Tecnologías de la Información Tema 3 Análisis sintáctico Ciencias de la Computación e Inteligencia Artificial Índice 3.1 Características del análisis sintáctico 3.2 Gramáticas libres de
Más detallesUnidad 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 detalles4. Operadores Operador asignación
Programación orientada a objetos con Java 43 4. Operadores Objetivos: a) Describir los operadores (aritméticos, incrementales, de relación, lógicos y de asignación) y los tipos de dato primitivos sobre
Más detallesOperadores 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 detallesGLOSARIO 1. Qué es bit y byte? Bit: Es la unidad mínima de información. Puede ser 0 o 1. Byte: Es el conjunto de 8 bits. Ejemplo:
Cuestionario Modulo 1.1 GLOSARIO 1. Qué es bit y byte? Bit: Es la unidad mínima de información. Puede ser 0 o 1. Byte: Es el conjunto de 8 bits. Ejemplo: 1001 0110. 2. qué es Dato? Definición: Es toda
Más detallesUNIVERSIDAD 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 detallesEstructuras de Control. Secuencia y Selección
Estructuras de Control. Secuencia y Selección InCo - FING Programación 1 InCo - FING Estructuras de Control. Secuencia y Selección Programación 1 1 / 35 Estructuras de control InCo - FING Estructuras de
Más detallesUniversidad 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 detallesTema 3. Patrones y Definiciones de Funciones
Informática Haskell Matemáticas Curso 2004-2005 Pepe Gallardo Universidad de Málaga Tema 3. Patrones y Definiciones de Funciones 3.1 Comparación de Patrones Patrones constantes Patrones para listas Patrones
Más detallesAnálisis Sintáctico Descendente
Análisis Sintáctico Descendente p.1/65 Análisis Sintáctico Descendente Tema 4 Juan A. Botía Blaya juanbot@um.es http://ants.dif.um.es/staff/juanbot/traductores/traductores.html Departamento de Ingeniería
Más detallesGramá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 detallesProcesadores 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 detallesTema 1.2. Un lenguaje mínimo y su procesador: Gramáticas de atributos y tabla de símbolos
Tema 1.2. Un lenguaje mínimo y su procesador: Gramáticas de atributos y tabla de símbolos Profesor Federico Peinado Elaboración del material José Luis Sierra Federico Peinado Ingeniería en Informática
Más detallesTEORÍA. definition TAG. PROPERTIES ID expr EXTENDS ID FIN_TAG. DELAYED : expr
Examen de Traductores, Intérpretes y Compiladores. Convocatoria ordinaria de Septiembre de 2004 3 er Curso de I.T. Informática de Sistemas. Apellidos, Nombre: Calificación: TEORÍA 1.- Escribir una gramática
Más detallesEl análisis descendente LL(1) 6, 7 y 13 de abril de 2011
6, 7 y 13 de abril de 2011 Analizadores sintácticos (repaso) Los analizadores descendentes: Corresponden a un autómata de pila determinista. Construyen un árbol sintáctico de la raíz hacia las hojas (del
Más detallesContenido PARTE II: ESTRUCTURAS DE DATOS AVANZADAS
Contenido PARTE II: ESTRUCTURAS DE DATOS AVANZADAS TEMA 4. - La Estructura de datos Árbol 4.1. Árboles, definiciones 4.2 Árboles binarios y su representación 4.3 Operaciones básicas de un árbol binario
Más detallesOPTIMIZACIÓN DE CÓDIGO
OPTIMIZACIÓN DE CÓDIGO INTRODUCCION La finalidad de la optimización de código es producir un código objeto lo más eficiente posible. En algunos casos también se realiza una optimización del código intermedio.
Más detalles1. Define que es un Autómatas finitos determinanticos y cuáles son sus elementos constitutivos (explique cada uno de ellos).
Unidad 2.- Lenguajes Regulares Los lenguajes regulares sobre un alfabeto dado _ son todos los lenguajes que Se pueden formar a partir de los lenguajes básicos?, {_}, {a}, a 2 _, por medio De las operaciones
Más detallesCompiladores y Lenguajes de Programación. Maria de Guadalupe Cota Ortiz
Compiladores y Lenguajes de Programación Maria de Guadalupe Cota Ortiz Organizaciones que rigen las normas para estandarización de Lenguajes de Programación IEEE (Instituto de Ingenieros Eléctricos y Electrónicos)
Más detallesAlgoritmos. Medios de expresión de un algoritmo. Diagrama de flujo
Algoritmos En general, no hay una definición formal de algoritmo. Muchos autores los señalan como listas de instrucciones para resolver un problema abstracto, es decir, que un número finito de pasos convierten
Más detallesUniversidad Nacional del Santa Facultad de Ingeniería E.A.P. de Ingeniería de Sistemas e Informática TEORIA DE COMPILADORES ANALISIS SINTACTICO
ANALISIS SINTACTICO Análisis Sintáctico Descendente Análisis Sintáctico Ascendente EOF y α S (axioma inicial). 2. : la cadena de entrada no es válida. 3. : consiste en aplicar
Más detalles