Procesamiento de Lenguajes (PL) Curso 2015/2016. Práctica 5: traductor a código m2r

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

Download "Procesamiento de Lenguajes (PL) Curso 2015/2016. Práctica 5: traductor a código m2r"

Transcripción

1 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 del servidor de prácticas del DLSI antes de las 23:59 del jueves 2 de junio de 2016 (fecha improrrogable). Al servidor de prácticas del DLSI se puede acceder de dos maneras: Desde la web del DLSI ( en el apartado Entrega de prácticas Desde la URL Una vez en el servidor, se debe elegir la asignatura PL y seguir las instrucciones. En el caso de que la práctica la haya realizado una pareja, debe entregarla solamente una de las dos personas de la pareja, y poner en un comentario los nombres y DNIs de los dos componentes de la pareja. Si no aparece dicho comentario se entenderá que la práctica se entrega de forma individual. Descripción de la práctica La práctica 5 consiste en realizar un compilador para el lenguaje fuente que se describe más adelante (un subconjunto de Pascal), que genere código para el lenguaje objeto m2r, utilizando como en la práctica anterior bison y flex. Los fuentes deben llamarse plp5.l y plp5.y. Para compilar la práctica se utilizarán las siguientes órdenes: $ flex plp5.l $ bison -d plp5.y $ g++ -o plp5 plp5.tab.c lex.yy.c El compilador debe diseñarse teniendo en cuenta las siguientes restricciones: 1. En ningún caso se permite que el código objeto se vaya imprimiendo por la salida estándar conforme se realiza el análisis, debe imprimirse al final. 2. Tampoco se permite utilizar ningún buffer o array global para almacenar el código objeto generado, el código objeto que se vaya generando debe circular por los atributos de las variables de la gramática (en memoria dinámica), y al final, en la regla correspondiente al símbolo inicial, se imprimirá por la salida estándar el código objeto; éste debe ser el único momento en que se imprima algo por la salida estándar. Se recomienda utilizar el tipo string para almacenar el código generado. 3. Se aconseja utilizar muy pocas variables globales, especialmente en las acciones semánticas de las reglas; en ese caso siempre es aconsejable utilizar atributos. El uso de variables globales está, en general, reñido con la existencia de estructuras recursivas tales como las expresiones o los bloques de instrucciones. Se pueden utilizar variables globales temporales mientras se usen sea únicamente dentro de una misma acción semántica, sin efectos fuera de ella. Si se produce algún tipo de error, léxico, sintáctico o semántico, el programa enviará un mensaje de error de una sola línea a la salida de error (stderr). Se proporcionará una función msgerror que se encargará de generar los mensajes de error correctos, a la que se debe pasar la fila, la columna y el lexema del token más relacionado con el error; en el caso de los errores léxicos y sintácticos, el lexema será la cadena yytext que proporciona el analizador léxico. 1 Una pareja está compuesta por exactamente dos personas, no tres, ni cuatro,...

2 PL, 2015/ Especificación sintáctica La sintaxis del lenguaje fuente puede ser representada por la siguiente gramática: S program id pyc BDecl Bloque punto Bloque begin SeqInstr end BDecl ɛ BDecl BlVar BDecl BlVar var Decl pyc Decl Decl pyc DVar Decl DVar DVar LIdent dosp Tipo TipoSimple integer TipoSimple real TipoSimple char TipoSimple boolean Tipo TipoSimple Tipo array lcor nint ptopto nint rcor of Tipo LIdent LIdent coma id LIdent id SeqInstr SeqInstr pyc Instr SeqInstr Instr Instr Bloque Instr Ref assop Expr Instr wri lpar LExpr rpar LExpr LExpr coma Expr LExpr Expr Instr read lpar LRef rpar LRef LRef coma Ref LRef Ref Instr if Expr then Instr Instr if Expr then Instr else Instr Instr while Expr do Instr Expr Esimple relop Esimple Expr Esimple Esimple Esimple addop Term Esimple Esimple obool Term Esimple Term Esimple addop Term Term Term mulop Factor Term Term ybool Factor Term Factor Factor Ref Factor nint Factor nfix Factor ctechar Factor ctebool Factor nobool Factor Factor lpar Expr rpar Factor chr lpar Esimple rpar Factor ord lpar Esimple rpar Factor trunc lpar Esimple rpar Ref id Ref id lcor LisExpr rcor LisExpr LisExpr coma Expr LisExpr Expr

3 PL, 2015/ Especificación léxica Notas: Expresión Componente Valor léxico regular léxico entregado [ \n\t]+ (ninguno) program program (palabra reservada) begin begin (palabra reservada) end end (palabra reservada) var var (palabra reservada) boolean boolean (palabra reservada) integer integer (palabra reservada) real real (palabra reservada) char char (palabra reservada) writeln wri (palabra reservada) write wri (palabra reservada) read read (palabra reservada) if if (palabra reservada) then then (palabra reservada) else else (palabra reservada) while while (palabra reservada) do do (palabra reservada) and ybool (palabra reservada) or obool (palabra reservada) div mulop (palabra reservada) mod mulop (palabra reservada) true ctebool (palabra reservada) false ctebool (palabra reservada) not nobool (palabra reservada) chr chr (palabra reservada) ord ord (palabra reservada) trunc trunc (palabra reservada) array array (palabra reservada) of of (palabra reservada) [A-Za-z][0-9A-Za-z]* id (nombre del ident.) [0-9]+ nint (valor numérico) ([0-9]+)"."([0-9]+) nfix (valor numérico) Cualquier carácter imprimible entre dos ctechar (código ASCII), coma ; pyc. punto : dosp ( lpar ) rpar = relop = <> relop <> < relop < <= relop <= > relop > >= relop >= + addop + - addop - * mulop * / mulop / := assop [ lcor ] rcor.. ptopto 1. En Pascal (y en este lenguaje), al contrario que en C, no se distingue entre letras mayúsculas y minúsculas. Por tanto, BeGiN, begin y BegiN son sólo algunas de las posibles formas de escribir la palabra reservada begin ; lo mismo sucede con el resto de palabras reservadas que aparecen en la especificación léxica 2. Además, lo mismo sucede con los identificadores de variables: es posible referirse a una variable utilizando indistintamente letras mayúsculas o minúsculas, por lo que por ejemplo la variable pep se puede escribir también como Pep, PEP o pep, aunque no es recomendable. 2. Las constantes de tipo char estarán formadas por una comilla simple, un carácter cuyo código ASCII sea superior al 32 (el espacio en blanco) y otra comilla simple. Además, si el carácter es una barra invertida \, se deben permitir 2 Existe una regla no escrita (y por tanto no obligatoria) que dice que todas las palabras reservadas en un programa en Pascal deberían estar escritas en mayúsculas.

4 PL, 2015/ las siguientes secuencias especiales: \n, \0 y \\. En estos casos, los códigos ASCCI serán 10, 0 y 92, respectivamente. Si aparece cualquier otro carácter después de la barra invertida se producirá un error léxico. 3. El analizador léxico debe ignorar los comentarios, que en esta práctica empiezan con la secuencia de caracteres (* y terminan con la secuencia *). Un comentario puede ocupar varias líneas y no se permiten los comentarios anidados. 4. El terminal ptopto esta formado por dos puntos que deben ir seguidos, sin ningún carácter entre ellos. Especificación semántica Las reglas semánticas que debe cumplir este lenguaje son las siguientes 3 : Declaración de variables No es posible declarar dos veces un símbolo en el mismo ámbito con el mismo nombre, aunque sea con el mismo tipo (recuérdese que no se debe distinguir entre mayúsculas y minúsculas). El identificador que aparece después de la palabra reservada program no se debe almacenar en la tabla de símbolos. No es posible utilizar una variable o función sin haberla declarado previamente. Si al declarar una variable el espacio ocupado por ésta sobrepasa el tamaño máximo de memoria para variables (siempre inferior a 16384, que es el tamaño de la memoria de la máquina virtual), el compilador debe producir un mensaje de error indicando el lexema exacto de la variable que ya no cabe en memoria. Instrucciones Asignación: en esta instrucción tanto la referencia que aparece a la izquierda del operador := como la expresión de la derecha deben ser del mismo tipo. Solamente hay una excepción a esta regla, y consiste en que está permitida también la asignación cuando la referencia es real y la expresión es entera. Asimismo, cuando en el cuerpo de una función se asigna un valor a un identificador que coincide con el nombre de la función, ese valor debe ser el que devuelva la función cuando termine (salvo que aparezca otra asignación similar, evidentemente). Lectura y escritura: aunque en Pascal existe otra instrucción para lectura ( readln ) y es posible especificar el formato en las instrucciones de escritura, en esta práctica solamente está permitida una sentencia de lectura, read, y dos sentencias de escritura, write y writeln, que se diferencian únicamente en que la segunda escribe un carácter de nueva línea (un \n de C) después de haber escrito todas las expresiones. Control de flujo: las instrucciones if y while tienen una semántica similar a la de C, con la única excepción de que se exige que el tipo de la expresión sea booleano; en caso contrario, se debe producir un error semántico. Expresiones Precedencia de operadores: la siguiente tabla muestra los operadores de este lenguaje ordenados de menor a mayor precedencia (todos aquellos que aparecen en la misma fila tiene la misma precedencia): Operadores = <> > >= < <= + - or * / div mod and not La gramática de la especificación sintáctica refleja esta tabla de precedencias, por lo que no es en absoluto aconsejable modificarla (al menos las reglas de las expresiones). Operadores booleanos: los operadores or, and y not son equivalentes a los operadores, && y! de C, con la restricción de que en este lenguaje los operandos deben ser booleanos (en C no existe esa restricción porque no existe el tipo booleano). Además, debe tenerse en cuenta la precedencia de los operadores al construirse una expresión booleana: la expresión en C 2<3 && 3<4 se debe escribir en este lenguaje como (2<3) and (3<4), ya que los operadores relacionales tienen menor precedencia que el operador and. 3 Para aquellos aspectos que no estén contemplados en esta especificación semántica se debe seguir la semántica de Pascal. Si es necesario, en la página web de la asignatura se publicarán aclaraciones o correcciones sobre este enunciado.

5 PL, 2015/ Operadores relacionales: son equivalentes a los de C, excepto el operador de igualdad = (equivalente al == de C) y el de desigualdad <> (equivalente a!= ). Estos operadores permiten comparar valores numéricos (enteros o reales) entre sí, y también valores de tipo carácter entre sí (en cuyo caso se utiliza el código ASCII correspondiente) y también valores booleanos entre sí (en cuyo caso se considera que false es menor que true ). No se permite comparar valores de distinto tipo (excepto valores enteros y reales, por supuesto). Operadores aritméticos: solamente pueden utilizarse con valores enteros o reales. Los operadores de suma +, resta - y producto * son similares a los de C. En cambio, el operador de división / realiza solamente divisiones reales, independientemente de si los operandos son reales o enteros. Para realizar una división entera se debe utilizar el operador div, en cuyo caso ambos operandos deben ser enteros. Además, es posible obtener el módulo de una división entera con el operando mod, que también exige que los operandos sean enteros. Funciones predefinidas En esta práctica se deben implementar las siguientes funciones predefinidas: chr Esta función admite un argumento de tipo entero y devuelve el carácter cuyo código ASCII está representado por los 8 bits más bajos del valor entero. ord Esta función admite enteros, caracteres o booleanos. Si el argumento es entero, simplemente devuelve el mismo valor; si el argumento es carácter, devuelve el código ASCII del carácter; finalmente, si el argumento es booleano, devuelve un 1 para true y un 0 para false. trunc Esta función admite un argumento numérico (real o entero) y devuelve un entero que es la parte entera del argumento. Declaración de arrays En la declaración de un array, el segundo número que aparece en el rango entre corchetes debe ser mayor o igual que el primero. Debe tenerse en cuenta que ambos valores son válidos como índices (al contrario que en C, que no incluye el valor que aparece entre corchetes en el rango de valores posibles de los índices del array). Al declarar una variable de tipo array es posible que se agote la memoria disponible en la máquina objeto, por lo que debe producirse un error semántico. En ningún caso está permitido que se reserve más memoria que la que sea imprescindible para un array. Acceso a componentes de arrays En este lenguaje no es posible hacer referencia a una componente de un array sin poner tantos índices como sean necesarios según la declaración de la variable. Tanto si faltan como si sobran índices se debe producir un error semántico (lo antes posible, especialmente cuando sobran índices). De esta manera, el no terminal Ref debe devolver un tipo básico (entero, real, caracter o booleano) al resto del compilador. No está permitido poner corchetes (índices) a una variable que no sea de tipo array. El índice de un array debe ser de tipo entero; en caso contrario, se debe producir un error. Se debe recordar que es posible utilizar referencias a arrays en la parte izquierda de una asignación, en una sentencia de lectura y en una expresión. En los dos primeros casos el código que se debe generar es similar, y es ligeramente distinto del tercer caso.

Procesamiento de Lenguajes (PL) Curso 2014/2015. Práctica 1: analizador descendente recursivo

Procesamiento de Lenguajes (PL) Curso 2014/2015. Práctica 1: analizador descendente recursivo Procesamiento de Lenguajes (PL) Curso 2014/2015 Práctica 1: analizador descendente recursivo Fecha y método de entrega La práctica debe realizarse de forma individual, como las demás prácticas de la asignatura,

Más detalles

Tipos y Estructuras de Control. Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR

Tipos y Estructuras de Control. Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR Tipos y Estructuras de Control Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR Datos: variables y constantes Tipos básicos: entero, real, char, lógico Estructuras de control

Más detalles

Apunte Laboratorio ALPI - El lenguaje de programación Pascal

Apunte Laboratorio ALPI - El lenguaje de programación Pascal Apunte Laboratorio ALPI - El lenguaje de programación Pascal 1 2 ÍNDICE GENERAL Índice 1. Estructura de un Programa en Pascal 3 2. Sintaxis de Pascal 4 2.1. Uso de mayúsculas.....................................

Más detalles

Tema 2: Análisis léxico

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

Más detalles

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

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

Más detalles

Tema 2: Análisis léxico

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

Más detalles

PRÁCTICA DE PROCESADORES DE LENGUAJE EVALUACIÓN ORDINARIA CURSO 2009/2010 OBJETIVO DE LA PRÁCTICA

PRÁCTICA DE PROCESADORES DE LENGUAJE EVALUACIÓN ORDINARIA CURSO 2009/2010 OBJETIVO DE LA PRÁCTICA PRÁCTICA DE PROCESADORES DE LENGUAJE EVALUACIÓN ORDINARIA CURSO 2009/2010 OBJETIVO DE LA PRÁCTICA El objetivo de la práctica es desarrollar un compilador utilizando las herramientas flex y bison y el lenguaje

Más detalles

Manual de turbo pascal

Manual de turbo pascal Universidad Nacional Experimental De Los Llanos Occidentales Ezequiel Zamora UNELLEZ-Barinas Manual de turbo pascal Bachilleres: Martinez Ninibeth C.I:20.867.002 Mora Yaco C.I:17.205.073 Estructura de

Más detalles

Informática General 2016 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales

Informática General 2016 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales UNA / AREA TRANSDEPARTAMENTAL DE ARTES MULTIMEDIALES Licenciatura en Artes Multimediales Informática General 2016 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales JavaScript Algoritmo

Más detalles

LABORATORIO DE PROCESADORES DE LENGUAJE Curso: Práctica 2: Analizador léxico/sintáctico/semántico con Flex y Bison

LABORATORIO DE PROCESADORES DE LENGUAJE Curso: Práctica 2: Analizador léxico/sintáctico/semántico con Flex y Bison 13048- LABORATORIO DE PROCESADORES DE LENGUAJE Curso: 2011-2012 Práctica 2: Analizador léxico/sintáctico/semántico con Flex y Bison Se trata de realizar, mediante el generador de analizadores léxicos FLEX

Más detalles

21/03/2018. Variables y Constantes. Los datos de un programa están representados por variables o constantes y tienen asociado un tipo.

21/03/2018. Variables y Constantes. Los datos de un programa están representados por variables o constantes y tienen asociado un tipo. Variables y Constantes Dra. Jessica Andrea Carballido jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR Los datos de un programa están representados por variables

Más detalles

Fundamentos PHP. El término puntuación nos referimos a la sintaxis usada en PHP para la terminación de una línea de código (;)

Fundamentos PHP. El término puntuación nos referimos a la sintaxis usada en PHP para la terminación de una línea de código (;) Tags Fundamentos PHP La Sintaxis de PHP se deriva de muchos lenguajes de programación principalmente de C pero Perl también ha tenido mucha influencia en esta sintaxis Con las últimas incorporaciones agregadas,

Más detalles

Introducción a la Programación

Introducción a la Programación 0,25 puntos cada pregunta 1. Observa el siguiente esquema de código. Cuándo se ejecuta Instrucción4? IF Condición1 THEN Instrucción1 ELSE IF Condición2 THEN Instrucción2 ELSE IF Condición3 THEN Instrucción3;

Más detalles

El lenguaje C. 1. Identificadores, constantes y variables

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

Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN

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

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

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

Más detalles

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

Resolución de Problemas y Algoritmos

Resolución de Problemas y Algoritmos RESOLUCIÓN DE PROBLEMAS Y ALGORITMOS CLASE Estructura de control condicional. Luciano H. Tamargo http://cs.uns.edu.ar/~lt Depto. de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur,

Más detalles

Compiladores e Intérpretes

Compiladores e Intérpretes 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 2018 1. Introducción Este documento

Más detalles

Procesadores de lenguajes Ingeniería Informática Especialidad de Computación Tercer curso, segundo cuatrimestre

Procesadores de lenguajes Ingeniería Informática Especialidad de Computación Tercer curso, segundo cuatrimestre Procesadores de lenguajes Ingeniería Informática Especialidad de Computación Tercer curso, segundo cuatrimestre Escuela Politécnica Superior de Córdoba Universidad de Córdoba Curso académico: 2016-2017

Más detalles

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

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

Más detalles

Resolución de Problemas y Algoritmos

Resolución de Problemas y Algoritmos RESOLUCIÓN DE PROBLEMAS Y ALGORITMOS CLASE 3 Definición y compatibilidad de tipos de datos. Sentencia condicional CASE. Luciano H. Tamargo http://cs.uns.edu.ar/~lt Depto. de Ciencias e Ingeniería de la

Más detalles

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

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

Más detalles

Informática General 2018 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales

Informática General 2018 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales UNA / AREA TRANSDEPARTAMENTAL DE ARTES MULTIMEDIALES Licenciatura en Artes Multimediales Informática General 2018 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales JavaScript - Programación

Más detalles

El lenguaje de programación JKL

El lenguaje de programación JKL El lenguaje de programación JKL Copyright 2006 JosuKa Díaz Labrador Facultad de Ingeniería, Universidad de Deusto, Bilbao, España Verbatim copying and distribution of this entire article is permitted in

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

Manual de referencia del lenguaje Micro-C

Manual de referencia del lenguaje Micro-C Manual de referencia del lenguaje Micro-C Profesor: Egdares Futch H. Introducción Una parte importante de los cursos de (Ingeniería de Lenguajes de Programación) se centra en la experiencia de escribir

Más detalles

JavaScript Básico. Elementos Básicos: Comentarios: Literales: Valores que puede tomar una variable o una constante.

JavaScript Básico. Elementos Básicos: Comentarios: Literales: Valores que puede tomar una variable o una constante. Javascript (II) 1 Elementos Básicos: Comentarios: Para una línea // Esto es un Comentario Para un bloque /*......... */ Literales: Valores que puede tomar una variable o una constante. Ejemplos: "Soy una

Más detalles

Procesadores de lenguajes Ingeniería Informática Especialidad de Computación Tercer curso, segundo cuatrimestre

Procesadores de lenguajes Ingeniería Informática Especialidad de Computación Tercer curso, segundo cuatrimestre Procesadores de lenguajes Ingeniería Informática Especialidad de Computación Tercer curso, segundo cuatrimestre Escuela Politécnica Superior de Córdoba Universidad de Córdoba Curso académico: 2013-2014

Más detalles

U nidad 6: A rreglos: U nidim ensionales y m ultidim ensionales

U nidad 6: A rreglos: U nidim ensionales y m ultidim ensionales ARREGLOS Introducción Primero que todo, es importante conocer el concepto de estructura de datos. Una estructura de datos es "una colección de datos organizados de un modo particular." Las estructuras

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

PRÁCTICAS DE PROCESADORES DEL LENGUAJE CURSO 2008/2009

PRÁCTICAS DE PROCESADORES DEL LENGUAJE CURSO 2008/2009 PRÁCTICAS DE PROCESADORES DEL LENGUAJE CURSO 2008/2009 PRÁCTICA 2: ANALIZADOR SINTÁCTICO Y TABLA DE SÍMBOLOS. Objetivo de la Práctica Esta práctica tiene como primer objetivo la codificación de un analizador

Más detalles

LABORATORIO DE PROCESADORES DE LENGUAJE Curso: Práctica 2: Analizador léxico/sintáctico/semántico con Flex y Bison

LABORATORIO DE PROCESADORES DE LENGUAJE Curso: Práctica 2: Analizador léxico/sintáctico/semántico con Flex y Bison LABORATORIO DE PROCESADORES DE LENGUAJE Curso: 2008-2009 Práctica 2: Analizador léxico/sintáctico/semántico con Flex y Bison Planteamiento del problema En esta práctica se trata de realizar, mediante el

Más detalles

Repaso Lenguaje C Área de Servicios Programación (Ing. Elect. y Prof. Tec.), Programación I (TUG y TUR) y Electrónica programable (TUE)

Repaso Lenguaje C Área de Servicios Programación (Ing. Elect. y Prof. Tec.), Programación I (TUG y TUR) y Electrónica programable (TUE) Repaso Lenguaje C OBJETOS Variables Constantes Variable: objeto del ambiente cuyo contenido puede cambiar. Constante: objeto cuyo contenido no puede cambiar. Variables: - un nombre que la identifica. Deben

Más detalles

Funcionamiento del A.L.

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

Más detalles

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

Enteros. Son los números que no contienen componentes fraccionarios y, por tanto, no contienen punto decimal.

Enteros. Son los números que no contienen componentes fraccionarios y, por tanto, no contienen punto decimal. LENGUAJE DE PROGRAMACIÓN TURBO PASCAL El lenguaje de programación de alto nivel Pascal fue diseñado el 1968 por Niklaus Wirth con una finalidad eminentemente pedagógica El 1983, el Pascal fue estandarizado

Más detalles

Prácticas de Lenguajes, Gramáticas y Autómatas

Prácticas de Lenguajes, Gramáticas y Autómatas Prácticas de Lenguajes, Gramáticas y Autómatas Cuarto cuatrimestre (primavera) de Ingeniería en Informática Curso 2004-2005 http://webdiis.unizar.es/asignaturas/lga Profesor Responsable: Rubén Béjar Hernández

Más detalles

Características de JavaScript

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

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA

INTRODUCCIó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 detalles

Tema: Introducción a compiladores y MUSIM/0

Tema: Introducción a compiladores y MUSIM/0 Compiladores. Guía 1 1 Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores Tema: Introducción a compiladores y MUSIM/0 Contenido En esta guía se presenta una breve introducción a los conceptos

Más detalles

Principios de Computadoras II

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

Módulo. = Asignación = = Comp. de igualdad!= Com. de desigualdad <= Comp. menor o igual >= Comp. mayor o igual AND lógico OR lógica.

Módulo. = Asignación = = Comp. de igualdad!= Com. de desigualdad <= Comp. menor o igual >= Comp. mayor o igual AND lógico OR lógica. EQUIVALENCIAS BÁSICAS ENTRE PASCAL Y C A continuación se presentan algunas equivalencias básicas entre estos lenguajes de programación : Operadores en lenguaje C: Operador Descripción % Módulo = Asignación

Más detalles

1. Lenguaje Pascal. 2. Módulos de un Programa. 3. Tipos de Datos más utilizados. 4. Declaración de Variables

1. Lenguaje Pascal. 2. Módulos de un Programa. 3. Tipos de Datos más utilizados. 4. Declaración de Variables 1. Lenguaje Pascal Se procederá a la comparación de las estructuras de programación utilizadas en pseudocódigo con las respectivas en lenguaje Pascal. Para ello, se seguirá de manera análoga a la descripción

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 Contents 1 Estructuras de control 2 1.1 Clasificación.............................. 2 1.2 La secuencia..............................

Más detalles

Tema 5: Traducción dirigida por la sintaxis

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

Más detalles

1. ESTRUCTURA DE UN PROGRAMA PASCAL Todo programa escrito en lenguaje Pascal, del más simple al más complejo, tiene la siguiente estructura:

1. ESTRUCTURA DE UN PROGRAMA PASCAL Todo programa escrito en lenguaje Pascal, del más simple al más complejo, tiene la siguiente estructura: 1. ESTRUCTURA DE UN PROGRAMA PASCAL Todo programa escrito en lenguaje Pascal, del más simple al más complejo, tiene la siguiente estructura: PROGRAM Nombre_del_programa; ZONA de DECLARACIONES ZONA de INSTRUCCIONES

Más detalles

Introducción a PL/SQL

Introducción a PL/SQL Introducción a PL/SQL Grupo de Ingeniería del Software y Bases de Datos Departamento de Lenguajes y Sistemas Informáticos Universidad de Sevilla noviembre 2011 Objetivos de este tema Conocer PL/SQL. PL/SQL

Más detalles

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

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

Más detalles

8- LEX-Expresiones regulares

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

Más detalles

UNIVERSIDAD TECNOLÓGICA NACIONAL INGENIERIA EN SISTEMAS. Cátedra: ALGORITMOS Y ESTRUCTURAS DE DATOS UNIDAD Nº 3 DATOS TIPOS DE DATOS

UNIVERSIDAD TECNOLÓGICA NACIONAL INGENIERIA EN SISTEMAS. Cátedra: ALGORITMOS Y ESTRUCTURAS DE DATOS UNIDAD Nº 3 DATOS TIPOS DE DATOS UNIVERSIDAD TECNOLÓGICA NACIONAL INGENIERIA EN SISTEMAS Cátedra: ALGORITMOS Y ESTRUCTURAS DE DATOS UNIDAD Nº 3 DATOS TIPOS DE DATOS PROGRAMA EN PASCAL Ing. Esp. Rosanna M. MAINIERI Ing. Esp. Rosanna M.

Más detalles

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

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

Más detalles

Examen de Procesadores de Lenguaje

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

Más detalles

Definición Es una directiva using que ayuda al compilador a localizar una clase que se usa en la aplicación.

Definición Es una directiva using que ayuda al compilador a localizar una clase que se usa en la aplicación. Capitulo 3 Introducción a las aplicaciones de C# Resumen: Item using System; espacios de nombres: Las palabras clave estilo de mayúsculas/minúsculas Pascal public class Bienvenido1 Definición Es una directiva

Más detalles

Tema 2. El lenguaje JAVA

Tema 2. El lenguaje JAVA Tema 2. El lenguaje JAVA Nomenclatura habitual Variables Tipos de variables Tipos primitivos Referencias Arrays Operadores Operadores de Java Precedencia de operadores Sentencias de control Sentencias

Más detalles

ANÁLISIS DESCENDENTE. Compruébese que la siguiente gramática es LL(1) sin modificarla.

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

Arreglos y Subrangos

Arreglos y Subrangos Arreglos y Subrangos Programación 1 InCo - FING Contents 1 Tipo subrango 2 1.1 Subrangos de enteros......................... 2 1.2 Subrangos de caracteres....................... 2 1.3 Operaciones con subrangos.....................

Más detalles

DESCRIPCIÓN DEL LENGUAJE DE PROGRAMACIÓN P-0

DESCRIPCIÓN DEL LENGUAJE DE PROGRAMACIÓN P-0 DESCRIPCIÓN DEL LENGUAJE DE PROGRAMACIÓN P-0 Este documento define los elementos de programación del lenguaje P-0, basado en un subconjunto del lenguaje de programación Arduino. 1.- PROGRAMA Un programa

Más detalles

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

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

Más detalles

Tema: Introducción a Compiladores y al Lenguaje Micro C

Tema: Introducción a Compiladores y al Lenguaje Micro C Compiladores. Guía 1 1 Tema: Introducción a Compiladores y al Lenguaje Micro C Contenido En esta guía se presenta una breve introducción a los conceptos básicos que se utilizan en el ámbito de los compiladores

Más detalles

Yacc/Bison. Introducción

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

Más detalles

Informática General Cátedra: Valeria Drelichman Pedro Paleo Leonardo Nadel Norma Morales

Informática General Cátedra: Valeria Drelichman Pedro Paleo Leonardo Nadel Norma Morales Informática General 2018 Cátedra: Valeria Drelichman Pedro Paleo Leonardo Nadel Norma Morales Qué es JavaScript? Se trata de un lenguaje de tipo script compacto, basado en objetos y guiado por eventos

Más detalles

Resolución de Problemas y Algoritmos Segundo cuatrimestre 2015 Clase 11: Construcción de primitivas (Funciones)

Resolución de Problemas y Algoritmos Segundo cuatrimestre 2015 Clase 11: Construcción de primitivas (Funciones) Resolución de Problemas y Algoritmos Segundo cuatrimestre 2015 Clase 11: Construcción de primitivas (Funciones) Dr. Sergio A. Gómez http://cs.uns.edu.ar/~sag Departamento de Ciencias e Ingeniería de la

Más detalles

UNIDAD 2 Descripción de un programa

UNIDAD 2 Descripción de un programa Descripción de un programa Estructura general de un programa. Elementos básicos. Tipos de datos simples: enteros, reales y carácter. Representación de datos en memoria. Operaciones sobre tipos de datos

Más detalles

PHP: Lenguaje de programación

PHP: Lenguaje de programación Francisco J. Martín Mateos Carmen Graciani Diaz Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Tipos de datos Enteros Con base decimal: 45, -43 Con base octal: 043, -054

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

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

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

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

Más detalles

GENERACIÓN DE CÓDIGO INTERMEDIO EJEMPLOS PARA DISTINTAS ESTRUCTURAS DE DATOS

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

Tema 1: Introducción

Tema 1: Introducción Tema 1: Introducción Procesamiento de Lenguajes Dept. de Lenguajes y Sistemas Informáticos Universidad de Alicante Procesamiento de Lenguajes Tema 1: Introducción 1 / 28 Definición de compilador Un compilador

Más detalles

INTRODUCCIÓN A LA PROGRAMACIÓN EN FORTRAN. Métodos Numéricos Carlos Zotelo

INTRODUCCIÓN A LA PROGRAMACIÓN EN FORTRAN. Métodos Numéricos Carlos Zotelo INTRODUCCIÓN A LA PROGRAMACIÓN EN FORTRAN Métodos Numéricos 2008 - Carlos Zotelo Introducción a Fortran 77 / 90 1. El lenguaje Fortran 77 / 90 2. Tipos de datos básicos 3. Constantes y variables 4. Entrada

Más detalles

Tema: Análisis Semántico

Tema: Análisis Semántico Compiladores. Guía 7 1 Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores Tema: Análisis Semántico Contenido En esta guía se desarrollará una tabla de símbolos y se asociará al analizador

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

Análisis semántico. Análisis semántico. Índice (I)

Aná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 detalles

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez Elementos de lenguaje: Identificadores Tipos de datos 2 Tipos de datos primitivos 3 Tipos de datos referenciados Clases Interfaces Arrays

Más detalles

Java. Introducción a la Programación Orientada a Objetos

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

FUNDAMENTOS DE PROGRAMACIÓN LABORATORIO SESIÓN 2

FUNDAMENTOS DE PROGRAMACIÓN LABORATORIO SESIÓN 2 FUNDAMENTOS DE PROGRAMACIÓN LABORATORIO SESIÓN 2 EJERCICIO 1 VALIDACIÓN DE DATOS DE ENTRADA Modificar el programa del cálculo del MCD de dos números enteros positivos para validar los datos de entrada

Más detalles

EXAMENES RESUELTOS DE PROGRAMACION I

EXAMENES RESUELTOS DE PROGRAMACION I EXAMENES RESUELTOS DE PROGRAMACION I Comentarios por Jose Antonio Vaqué EXAMEN DE septiembre 1994 Soluciones no oficiales 1.- Cuál de las siguientes sentencias es incorrecta?: VAR A : ARRAY [0..3] OF ARRAY

Más detalles

FUNDAMENTOS DE OBJECT PASCAL

FUNDAMENTOS DE OBJECT PASCAL FUNDAMENTOS DE OBJECT PASCAL 1. ASPECTOS GENERALES DE LA SINTAXIS Los bloques de código quedan delimitados por y end. Se usa punto y coma como separador de sentencias de código. Comentarios: - ias líneas:

Más detalles

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

3. Conceptos elementales de programación 1. léxico. cadenas literales: cualquier cosa dentro de una línea

3. Conceptos elementales de programación 1. léxico. cadenas literales: cualquier cosa dentro de una línea 1 léxico palabras reservadas: array etc. combinaciones reservadas: +, := etc. comentarios (* cualquier cosa *) identificadores: ::= { } identificadores predefinidos:

Más detalles

EXPRESIONES Y OPERADORES

EXPRESIONES Y OPERADORES EXPRESIONES Y OPERADORES Una expresión es un conjunto de operandos y operadores cuyo resultado puede ser evaluado. Las expresiones constituyen la base de cualquier aplicación y se construyen agrupando

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

Dra. Jessica Andrea Carballido

Dra. Jessica Andrea Carballido Dra. Jessica Andrea Carballido jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR Problemas, Algoritmos y Programas PROBLEMA Solución ALGORITMO PROGRAMA Problemas,

Más detalles

TEMA 7. ARRAYS (LISTAS Y TABLAS).

TEMA 7. ARRAYS (LISTAS Y TABLAS). TEMA 7. ARRAYS (LISTAS Y TABLAS). En capítulos anteriores se han descrito las características de los tipos de datos básicos o simples (carácter, entero y coma flotante). Asimismo, se ha aprendido a definir

Más detalles

Laboratorio de Arquitectura de Redes. Punteros en lenguaje C

Laboratorio de Arquitectura de Redes. Punteros en lenguaje C Laboratorio de Arquitectura de Redes Punteros en lenguaje C Punteros en lenguaje C Definición Declaración e inicialización de punteros Operadores de punteros: «*» y «&» Operaciones con punteros Operaciones

Más detalles

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

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

EXAMENES RESUELTOS DE PROGRAMACION I

EXAMENES RESUELTOS DE PROGRAMACION I EXAMENES RESUELTOS DE PROGRAMACION I Comentarios por Jose Antonio Vaqué EXAMEN DE septiembre 1994, Reserva Soluciones no oficiales 1.- Determinar los valores reales válidos en Modula-2: a) 56.2F-54 y 2.2

