Recuperación de Errores

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

Download "Recuperación de Errores"

Transcripción

1 Recuperación de rrores 1 Rutinas de Manejo de rrores Ocupan gran parte de los compiladores Objetivos Informar con claridad, exactitud Recuperación rápida recuperación no es corrección No debe retrasar el procesamiento de programas sin errores No generar errores en cascada ej. eliminar identificador) Acciones posibles Detectar errores Informar de los errores Recuperar de los errores Corregir errores Necesidad actual de recuperación? Más rápido re-compilar que leer siguiente error 2

2 Tipos de rrores Tipos de errores Léxicos: escribir mal un identificador, número, Sintácticos: no poner un ; al final de una sentencia, estructura incorrecta Semánticos: multiplicar por una variable booleana Lógicos: bucle infinito Herramientas para disminuir el número de errores... Léxicos Si se utiliza alguna herramienta que complete palabras Sintácticos Si se utiliza algún editor basado en sintaxis colores) Semánticos Busca funciones/clases e indica tipos especificados 3 Recuperación rrores Sintácticos jemplo 1: análisis descendente Gramática: S::=a A S b A A::=c A d Tabla: a Σ N S aas ba A ca d ntrada: a b... stado del análisis cuando detecta el error: Pila ntrada S a b... SAa a b... SA b... rror: Se ha encontrado una b, cuando se esperaba una c o d Podría eliminarse b c d 4

3 rrores en Análisis LR jemplo 2: análisis ascendente Gramática 1. S::=A A 2. A::=x A 3. A::=y ntrada: xy x r3 r1 r2 acción y d4 d4 d4 r3 r2 acpt r3 r2 ir_a S A stado del análisis cuando detecta el error: Pila ntrada Se podría añadir un token y 0x3A6 0A2 0A2 5 strategias de Recuperación No hay una estrategia de aceptación universal Abundan técnicas heurísticas y ad hoc Principio general de recuperación Minimizar tokens eliminados/modificados Dejar el analizador listo para continuar procesando Principales estrategias de recuperación son: Modo de pánico/alarma Nivel de frase Producciones de error Corrección Global 6

4 Modo de Pánico Características Método más sencillo Lo pueden usar la mayoría de los AS No entra en lazos infinitos Adecuado para lenguajes en los que son raros múltiples errores en la misma proposición Funcionamiento general l AS desecha símbolos de la entrada, uno por uno, hasta encontrar un token de sincronización para continuar Delimitadores punto y coma, palabras clave como end) Inconvenientes Podrían omitirse gran cantidad de símbolos sin analizar 7 A nivel de frase Características Correcciones en la cadena de entrada Funcionamiento Descubierto el error se corrige localmente) la entrada por un prefijo que permite continuar el AS Sustituir una coma por un punto y coma, insertar un punto y coma, etc. Inconvenientes Dificultad para resolver situaciones en las que el error se produjo antes de la detección de éste Pueden producir lazos infinitos vitar insertar símbolos antes del símbolo actual en la entrada 8

5 Producciones de error Funcionamiento Conocidos los errores más comunes, se iende la gramática con producciones de error Reconocido el error, se dan diagnósticos precisos de la construcción errónea j.: -> op T ->T -> T //falta operador T->id num Inconvenientes Dificultad para ir más allá de los casos particulares más frecuentes Generación ambigüedades 9 Corrección Global Características Algoritmos que eligen una secuencia mínima de cambios para obtener una corrección global de menor costo j.: x=apq-br-s); -> apq)-br-s); ifa=b then sum=0; -> if a =b then sum=0; Inconvenientes Técnicas costosas en tiempo y espacio: métricas de distancias, búsqueda, optimización, 10

6 Recuperación en Analisis Descendente Predictivo Detección del error n un procedimiento, el token de preanálisis no es válido en esa situación Recuperación Modo pánico Si no encuentra token apropiado, buscar hasta tokens de sincronización Calcular los tokens de sincronización apropiados en cada situación Conjunto siguiente del no terminal Conjunto primero, después lección que permita rápida recuperación de los errores más comunes 11 Recuperación en Análisis Descendente Predictivo. jemplo jemplo: S if B then S write B i := B B i = i i <> i true false PRIMROS)= if, write, i PRIMROB)= i,true,false Procedure S) if token== if) ); B); if token== then) ); else error); S); else if token==write) ); B); else if token== i) ); if token == asig) ); else error); B); else error) Procedure B) if token= i) ); if token in [igual, noigual]) ); else error); if token == i) then else error; elseif token in [true, false]) ); else error); Procedure Main) S); if token!= ) error 12

