Tema 2: Análisis léxico
|
|
- Yolanda Franco Rodríguez
- hace 6 años
- Vistas:
Transcripción
1 Tema 2: Análisis léxico Procesamiento e Lenguajes Dept. e Lenguajes y Sistemas Informáticos Universia e Alicante Procesamiento e Lenguajes Tema 2: Análisis léxico 1 / 21 Funamentos el análisis léxico El analizaor léxico se encarga e suministrar al analizaor sintáctico una serie e uniaes lógicas llamaas elementos léxicos que resultan e agrupar los caracteres el fichero e entraa Caa uno e estos elementos léxicos se enomina token El analizaor léxico es una función o métoo que es llamao por el analizaor sintáctico caa vez que necesita conocer un nuevo token para continuar el proceso e traucción Es el único móulo el compilaor que maneja el fichero e entraa Procesamiento e Lenguajes Tema 2: Análisis léxico 2 / 21
2 Los tokens Clases e tokens: palabras reservaas (if, then,... ) símbolos especiales (operaores aritméticos, lógicos,... ) caenas no específicas (ientificaor, número real,... ) EOF (fin e fichero) La caena e caracteres concreta que se ha reconocio como un token eterminao se enomina lexema El lexema no juega un papel ese el punto e vista estructural, pero sí ese el semántico A la información auxiliar que acompaña a un token se le llama atributos el token (lexema, fila, columna,... ) Los tokens se especifican meiante expresiones regulares Procesamiento e Lenguajes Tema 2: Análisis léxico 3 / 21 Ejemplo e análisis léxico EXPR. REGULAR TOKEN [a-z][a-z0-9]* i if if [0-9]+ entero > mayor >= mayorig / iv Traza e una caena: /r22 >= if 5=a TOKEN LEXEMA FILA COLUMNA iv / 1 2 i r mayorig >= 1 9 if if 2 1 entero error léxico en = i a 2 6 (si hay recuperación e errores) EOF Procesamiento e Lenguajes Tema 2: Análisis léxico 4 / 21
3 Conclusiones tras la traza Principio e la subcaena más larga Con algunos tokens nos tenemos que pasar leyeno la entraa (es ecir, el fichero) El analizaor léxico ignora los espacios en blanco, comentarios, saltos e línea,... pero sigue contano líneas y columnas Política e elección e palabra reservaa sobre ientificaor Errores léxicos: caracteres no permitios en el lenguaje (p.ej. $ ) o no permitios en un contexto eterminao (p.ej vs. o.23 ) Procesamiento e Lenguajes Tema 2: Análisis léxico 5 / 21 Diagrama e transiciones (DT) 8 9 * REAL. 6 7 ** ENTERO * ENTERO * 2 INCR Expr. regular Token + SUMA ++ INCR [0-9]+ ENTERO ([0-9]+)"."([0-9]+) REAL SUMA Procesamiento e Lenguajes Tema 2: Análisis léxico 6 / 21
4 Funcionamiento el DT 8 9 * REAL. 6 7 ** ENTERO * ENTERO * 2 SUMA INCR Trazas Procesamiento e Lenguajes Tema 2: Análisis léxico 7 / 21 Conclusiones tras la traza con DT 1 Mientras se analiza la caena e entraa, el analizaor ebe recorar los n caracteres leíos anteriormente (one n es el número máximo e asteriscos que aparecen en cualquier estao el DT) 2 Cuano se llega a un estao e aceptación, se evuelve el token asociao a ese estao, y se reintegran al buffer e entraa tantos caracteres como asteriscos tenga asociaos el estao 3 IMPORTANTE: en el iagrama suelen estar previstas toas las posibles transiciones e salia e un estao (excepto en los e aceptación), para ello se usa la etiqueta. Si no hay transición posible es un error (y no se inica en el DT). 4 En el DT se especifica lo que ebe hacer el analizaor léxico con caa carácter e la entraa. De los estaos finales no salen transiciones 5 En algunos casos (números, i) es necesario leer un carácter más para estar seguros e haber reconocio el token completo Procesamiento e Lenguajes Tema 2: Análisis léxico 8 / 21
5 Algoritmo e análisis léxico estao = 1; c = leer(); o { nuevo = elta(estao,c); if (nuevo == ERROR) errorlexico(...); if (esfinal(nuevo)) { evolvercaracteres(nuevo); return tokenasociao(nuevo); else { estao = nuevo; c = leer(); while (true); Procesamiento e Lenguajes Tema 2: Análisis léxico 9 / 21 Construcción automática e analizaores léxicos lex/flex: [a-z][a-z0-9]* { return ID; ANTLR: ID : ( a.. z )( a.. z )+ ;... Procesamiento e Lenguajes Tema 2: Análisis léxico 10 / 21
6 Lectura e ficheros carácter a carácter con Java En PL recomenamos utilizar java.io.ranomaccessfile Función recomenaa para leer caracteres: public char leercaracter() { char currentchar; try { currentchar = (char)fichero.reabyte(); return currentchar; catch (EOFException e) { return EOF; // constante estática e la clase catch (IOException e) {... // error lectura return ; ATENCIÓN: es posible que sea necesario trucar esta función (para tener en cuenta los caracteres leíos e más) Procesamiento e Lenguajes Tema 2: Análisis léxico 11 / 21 Caracteres leíos espués el token En muchos casos, es necesario leer caracteres e más para asegurar el final el token. Ejemplo: * IMPORTANTE: Los caracteres leíos e más se eben evolver a la entraa para que sean leíos la siguiente vez que se invoque al analizaor léxico (no se pueen perer) Hay os formas e implementar esa evolución: Retroceieno el puntero e lectura el fichero (usano el métoo.seek(...)) Hacieno buffering, almacenano en un vector (que funcionaría como una cola) los caracteres, y trucano la función e lectura e caracteres para consultar el buffer antes e leer el fichero Procesamiento e Lenguajes Tema 2: Análisis léxico 12 / 21
7 Palabras reservaas 1 Coificación explícita en el DT (no recomenable, excepto si se usa un generaor automático e analizaores léxicos: lex, ANTLR,...) 0 i 1 ol 3 2 n ol 1 t ol 6 * int ol 1 l 2 * ient 2 O bien, tras reconocer un ientificaor en el DT, se consulta en una lista e palabras reservaas (o en la tabla e símbolos) para eciir el token a evolver Procesamiento e Lenguajes Tema 2: Análisis léxico 13 / 21 Función e transición en DT 1 Matriz (ispersa) gestionaa por rangos 2 Implementación en cóigo meiante instrucciones e selección 3 Hay que almacenar qué token se ebe evolver para caa estao final, y en el caso el iagrama e transiciones, el número e asteriscos (que es el número e caracteres que hay que evolver a la entraa o almacenar en el buffer) Procesamiento e Lenguajes Tema 2: Análisis léxico 14 / 21
8 Coificación e la tabla e transiciones 1 > 4 = * int elta (int estao, int c) { ENTERO switch (estao) { case 1: if (c== > ) return 2; else if (c>= 0 && c<= 9 ) return 4; else return -1; break; mayorig case 2: if (c== = ) return 3; else return -1; break; case 3: return -1; // estao final break; case 4: if (c>= 0 && c<= 9 ) return 4; else return 5; // break; case 5: return -1; // estao final break; efault: // error interno Procesamiento e Lenguajes Tema 2: Análisis léxico 15 / 21 Representación e los tokens public class Token { public int fila; public int columna; public String lexema; public int tipo; // tipo es: ID, ENTERO, REAL public static final int ID = 1, ENTERO = 2, REAL = 3,... FINFICHERO =...; Procesamiento e Lenguajes Tema 2: Análisis léxico 16 / 21
9 Ejercicio 1 Diseña un iagrama e transiciones (DT) para reconocer los siguientes componentes léxicos: numentero un número entero sin signo con ígitos entre 0 y 9, que no puee empezar por 0 numoctal un número entero en octal, que empieza por 0 y con ígitos entre 0 y 7 (p.ej. 015 es 13) numhex un número entero en hexaecimal, que empieza por 0x y con ígitos entre 0 y 9, y letras entre la A y la F (mayúsculas siempre) i ientificaor: secuencia e letras y ígitos que empieza por letra El 0 se ebe consierar que es un número octal. A continuación, inica cómo un analizaor léxico construio sobre el DT anterior separaría en tokens la secuencia e caracteres x xAF 0x9AGF 0xaF. Procesamiento e Lenguajes Tema 2: Análisis léxico 17 / 21 Ejercicio 2 Diseña un iagrama e transiciones para reconocer los siguientes componentes léxicos: if ifthen iftrue oftrue ient la palabra reservaa if la palabra reservaa ifthen la palabra reservaa iftrue la palabra reservaa oftrue cualquier secuencia e letras y ígitos que empiece por una letra y no coincia con ninguna e las palabras reservaas mulop el símbolo / assop el símbolo = mulassop el símbolo /= aassop el símbolo += ientico el símbolo /==/ Inica cómo separa este analizaor la secuencia e caracteres if5true/==/iftrue+=true/==false en tokens. Procesamiento e Lenguajes Tema 2: Análisis léxico 18 / 21
10 Ejercicio 3 Diseña un iagrama e transiciones para reconocer los siguientes componentes léxicos: numentero un número entero sin signo con uno o más ígitos entre 0 y 9 numexpo un número que tiene uno o más ígitos, una E seguia e un signo + o - opcional, y que acaba con una secuencia e uno o más ígitos. Ejemplos: 1E1, 112E+112 i min mon ientificaor: secuencia e letras y ígitos que empieza por letra la palabra reservaa min la palabra reservaa mon osp el símbolo : igual el símbolo = asig el símbolo := equiv el símbolo :==: A continuación, inica cómo un analizaor léxico construio sobre el iagrama e transiciones anterior separaría en tokens la secuencia e caracteres 09 :==mono 12E E+3a3E27. Procesamiento e Lenguajes Tema 2: Análisis léxico 19 / 21 Ejercicio 4 Diseña un iagrama e transiciones para reconocer los siguientes componentes léxicos: numentero un número entero sin signo con uno o más ígitos entre 0 y 9 numfija un número que tiene cero o más ígitos, un punto, y una secuencia e uno o más ígitos. Ejemplos:.233, 1.1, i ientificaor: secuencia e letras y ígitos que empieza por letra el la palabra reservaa el elete la palabra reservaa elete postec el símbolo -- flecha el símbolo --> mayor el símbolo > Procesamiento e Lenguajes Tema 2: Análisis léxico 20 / 21
11 Ejercicio 5 Diseña un iagrama e transiciones para reconocer los siguientes componentes léxicos: EXPRESIÓN ELEMENTO REGULAR LÉXICO <> istinto < menor > mayor + opsuma - opsuma ++ incremento -- ecremento -> esref ---> obleref := asig Procesamiento e Lenguajes Tema 2: Análisis léxico 21 / 21
Tema 2: Análisis léxico
Tema 2: Análisis léxico Procesamiento e Lenguajes Dept. e Lenguajes y Sistemas Informáticos Universia e Alicante Procesamiento e Lenguajes Tema 2: Análisis léxico 1 / 22 Funamentos el análisis léxico El
Más detallesTema 2: Análisis léxico
Tema 2: Análisis léxico Procesamiento de Lenguajes Dept. de Lenguajes y Sistemas Informáticos Universidad de Alicante Procesamiento de Lenguajes Tema 2: Análisis léxico 1 / 21 Fundamentos del análisis
Más detallesTema 2: Análisis léxico
Tema 2: Análisis léxico Procesamiento de Lenguajes Dept. de Lenguajes y Sistemas Informáticos Universidad de Alicante Procesamiento de Lenguajes Tema 2: Análisis léxico 1 / 22 Fundamentos del análisis
Más detallesFuncionamiento del A.L.
ANALIZADOR LEXICO 1 Funcionamiento del A.L. Programa fuente Analizador léxico Componente léxico Obtén el siguiente componente léxico Analizador sintáctico Tabla de símbolos 2 Maneja el fichero del programa
Más 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 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 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 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 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 detallesCentro Asociado Palma de Mallorca. Antonio Rivero Cuesta
Centro Asociado Palma de Mallorca Antonio Rivero Cuesta La Sintaxis de Java I... 5 Tipos de datos... 6 Tipos de datos simples... 7 Operadores... 11 Operadores Aritméticos... 12 Operadores relacionales...
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 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN
Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN - Introducción - Sintaxis - Semántica básica - Tipos de datos - Expresiones y enunciados - Procedimientos y ambientes - Tipos abstractos de datos y módulos
Más detallesSintaxis de C Ing. Jose Maria Sola Dr. Oscar Ricardo Bruno
1.1. Gramática Léxica 1.1.1. Elementos Léxicos Sintaxis de C Ing. Jose Maria Sola Dr. Oscar Ricardo Bruno ->
Más 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 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 detallesLex. Lex. Ing. Adrian Ulises Mercado Martínez. Enero 30, Ing. Adrian Ulises Mercado Martínez Lex Enero 30, / 27
Lex Ing. Adrian Ulises Mercado Martínez Enero 30, 2015 Ing. Adrian Ulises Mercado Martínez Lex Enero 30, 2015 1 / 27 1 Lex 2 Compilar con lex 3 Estructura de un programa en lex 4 Expresiones Regulares
Más detallesPROCESADORES 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 detallesEl 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 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 detallesSebastián García Galán
Universidad de Jaén E.U.P. Linares Dpto. Telecomunicaciones Área de Ingeniería Telemática Sebastián García Galán sgalan@ujaen.es Variables y tipos de datos Operaciones y operadores Clases y objetos Tipos
Más detallesVariables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.
Variables Una variable no es más que un nombre simbólico que identifica una dirección de memoria: Suma el contenido de la posición 3001 y la 3002 y lo almacenas en la posición 3003 vs. total = cantidad1
Más detallesProcesamiento de Lenguajes (PL) Curso 2015/2016. Práctica 5: traductor a código m2r
Procesamiento de Lenguajes (PL) Curso 2015/2016 Práctica 5: traductor a código m2r Fecha y método de entrega La práctica debe realizarse de forma individual o por parejas 1, y debe entregarse a través
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 detallesCompiladores 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 detallesProcesadores 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 detallesCentro Asociado Palma de Mallorca. Antonio Rivero Cuesta
Centro Asociado Palma de Mallorca Antonio Rivero Cuesta La Sintaxis de Java II... 6 Estructuras de control... 7 Estructuras de selección... 8 Sentencia if... 9 Sentencia if - else... 12 Operador condicional...
Más detalles8- LEX-Expresiones regulares
8- LEX-Expresiones regulares Objetivos: Utilizar la herramienta KEX para trabajar con expresiones regulares Recursos: Maquina virtual Linux distribución Bodhi LXterminal y FLEX Introducción Flex le permite
Más detallesProcesadores 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 detallesElementos 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 detallesCompiladores e Intérpretes Análisis Léxico
1 Compiladores e Intérpretes Análisis Léxico Sebastian Gottifredi 2017 Organizacion Esquema General de Análisis Léxico Tokens Especificando Tokens Expresiones Regulares Reconociendo Tokens Autómatas Finitos
Más detallesConstrucciones del Lenguaje Java
Construcciones del Lenguaje Java Autor: Juan Alberto López Cavallotti Versión de Java: 5 / 6 Comentarios Comentario de Línea Comentario Multilínea //Esto es un comentario. /* Esto comenta varias lineas.
Más detallesCaracterísticas de JavaScript
Características de JavaScript Qué es JavaScript? o Lenguaje de programación interpretado utilizado fundamentalmente para dotar de comportamiento dinámico a las páginas web. o Cualquier navegador web actual
Más detallesInstituto Tecnológico de Celaya
ELEMENTOS BÁSICOS DE C++: DECLARACIÓN DE VARIABLES A través de operaciones aritméticas (suma, resta, etc.) y lógicas (por ejemplo, comparaciones) los programas manipulan datos tales como números y caracteres.
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 detallesIntroducción. El proceso de traducción
Toda compilación es un proceso de transformación paulatina que convierte un programa escrito en un lenguaje fuente de alto nivel en otro programa escrito en un lenguaje objeto de bajo nivel. Ese proceso
Más detalles3.3 Conceptos Básicos del Lenguaje Java
3.3 Conceptos Básicos del Lenguaje Java Conjunto de Caracteres Java utiliza Unicode, un conjunto de caracteres de 16 bits Java permite leer ASCII de 7-bit o Latin-1, conviertiéndolo a Unicode Son pocos
Más detallesProgramación Estructurada
Programación Estructurada PROGRAMACIÓN ESTRUCTURADA 1 Sesión No. 2 Nombre: El lenguaje de programación C Contextualización Una constante en todos los lenguajes de programación (viejos y nuevos) es la implementación
Más detallesLEX. 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 detallesCompiladores e Intérpretes Proyecto N 1 Sintaxis de MiniJava Segundo Cuatrimestre de 2015
Departamento de Cs. e Ingeniería de la Computación Universidad Nacional del Sur Compiladores e Intérpretes Proyecto N 1 Sintaxis de MiniJava Segundo Cuatrimestre de 2015 1. Introducción Este documento
Más detallesANÁLISIS LÉXICO CONCEPTOS BÁSICOS DEL ANÁLISIS LÉXICO
Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público
Más 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 detallesAnálisis semántico. Análisis semántico. Índice (I)
Análisis semántico Índice (I) Marina de la Cruz Alfonso Ortega Objetivo del análisis semántico Decisiones para la construcción de un analizador semántico Análisis semántico con Bison Nivel de indirección
Más detallesJava. Introducción a la Programación Orientada a Objetos
Java Java es un lenguaje de programación presentado en 1995 enfocado a: soportar los fundamentos de la programación orientada a objetos. generar código independiente de la arquitectura de la computadora
Más detallesLex (flex,... ) Generación de analizador léxico p.1
Generación de analizador léxico Lex (flex... ) Generación de analizador léxico p.1 Expresiones regulares tipo grep Expresiones simples (un sólo carácter): carácter carácter. cualquier carácter (excepto
Más detallesGENERACIÓN DE CÓDIGO INTERMEDIO EJEMPLOS PARA DISTINTAS ESTRUCTURAS DE DATOS
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 detallesIntroducción al lenguaje C
Introducción al lenguaje C Ampliación de Informática Belarmino Pulido Junquera Índice 1. Presentación del lenguaje C 2. Estructura de un programa en C 3. Tipos de datos escalares 4. Operadores básicos
Más detallesINTRODUCCIÓN AL PROCESO DE COMPILACIÓN
INTRODUCCIÓN AL PROCESO DE COMPILACIÓN El programa que se debe compilar es una secuencia de caracteres que termina con un centinela. CONCEPTOS BÁSICOS Un compilador es un complejo programa que lee un programa
Más detallesIntroducción a ANTLR. Procesadores de Lenguaje. 1 de 25
Introducción a ANTLR Procesadores de Lenguaje 1 de 25 Introducción a ANTLR Qué es ANTLR? ANother Tool for Language Recognition Herramienta para construir traductores entre lenguajes informáticos Genera
Más detallesPROGRAMACIÓN EN JAVA. { una línea para definir, crear o ejecutar ; }
PROGRAMACIÓN EN JAVA { una línea para definir, crear o ejecutar ; } JFC Y API SPECIFICATIONS OBJECT INTERFACE ABSTRACT IMPLEMENTS EXTENDS NEW EXTENDS (Hasta que una clase derivada deje de ser ABSTRACT)
Más detallesTema 2. Análisis léxico
Departamento de Tecnologías de la Información Tema 2 Análisis léxico Ciencias de la Computación e Inteligencia Artificial Índice 2.1 Introducción 2.2 Especificación de categorías léxicas 2.3 Autómatas
Más detallesBloque II. Elementos del lenguaje de programación Java
Bloque II. Elementos del lenguaje de programación Java 1.Introducción a los lenguajes de programación 2. Estructura de un programa 3. Datos y expresiones simples 4. Instrucciones de control 5. Entrada/salida
Más detallesIntroducción a los compiladores
Introducción a los compiladores William Cruz-Santos wdelacruzd@uaemex.mx Ingeniería en Computación Universidad Autónoma del Estado de México Unidad de Competencia I 2 de octubre de 2015 William Cruz-Santos
Más detallesTEMA 2: ANÁLISIS LÉXICO-SINTÁCTICO
1 TEMA 2: ANÁLISIS LÉXICO-SINTÁCTICO OBJETIVO Dar respuesta a las siguientes preguntas: Qué es el análisis léxico-sintáctico de un lenguaje? Cómo se diseña y construye un analizador léxico-sintáctico?
Más detallesControla 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 detallesTipos de Datos en C. Palabras reservadas en C
Tipos de Datos en C Tipo Tamaño de bits Rango char 8-128 a 127 unsigned char 8 0 a 255 signed char 8-128 a 127 int 16 32768 a 32767 unsigned int 16 0 a 65535 signed int 16 Igual que int short int 16 Igual
Más detallesVARIABLES, CONSTANTES Y EXPRESIONES ASIGNACIÓN. TIPOS ELEMENTALES. PRECEDENCIA DE LOS ESTRUCTURAS DE CONTROL. CONDICIONAL E
Java Java es un lenguaje de programación presentado en 1995 enfocado a: soportar los fundamentos de la programación orientada a objetos. generar código independiente de la arquitectura de la computadora
Más detallesTema 2. El lenguaje de programación Java (Parte 1)
Programación en Java Tema 2. El lenguaje de programación Java (Parte 1) Luis Rodríguez Baena Facultad de Informática Elementos del lenguaje (I) El juego de caracteres. No utiliza ASCII, sino Unicode de
Más detallesCURSO : ESTRUCTURA DE DATOS DOCENTE : ING. JUAN ZEVALLOS VALLE
CURSO : ESTRUCTURA DE DATOS DOCENTE : ING. JUAN ZEVALLOS VALLE 1 Estructura de Datos 1. Logica de Programación 2. Uso de Algoritmos usando Lenguaje Java 3. Ingreso de datos 4. Sentencias de Control 1.
Más detallesIntroducción a C# y la plataforma.net. Pablo Zaidenvoren 2013
Introducción a y la plataforma.net Pablo Zaidenvoren 2013 Plataforma.NET Una plataforma -> Muchos lenguajes Posibilidad de compartir funcionalidades entre ellos! Plataforma.NET Base Class Library -> Funcionalidades
Más detallesLENGUAJE. Tema 2 Elementos de un programa
LENGUAJE Tema 2 Elementos de un programa ELEMENTOS DE UN PROGRAMA Comentarios. Identificadores. Constantes. Variables. Operadores. Sentencias o instrucciones. COMENTARIOS Los comentarios en C pueden ocupar
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 detallesIntroducción a Java 10/02/2011. Tokens. Juan Manuel Fernández Peña Curso Rev Tokens. Tokens
Introducción a Java Juan Manuel Fernández Peña Curso 2005. Rev 2011 Comentarios: //comentario /* comentario fin de comentario */ /** comentario para javadoc fin */ Palabras reservadas: (como ejemplo) abstract,
Más detallesEstructura de datos y Programación
Estructura de datos y Programación Tema: Conceptos Básicos- Estructuras de control - Arreglos Ing. Analia Méndez Ing. Raquel Zarco Año: 2012 ELEMENTOS DE UN PROGRAMA EN JAVA El programa Java consta de
Más detallesDIAGRAMAS DE TRANSICIONES
1 UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA DEPARTAMENTO DE COMPUTACIÓN DIAGRAMAS DE TRANSICIONES Elaborado el Lunes 06 de Septiembre de 2004 I.- INTRODUCCIÓN (extraído de Compiladores: Principios,
Más 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 detallesComprender las diferencias entre tipos de datos primitivos similares, y aprender a elegir el tipo más conveniente en cada caso.
Elementos básicos de programación en Java Objetivos del tema Conocer la estructura básica de un programa Java. Comprender los conceptos de tipo, valor y variable. Comprender las diferencias entre tipos
Más detallesQué es Java? Un lenguaje de programación Un entorno de desarrollo Un entorno de aplicación Un entorno de despliegue Es similar en sintaxis de C + +.
APUNTES DE JAVA Agenda Bienvenida Conociendo Java La Maquina Virtual Descargar e instalar el compilador El entorno de trabajo El paradigma de la programación orientada a objetos Qué es Java? Un lenguaje
Más detallesLecció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/* Compilador del Lenguaje Micro (Fischer) */ #include <stdio.h> #include <string.h> #include <ctype.h>
1 /* Compilador del Lenguaje Micro (Fischer) */ #include #include #include #define NUMESTADOS 15 #define NUMCOLS 13 #define TAMLEX 32+1 #define TAMNOM 20+1 /******************Declaraciones
Más detallesEstructuras de Datos Declaraciones Tipos de Datos
Departamento de Informática Universidad Técnica Federico Santa María Estructuras de Datos Declaraciones Tipos de Datos Temas: 2-3-4 IWI-131, paralelo 01 Profesor: Teddy Alfaro O. Lenguaje de Programación
Más detallesEstructuras de control selectivas
Práctica 3 Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 2.0.2 Concepto de sentencia y estructura de control El cuerpo de los métodos
Más detallesIntroducción al lenguaje C
Introducción al lenguaje C Programación 2 Instituto de Computación, Facultad de Ingeniería, Universidad de la República, Uruguay 2 de marzo de 2016 Programación 2 Introducción al lenguaje C 2 de marzo
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 detallesIntroducción a C# y la plataforma.net
Introducción a y la plataforma.net Matías Malbergier 2013 Plataforma.NET.NET provee un set de herramientas (Framework) el cual permite desarrollar programas apuntando a múltiples plataformas y utilizando
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 detallesPROCESADORES DE LENGUAJES
PROCESADORES DE LENGUAJES Análisis léxico con Prof. Dr. Nicolás Luis Fernández García Departamento de Informática y Análisis Numérico Escuela Politécnica Superior Universidad de Córdoba Universidad de
Más detallesINTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA
APUNTES DE JAVA FUNCIONAMIENTO DE UN PROGRAMA Assembler Ensamblador Ejecuta Programador Programa fuente BASIC Interprete Ejecuta C, C++, Pascal Compilador Compila Ejecuta Programa fuente Programa Objeto
Más detallesIntroducción a Java (II) Dr. (c) Noé Alejandro Castro Sánchez
Introducción a Java (II) Dr. (c) Noé Alejandro Castro Sánchez Sintaxis de Java Sintaxis Define las reglas que determinar el uso de palabras clave, operadores y variables para construir y evaluar expresiones.
Más detalles/**********************Prototipos de ciones************************/ TOKEN scanner(); int columna(int c);
/* Compilador del Lenguaje Micro (Fischer) */ #include #include #include #define NUMESTADOS 15 #define NUMCOLS 13 #define TAMLEX 32+1 #define TAMNOM 20+1 /******************Declaraciones
Más detallesExamen escrito de Programación 1
Examen escrito de Programación 1 Escuela de Ingeniería y Arquitectura Departamento de Informática e Ingeniería de Sistemas 31 de agosto de 2012 Disponer sobre la mesa en lugar visible un documento de identificación
Más detallesElementos 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 detallesCarlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas
2 - Introducción al lenguaje Java, identificadores y comentarios. Carlos Montenegro Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas 1. Introducción: Java tiene como todos
Más detallesIntroducción al lenguaje C
Introducción al lenguaje C Programación 2 Profesorado de Informática CeRP del Suroeste, Colonia, Uruguay 15 de marzo de 2016 Programación 2 Introducción al lenguaje C 15 de marzo de 2016 1 / 34 Objetivos
Más detallesPRINCIPIOS DE PROGRAMACIÓN. Mtro. en Ingeniería de Software. Especialidad en e-commerce Ismael Jiménez Hernández
PRINCIPIOS DE PROGRAMACIÓN Mtro. en Ingeniería de Software. Especialidad en e-commerce Ismael Jiménez Hernández Consideraciones Generales Instructor: Ismael Jiménez Hernández Duración: 3.2 horas/semana
Más detallesPROGRAMACIÓN EN JAVA
1. INTRODUCCIÓN A LA PROGRAMACIÓN 1.1. Datos, algoritmos y programas 1.1.1. Definición de algoritmo 1.1.2. Datos 1.1.3. Características de un programa 1.2. Paradigmas de programación 1.2.1. Programación
Más detallesUNIVERSIDAD DE SEVILLA PRÁCTICAS DE LABORATORIO ANÁLISIS SINTÁCTICO (1) LENGUAJES FORMALES Y AUTÓMATAS CURSO 2006/2007
UNIVERSIDAD DE SEVILLA E. T. S. INGENIERÍA INFORMÁTICA LENGUAJES Y SISTEMAS INFORMÁTICOS PRÁCTICAS DE LABORATORIO ANÁLISIS SINTÁCTICO (1) LENGUAJES FORMALES Y AUTÓMATAS CURSO 2006/2007 Qué es el análisis
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 detallesAnalizador Léxico en ANSI C
Compiladores 1 Argueta Cortes Jairo I. Universidad Nacional Autónoma de México Facultad de Ingeniería Compiladores Grupo 1 en ANSI C ALUMNOS: ARGUETA CORTES JAIRO I. MENDOZA GAYTAN JOSE TRINIDAD PROFESORA:
Más detallesAnálisis léxico. Formalización y desarrollo. Procesadores de Lenguajes. Ingeniería Técnica superior de Ingeniería Informática
Procesadores de Lenguajes Ingeniería Técnica superior de Ingeniería Informática Departamento de Lenguajes y Sistemas informáticos Análisis léxico Formalización y desarrollo Javier Vélez Reyes jvelez@lsi.uned.es
Más detallesFundamentos de Programación. Flujo de Control I: Estructuras selectivas
Fundamentos de Programación Flujo de Control I: Estructuras selectivas El Flujo de Control de un Programa Un algoritmo puede ser construido utilizando combinaciones de tres estructuras de control de flujo
Más detallesINDICE Prologo 1 Recorrido rápido de java 2 Clases y objetos 3 Extensión de clases
INDICE Prologo XIII 1 Recorrido rápido de java 1.1. Para empezar 1 1.2. Variables 2 1.3. Comentarios en el condigo 1.4. Constantes con nombre 5 1.4.1. Caracteres Unicode 6 1.5. Flujo de control 7 1.6.
Más detallesDiagrama de transiciones del autómata. Tabla de transiciones
Universidad Nacional Autónoma de México Facultad de Ingeniería Compiladores Grupo 4, Semestre 2016-1 Analizador Léxico en C Diagrama de transiciones del autómata letra letra 1 0 3 e 4 5 6 e 2 espacio Tabla
Más detallesTeoría de Autómatas y Lenguajes Formales, IS17 Ingeniería Técnica en Informática de Sistemas. Práctica 1: Introducción al Analizador Léxico FLEX
Teoría de Autómatas y Lenguajes Formales, IS17 Ingeniería Técnica en Informática de Sistemas Práctica 1: Introducción al Analizador Léxico FLEX Enunciado: El objetivo de esta práctica consiste en aprender
Más detallesUnidad Didáctica 3. Tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos
Unidad Didáctica 3 Tipos genéricos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Definición de tipo genérico Hablamos de un tipo genérico cuando el tipo en cuestión depende
Más detallesJava para programadores
Java para programadores Java y Servicios Web I Master en Ingeniería Matemática Manuel Montenegro Dpto. Sistemas Informáticos y Computación Desp. 467 (Mat) montenegro@fdi.ucm.es Contenidos Variables. Tipos
Más detallesUbicación e historia
Introducción a Java Ubicación e historia http:// ://java.sun.com/ JDK (Java Development Kit) JDK 1.0, 1995 JDK 1.1, 1996. Modificación en manejo de eventos; nuevas bibliotecas (reflexión, métodos remotos,...)
Más detallesabril de 2017 Desarrollo de aplicaciones en Java Tipos de datos primitivos Tipos de datos Elementos de aplicaciones simples
Desarrollo de aplicaciones en Java Generación de código fuente Compilación Ejecución Elementos de aplicaciones simples EII147-01-02 Introducción a las tecnologías de información Escuela de Ingeniería Industrial
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 detallesIntroducción a C# y la plataforma.net. Pablo Zaidenvoren 2010
Introducción a y la plataforma.net Pablo Zaidenvoren 2010 Plataforma.NET.NET provee un set de herramientas (Framework) el cual permite desarrollar programas apuntando a múltiples plataformas y utilizando
Más detallesCOMPILADORES E INTERPRETES
COMPILADORES E INTERPRETES Análisis semántico: Estudia el significado de la sentencia Procesadores de lenguaje: Convierte un programa fuente hecho en un lenguaje fuente a un programa objeto hecho en un
Más detalles