Más detalles

Dra. Jessica Andrea Carballido

Dra. Jessica Andrea Carballido Dra. Jessica Andrea Carballido jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR Problemas, Algoritmos y Programas PROBLEMA Solución ALGORITMO PROGRAMA Problemas,

Más detalles

FORMATO DEL FICHERO CON LA TABLA DE SÍMBOLOS

FORMATO DEL FICHERO CON LA TABLA DE SÍMBOLOS FORMATO DEL FICHERO CON LA TABLA DE SÍMBOLOS Para la corrección de la Práctica de Procesadores de Lenguajes, y como se indica en la especificación de la misma (http://dlsiisv.fi.upm.es/procesadores/practica.html),

Más detalles

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

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

Más detalles

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

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

Más detalles

DESARROLLO DE LA PRÁCTICA DE ANÁLISIS SINTÁCTICO

DESARROLLO DE LA PRÁCTICA DE ANÁLISIS SINTÁCTICO 1/5 DESARROLLO DE LA PRÁCTICA DE ANÁLISIS SINTÁCTICO CREACIÓN DEL FICHERO ALFA.Y 1. En la sección de definiciones, se incorporan los siguientes elementos: #include para utilizar la función fprintf.

Más detalles

FUNDAMENTOS DE INFORMÁTICA

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