7 Recuperación en Analisis Descendente Predictivo. jemplo jemplo con modo pánico: S if B then S write B i := B B i = i i <> i true false Procedure Ssync) buscarsincif, write, i, sync); if not token in if, write, i)return; if token== if) ); Bthen); if token== then) ); Ssync); else if token==write) ); B); else if token== i) ); if token == asig) ); B); buscarsincsync, ) Procedure Bsync) buscarsinci, true, false, sync); if not token in i, true, false) return; if token= i) ); if token in igual, noigual) ); if token == i) ); elseif token in true, false) ); buscarsincsync, ); Procedure Main) S, if, write, i); if token!= ) error); PRIMROS)= if, write, i PRIMROB)= i,true, false SIGUINTS)= SIGUINTB)= then, Procedure buscarsinc PRIM,SIG) if not token in PRIM) mensajerror); avanzarprim U SIG); Procedure avanzara) while not token in A) ); 13 Recuperación en Analisis Descendente Predictivo. jemplo j.: if a:=b then writte false Procedure Ssync) buscarsincif, write, i, sync); if not token in if, write, i)return; if token== if) ); Bthen); if token== then) ); Ssync); else if token==write) ); B); else if token== i) ); if token == asig) ); B); buscarsincsync, ) Procedure Bsync) buscarsinci, true, false, sync); if not token in i, true, false) return; if token= i) ); if token in igual, noigual) ); if token == i) ); elseif token in true, false) ); buscarsincsync, ); Procedure Main) S, if, write, i); if token!= ) error); PRIMROS)= if, write, i PRIMROB)= i,true, false SIGUINTS)= SIGUINTB)= then, Procedure buscarsinc PRIM,SIG) if not token in PRIM) mensajerror); avanzarprim U SIG); Procedure avanzara) while not token in A) ); 14

8 Recuperación en Analizador LL1) Detección del error l terminal de la cima de la pila no concuerda con la entrada l no terminal A de la cima de la pila y el termina a de la entrada indexan la tabla de análisis sintáctico una entrada vacía, M[A,a]= Recuperación Modo pánico La eficacia de esta estrategia depende de la elección del conjunto de tokens de sincronización La elección debe ser tal que el AS se recupere rápidamente de los errores más comunes 15 Recuperación en AS LL1) Heurísticas para modo pánico Colocar todos los símbolos de SIGUINTA) en el conjunto de sincronización de A Saltar tokens hasta encontrar uno en SIGUINTA) y sacar A de la pila, es probable que el AS pueda seguir Acción especial si se vacía la pila: poner S y saltar hasta PRIMROS) Añadir los símbolos de PRIMROA) al conjunto de sincronización de A, el AS continúa con A si aparece un token de PRIMROA) Añadir al conjunto de sincronización tokens de inicio de bloques de una jerarquía superior bloques, sent, exp, ) 16 Si λ PRIMRO ) d i ió l

9 Recuperación AS LL1) Modo Pánico jemplo: T,id ), T λ,λ ), T FT T,id,), T FT λ T,λ,), F ) id F,id,), Σ N Primero Siguiente T T F id T T FT F id T T λ T FT T T FT F ) ) λ T λ λ T λ 17 Recuperación AS LL1) jemplo entrada: )idid T T F id T T FT F id T T λ T FT T T FT F ) ) λ T λ λ T λ 18

10 Recuperación AS LL1) A nivel de frase Se llenan las entradas en blanco de la tabla con llamadas a rutinas de error Las rutinas insertan, cambian o eliminan símbolos de la entrada y emiten mensajes de error Pueden sacar elementos de la pila Hay que asegurarse de que no se produzcan lazos infinitos Las acciones de recuperación deben consumir símbolos de la entrada o de la pila 19 Gramática: Tabla de precedencia: ::= ) Id Recuperación Precedencia por Operador Id ) ) Id = = Algoritmo Insertar al principio y al final de la cadena de entrada Insertar las relaciones de precedencia en la cadena de entrada Mientras entrada S hacer Recorrer entrada desde la izquierda hasta encontrar Buscar a la izquierda, a partir de ese punto, el primer Reducir el pivote que se encuentra en el medio, incluyendo no terminales adyacentes Reinsertar las relaciones de precedencia, ignorando los no terminales 20

11 Recuperación Precedencia por Operador Hay dos situaciones en las que un AS por precedencia descubre errores sintácticos: ncontrado el pivote, no existe ninguna producción que reducir Para reducir hay que decidir que regla de producción se asemeja más al pivote No se cumple ninguna relación de precedencia entre el terminal de la pila y el de la entrada actual strategia para continuar el análisis Las entradas en blanco de la tabla de relación de precedencia deben especificar rutinas de recuperación de errores Para recuperarse hay que modificar la pila, la entrada o ambas Hay que prevenir los bucles infinitos 21 Recuperación Precedencia por Operador Problemas al reducir el pivote Para reducir hay que decidir que regla de producción se asemeja más al pivote Una posibilidad es modificarlo, eliminando o insertando símbolos hasta encontrar producción más parecida j.: A-> a c encontrado: aac a = = a = = c modificar a ac a = = c a ilegal en línea falta en línea Para casos sencillos pueden enumerarse todos los casos de cada producción. j.: aritmética si, se reduce y no hay no terminales a los lados: falta operando Si id se reduce y no hay no terminal a un lado: falta operador Si ) se reduce si no terminal en medio: falta expresión 22

12 Recuperación Precedencia por Operador No se cumple ninguna relación de precedencia entre el terminal de la pila y el de la entrada actual Las entradas en blanco de la tabla de relación de precedencia deben especificar rutinas de recuperación de errores Para recuperarse hay que modificar la pila, la entrada o ambas Hay que prevenir los bucles infinitos j.: - / ) - id id ) id = = ) 23 Recuperación Precedencia por Operador - / ) - id : // falta expresión insertar id en la entrada : mostrar falta operando e2: // las expresiones empiezan con paréntesis de cierre eliminar ) de la entrada :mostrar paréntesis derecho no equilibrado e3: // después de id o ) aparece id o insertar en la entrada : mostrar falta operador e4: // las expresiones terminan en paréntesis de apertura raer de la pila : mostrar falta paréntesis derecho id ) id e3 e3 e3 e3 ) = = e2 e4 j.: id ) 24

13 Recuperación AS LR1) Detección del error Al consultar la tabla de acciones del AS y la entrada es de error Detección más rápida que otros analizadores: propiedad del prefijo viable Nunca se hace un desplazamiento posterior al token errónea LR canónico nunca hace una reducción antes de anunciar un error SLR y LALR pueden realizar varias reducciones antes de anunciar un error, pero nunca desplazan un símbolo de la entrada erróneo Mayor rapidez de detección al aumentar estados 25 Detección errores AS LR1) j. SLR vs LR1). Gramática: A->A) a acción a ) d2 d2 r2 d5 r1 acpt r2 r1 ir_a A acción a ) d2 d5 d6 d7 d5 d6 r2 acpt r2 ir_a A Comparar: a a) d9 r1 r1 26

14 Recuperación AS LR1) Recuperación LR en modo pánico Procedimiento heurístico que pretende: Identificar una construcción en proceso de ser reconocida cuando aparece el error Determinar la posición en la entrada para continuar Algoritmo Se examina la pila hasta encontrar un estado s con valor de ir_a no vacío: al menos para un símbolo no terminal A Se desechan símbolos de la entrada hasta encontrar un terminal a válido para seguir al no terminal A acción no vacía) Poner en la pila el estado de ir_a[s,a] y sigue el análisis sintáctico 27 Recuperación AS LR1) A nivel de frase Se construyen procedimientos de recuperación que modifiquen la pila y/o la entrada dependiendo del error Los procedimientos de recuperación eliminarán o desplazarán al menos un símbolo de la entrada o reducirán la pila si la entrada ha sido procesada evitar bucles infinitos) No raer de la pila estados que alcancen un no terminal estaremos rayendo construcciones correctamente examinadas) Para evitar excesivos mensajes de error se puede ender, en los estados en los que las reducciones son siempre al mismo estado, la reducción a las entradas en blanco los errores se detectarán ahora al desplazar) 28

15 Recuperación AS LR1) A nivel de frase jemplo: id) ) id : se esperaba un operando id ó pero se encontró operador o final introducir id en la pila y estado 3 mostrar falta operando e2: encuentra un paréntesis eliminar ) de la entrada mostrar ) no equilibrado 6 e3 d4 d5 e3 d9 e3: se esperaba un operador pero 7 r1 r1 d5 r1 r1 se encontró id ó ) 8 r2 r2 r2 r2 r2 introducir en la pila y estado 4 mostrar falta operador 9 r3 r3 r3 r3 r3 e4: se esperaba operador ó ) pero encontró el final de la entrada introducir ) en la pila y estado 9 mostrar falta paréntesis derecho id e3 r4 d4 r4 acción d5 r4 d2 e3 d2 r4 d2 d2 ) e2 e2 e2 r4 e2 e2 acpt r4 e4 r1 r2 r3 ir_a Conj. LR0) I 0 : [ ] [ ] [ ] [ )] [ Id] I 1 : [ ] [ ] [ ] e3 Id I 2 : [ )] [ ] [ ] [ )] [ Id] I 3 : [ Id ] I 4 : [ ] [ ] [ ] [ )] [ Id] I 5 : [ ] [ ] [ ] [ )] [ Id] Id e2 I 6 : [ )] [ ] [ ] e3 I 7 : [ ] [ ] [ ] I 8 : [ ] [ ] [ ] e4 ) I 9 : [ ) ] : esperaba operando o e2: encuentra un paréntesis ) e3: esperaba operador e4: esperaba) 30

16 Conclusiones de Manejo de rrores Aspecto complejo del diseño del compilador Análisis cuidadoso del lenguaje y posibles errores No hay una estrategia de aceptación universal Abundan técnicas heurísticas y ad hoc Principio general de recuperación Minimizar tokens eliminados/modificados Dejar el analizador listo para continuar procesando Objetivos Informar con claridad, exactitud y ensión vitar errores en cascada y procesos infinitos Analizadores LL y LR gran capacidad para estrategias en modo pánico y frase en función del conto 31

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

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

Tema 4: Análisis sintáctico ascendente. Análisis sintáctico ascendente: un ejemplo

Tema 4: Análisis sintáctico ascendente. Análisis sintáctico ascendente: un ejemplo Tema 4: Análisis sintáctico ascendente Procesamiento de enguajes Dept. de enguajes y Sistemas Informáticos Universidad de Alicante Procesamiento de enguajes Tema 4: Análisis sintáctico ascendente 1 / 21

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

AUTÓMATAS DE PILA Y LENGUAJES INDEPENDIENTES DEL CONTEXTO

AUTÓMATAS DE PILA Y LENGUAJES INDEPENDIENTES DEL CONTEXTO Autómatas de pila y lenguajes independientes del contexto -1- AUTÓMATAS DE PILA Y LENGUAJES INDEPENDIENTES DEL CONTEXTO AUTÓMATAS DE PILA - Son autómatas finitos con una memoria en forma de pila. - Símbolos

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

Tema 3. Análisis sintáctico descendente

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

Las Etapas de la Compilación

Las Etapas de la Compilación Las de la Compilación El en la Compilación Universidad de Cantabria Outline 1 El Problema 2 Las y el Qué pasos son necesarios dar para hallar la estructura de un programa? En qué pasos podemos dividirlos

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

Procesadores de lenguaje Tema Análisis sintáctico (Parte II)

Procesadores de lenguaje Tema Análisis sintáctico (Parte II) Procesadores de lenguaje Tema 3 Análisis sintáctico (Parte II) Salvador Sánchez, Daniel Rodríguez Departamento de Ciencias de la Computación Universidad de Alcalá Resumen Análisis sintáctico ascendente

Más detalles

Universidad Nacional del Santa Facultad de Ingeniería E.A.P. de Ingeniería de Sistemas e Informática TEORIA DE COMPILADORES ANALISIS SINTACTICO

Universidad 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

Implementación de una metodología de reparación de errores sintácticos para el generador de analizadores sintácticos GNU Bison

Implementación de una metodología de reparación de errores sintácticos para el generador de analizadores sintácticos GNU Bison Implementación de una metodología de reparación de errores sintácticos para el generador de analizadores sintácticos GNU Bison Memoria de Título Claudio Saavedra Facultad de Ingeniería Universidad de Talca

Más detalles

Compiladores: Parsing ascendente

Compiladores: Parsing ascendente Compiladores: Parsing ascendente Francisco J Ballesteros LSUB, URJC Page 1 of 64 Parsing ascendente Normalmente utilizaremos parsers descendentes para problemas pequeños cuando podemos escribir uno predictivo

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

Procesadores de Lenguaje

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

S Qué es el analizador sintáctico?

S Qué es el analizador sintáctico? Traductores, Compiladores e Intérpretes 1 Tema 3. Análisis Sintáctico. Todo lenguaje de programación tiene reglas que describen la estructura sintáctica de programas bien formados. En Pascal, por ejemplo,

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

Estructuras de Control. Secuencia y Selección

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

Á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

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

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 7. Generación de código

Tema 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 detalles

2. Estructuras condicionales

2. Estructuras condicionales 2. Estructuras condicionales Fundamentos de Informática Dpto. Lenguajes y Sistemas Informáticos Curso 2012 / 2013 Índice Estructuras condicionales 1. Ej07: Cond. simple 2. Ej08: Cond. doble 3. Ej09: Cond.

Más detalles

Datos y tipos de datos

Datos y tipos de datos Datos y tipos de datos Dato Representación formal de hechos, conceptos o instrucciones adecuada para su comunicación, interpretación y procesamiento por seres humanos o medios automáticos. Tipo de dato

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

Variables lógicas y sentencia IF

Variables lógicas y sentencia IF Variables lógicas y sentencia IF Seminario de Computación Verano de 2009 Variables lógicas: Solo pueden tomar 2 valores:.true. y.false. (verdadero o falso). Existen operadores que aplicados a variables

Más detalles

Construcción de tablas de análisis sintáctico LL(1)

Construcción de tablas de análisis sintáctico LL(1) Construcción de tablas de análisis sintáctico LL(1) Universidad de Costa Rica Escuela de Ciencias de la Computación e Informática Diego Centeno Gerardo Cortés Juan Diego Alfaro Resumen. A la medida en

Más detalles

Universidad de Valladolid. Departamento de informática. Campus de Segovia. Estructura de datos Tema 4: Ordenación. Prof. Montserrat Serrano Montero

Universidad de Valladolid. Departamento de informática. Campus de Segovia. Estructura de datos Tema 4: Ordenación. Prof. Montserrat Serrano Montero Universidad de Valladolid Departamento de informática Campus de Segovia Estructura de datos Tema 4: Ordenación Prof. Montserrat Serrano Montero ÍNDICE Conceptos básicos Elección de un método Métodos directos

Más detalles

Sentencias de Procesamiento Iterativo: while y do-while

Sentencias 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 detalles

OPTIMIZACIÓN DE CÓDIGO

OPTIMIZACIÓ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 detalles

TEMA 3.- El analizador sintáctico

TEMA 3.- El analizador sintáctico PROCESADORES DEL LENGUAJE EL ANALIZADOR SINTÁCTICO - Diap. 1 TEMA 3.- El analizador sintáctico 1. Introducción. 2. Errores sintácticos. 3. Gramáticas independientes del contexto y autómatas con pila. 4.

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

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

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Algoritmos. 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 detalles

Contenido. 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. 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 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

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

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

4. Operadores Operador asignación

4. 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 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

TEMA 6 GRAMÁTICAS INDEPENDIENTES DEL CONTEXTO

TEMA 6 GRAMÁTICAS INDEPENDIENTES DEL CONTEXTO TEMA 6 GRAMÁTICAS INDEPENDIENTES DEL CONTEXTO TEMA 6.- GRAMÁTICAS INDEPENDIENTES DEL CONTEXTO 6.1. Gramáticas independientes del contexto. 6.2. Limpieza de Gramáticas Independientes del contexto. 6.3.

Más detalles

Tema 5 Tabla de Símbolos

Tema 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 detalles

Maquina de Turing. 5. Fundamentos de algoritmos. Turing TURING TURING 10/08/2010. MI Elizabeth Fonseca Chávez

Maquina de Turing. 5. Fundamentos de algoritmos. Turing TURING TURING 10/08/2010. MI Elizabeth Fonseca Chávez Maquina de Turing 5. Fundamentos de algoritmos MI Elizabeth Fonseca Chávez matemático inglés Alan Turing Turing Definición de algoritmo: conjunto ordenado de operaciones que permite hallar la solución

Más detalles

Expresiones Aritméticas. Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz

Expresiones Aritméticas. Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz Expresiones Aritméticas Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz Expresiones Aritméticas El computador puede realizar cálculos además de mostrar datos por pantalla.

Más detalles

Capítulo 5: Traducción Dirigida por Sintaxis

Capí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 detalles

LA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C)

LA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C) APRENDERAPROGRAMAR.COM LA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado

Más detalles

El análisis descendente LL(1) 6, 7 y 13 de abril de 2011

El 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 detalles

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C Algoritmo y Estructura de Datos Ing. M. Laura López 1 Estructura de un programa en C 2 Estructura de un programa en C #include Archivos de cabecera # define Definición de constantes Declaraciones Globales

Más detalles

ESTRUCTURAS DE CONTROL

ESTRUCTURAS 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 detalles

Desarrollo del Programa Docente de Procesadores del Lenguaje

Desarrollo del Programa Docente de Procesadores del Lenguaje Grado en Ingeniería Informática. Procesadores del Lenguaje. Curso 2010-2011 -1- Desarrollo del Programa Docente de Procesadores del Lenguaje Introducción Se presenta en este texto el programa desarrollado

Más detalles

Lenguaje de programación C. Introducción

Lenguaje 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 detalles

Unidad I: Análisis semántico

Unidad 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 detalles

TEMA 3: El proceso de compilación, del código fuente al código máquina

TEMA 3: El proceso de compilación, del código fuente al código máquina TEMA 3: El proceso de compilación, del código fuente al código máquina 3.1 Fase de compilación y linkado (link, montado o enlace) Un programa escrito en un lenguaje de alto nivel, no puede ser ejecutado

Más detalles

PROCESADORES DE LENGUAJES I PRÁCTICA DE LABORATORIO 4

PROCESADORES DE LENGUAJES I PRÁCTICA DE LABORATORIO 4 PROCESADORES DE LENGUAJES I PRÁCTICA DE LABORATORIO 4 En esta práctica trabajaremos con ANTLR a nivel semántico utilizando gramáticas con atributos. ANTLR permite implementar con facilidad los dos modelos

Más detalles

Procesadores de Lenguaje

Procesadores de Lenguaje Procesadores de Lenguaje Analizadores LALR Cris%na Tirnauca Domingo Gómez Pérez DPTO. DE MATEMÁTICAS, ESTADÍSTICA Y COMPUTACIÓN Este tema se publica bajo Licencia: CreaIve Commons BY NC SA 3.0 El Analizador

Más detalles

INTRODUCIR FORMULAS EN EXCEL

INTRODUCIR FORMULAS EN EXCEL INTRODUCIR FORMULAS EN EXCEL Las fórmulas, comienzan con un signo (=) y son ecuaciones que efectúan cálculos con los valores ingresados en la hoja de cálculo. Por ejemplo, la siguiente fórmula multiplica

Más detalles

ANÁLISIS SEMÁNTICO. Especificación formal: Semántica Operacional, semántica denotacional, semántica Axiomática, Gramáticas con Atributos.

ANÁ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 detalles

Estatutos de Control C# Estatutos de Decisión (Selección)

Estatutos 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 detalles

ALGORÍ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. 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 detalles

Lección 2 Introducción al lenguaje C

Lección 2 Introducción al lenguaje C Lección Introducción al lenguaje C Decimal Binario Hexadecimal A B C D E F Octal Equivalencia entre decimal, binario, hexadecimal y octal. Código ASCII (American Standard Code for Information Interchange)

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

Algoritmos y estructuras de programación

Algoritmos y estructuras de programación Tema 5 Algoritmos y estructuras de programación Versión: 2 de marzo de 2009 5.1 Fases de creación de un programa El proceso de resolución de problemas en un ordenador conduce a la escritura de un programa

Más detalles

Elementos léxicos del lenguaje de programación C

Elementos léxicos del lenguaje de programación C Elementos léxicos del lenguaje de programación C Elementos léxicos de los lenguajes de programación (tokens) Palabras reservadas Identificadores Literales Operadores Delimitadores Comentarios Apéndices

Más detalles

Estructuras de control Agosto de Facultad de Ingeniería. Universidad del Valle

Estructuras de control Agosto de Facultad de Ingeniería. Universidad del Valle Estructuras de control carlos.andres.delgado@correounivalle.edu.co Facultad de Ingeniería. Universidad del Valle Agosto de 2016 Contenido 1 2 3 Definición Estas sentencias son asociados a dos posibles

Más detalles

Capítulo 4: Algoritmos usados por el Generador de Analizadores Sintácticos

Capítulo 4: Algoritmos usados por el Generador de Analizadores Sintácticos Capítulo 4: Algoritmos usados por el Generador de Analizadores Sintácticos 4.1 Introducción En este capítulo se presentan los algoritmos usados por el Generador de Analizadores Sintácticos SLR. Se tratará

Más detalles

4 o Ingeniería Informática

4 o Ingeniería Informática Esquema del tema 1. Introducción 2. Análisis LR(0) 3. Análisis SLR 4. Análisis LR(1) 4 o Ingeniería Informática II26 Procesadores de lenguaje Análisis ascendente 5. Uso de gramáticas ambiguas 6. Tratamiento

Más detalles

6. Autómatas a Pila. Grado Ingeniería InformáDca Teoría de Autómatas y Lenguajes Formales

6. Autómatas a Pila. Grado Ingeniería InformáDca Teoría de Autómatas y Lenguajes Formales 6. Autómatas a Pila Araceli Sanchis de Miguel Agapito Ledezma Espino José A. Iglesias Mar

Más detalles

Un. VI. Generador de código intermedio.

Un. 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 detalles

GUÍA BÁSICA DE SCHEME v.4

GUÍA BÁSICA DE SCHEME v.4 Esta guía básica pretende ser una introducción elemental al lenguaje de programación Scheme. Se presenta como una guía de comienzo rápido de tal forma que permita conocer de una forma muy esquemática los

Más detalles

Texto estructurado (ST)

Texto estructurado (ST) 17 Texto estructurado (ST) El texto estructurado se compone de una serie de instrucciones que se pueden ejecutar, como sucede con los lenguajes superiores, de forma condicionada ("IF..THEN..ELSE") o en

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

Elemento crítico para la garantía de calidad del software y representa una revisión final de las especificaciones, del diseño y de la codificación.

Elemento crítico para la garantía de calidad del software y representa una revisión final de las especificaciones, del diseño y de la codificación. Prueba del Software Elemento crítico para la garantía de calidad del software y representa una revisión final de las especificaciones, del diseño y de la codificación. Curso 2005/2006 Ingeniería del Software

Más detalles

Programación: Estructuras de Control

Programación: Estructuras de Control Programación: 2 Estructuras de Control Contenido 2.1.- Introducción 2.2.- Estructuras de Selección 2.2.1.- Sentencia if 2.2.2.- Sentencia switch 2.3.- Estructuras de Iteración 2.3.1.- Sentencia while 2.3.2.-

Más detalles

JavaCC Parte I. 1 Compiladores / Guía VII / Ciclo Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores.

JavaCC Parte I. 1 Compiladores / Guía VII / Ciclo Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores. 1 Compiladores / Guía VII / Ciclo 02-2016 Centro de Investigación y Transferencia de Tecnología JavaCC Parte I Contenido Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores En la presente

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

Expresiones Aritméticas

Expresiones Aritméticas Expresiones Aritméticas Andrés Arcia Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes Programación I 1 La Operación Asignación variable = expresión;

Más detalles

Lección 5: Análisis Sintáctico LR

Lección 5: Análisis Sintáctico LR Lección 5: Análisis Sintáctico LR 1) Introducción 2) Un ejemplo intuitivo 3) Definiciones 4) Análisis SLR 5) Construcción de un analizador SLR 6) Sobre conflictos 7) Análisis LR Canónico 8) Análisis LALR

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

Tabla de Símbolos. Programación II Margarita Álvarez

Tabla de Símbolos. Programación II Margarita Álvarez Programación II Margarita Álvarez La tabla de símbolos es una estructura global utilizada por distintos módulos del compilador. Es el principal atributo heredado. Almacena todos los nombres declarados

Más detalles

Lenguajes y Gramáticas

Lenguajes y Gramáticas Lenguajes y Gramáticas Teoría de Lenguajes Fernando Naranjo Introduccion Se desarrollan lenguajes de programación basados en el principio de gramática formal. Se crean maquinas cada vez mas sofisticadas

Más detalles

TEMA 4: Programación estructurada

TEMA 4: Programación estructurada TEMA 4: Programación estructurada 4.1.-Introducción. Teorema de la programación estructurada El principio fundamental de la programación estructurada es que en todo momento el programador pueda mantener

Más detalles

Tema 3. Tipos de datos simples

Tema 3. Tipos de datos simples Tema 3. Tipos de datos simples Contenido del tema: Concepto de tipo. Tipos simples. Operadores. Expresiones. Semántica. Tipos y expresiones en lenguaje C++ Francisco J. Veredas Dpto. Lenguajes y Ciencias

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

Tabla de Símbolos. Programación II Margarita Álvarez

Tabla de Símbolos. Programación II Margarita Álvarez Programación II Margarita Álvarez La tabla de símbolos es una estructura global utilizada por distintos módulos del compilador. Es el principal atributo heredado. Almacena todos los nombres declarados

Más detalles

SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos

SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos TEMA 2 Diseño de Algoritmos 7 2. DISEÑO DE ALGORITMOS 2.1. Concepto de Algoritmo En matemáticas, ciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y latín, dixit algorithmus

Más detalles

Universidad de Costa Rica. Escuela de Ciencias de la Computación e Informática CI-2700 TÓPICOS ESPECIALES - COMPILADORES.

Universidad de Costa Rica. Escuela de Ciencias de la Computación e Informática CI-2700 TÓPICOS ESPECIALES - COMPILADORES. Universidad de Costa Rica Escuela de Ciencias de la Computación e Informática CI-2700 TÓPICOS ESPECIALES - COMPILADORES II Ciclo 2014 Profesor: Manuel E. Bermúdez EXAMEN FINAL (NO PARA COMER EN CLASE,

Más detalles

Estructuras de control

Estructuras 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 detalles

Procesadores de lenguaje Tema Análisis sintáctico (Parte I)

Procesadores de lenguaje Tema Análisis sintáctico (Parte I) Procesadores de lenguaje Tema 3 Análisis sintáctico (Parte I) Departamento de Ciencias de la Computación Universidad de Alcalá Resumen Introducción Conceptos básicos Tipos de analizadores Gramáticas independientes

Más detalles

Estructuras de Control

Estructuras de Control Algorítmica y Lenguajes de Programación Estructuras de Control Estructuras de Control. Introducción Hasta ahora algoritmos han consistido en simples secuencias de instrucciones Existen tareas más complejas

Más detalles

Clase adicional 9. Listas enlazadas. Temas. Listas enlazadas Árboles Problemas de la clase adicional Ejercicios de diseño

Clase adicional 9. Listas enlazadas. Temas. Listas enlazadas Árboles Problemas de la clase adicional Ejercicios de diseño Clase adicional 9 Temas Listas enlazadas Árboles Problemas de la clase adicional Ejercicios de diseño Listas enlazadas Previamente en este curso, ya habrá trabajado con dos de las estructuras de datos

Más detalles

Tema 12: Analizadores sintácticos funcionales

Tema 12: Analizadores sintácticos funcionales Tema 12: Analizadores sintácticos funcionales Informática (2014 15) José A. Alonso Jiménez Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de Sevilla 2 / 37

Más detalles

Tema 9. Algoritmos sobre listas. Programación Programación - Tema 9: Algoritmos sobre listas

Tema 9. Algoritmos sobre listas. Programación Programación - Tema 9: Algoritmos sobre listas Tema 9 Algoritmos sobre listas Programación 2015-2016 Programación - Tema 9: Algoritmos sobre listas 1 Tema 9. Algoritmos sobre listas Algoritmos sobre Arrays. Búsqueda. Inserción. Ordenación. Programación

Más detalles

Dpto. Lenguajes y Ciencias de la Computación E.T.S.I. Telecomunicación. Laboratorio de Programación Uso del depurador en Dev-C++

Dpto. Lenguajes y Ciencias de la Computación E.T.S.I. Telecomunicación. Laboratorio de Programación Uso del depurador en Dev-C++ Dpto. Lenguajes y Ciencias de la Computación E.T.S.I. Telecomunicación Laboratorio de Programación Uso del depurador en Dev-C++ Abril 2004 David Bueno Vallejo Plan Introducción n a la depuración Preparación

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