Cantidad de horas semanales:8hs. Anual 1er.Semestre Cátedra: Sintaxis y Semántica de los Lenguajes Departamento: Ingeniería en Sistemas de Información. Nivel: 2ºaño Carrera: Ingeniería en Sistemas de Información Área: Programación Profesores (Titular-Asociado):León, Oscar A. -Brachetta, Mariana Bloque: Tecnologías Básicas Auxiliares (JTP-Ayudantes): Wilkinson, Pablo. Fariello, Mauricio. Monetti, Julio, Vargas, Marcela, Palmieri, Romina Año 2016. 2do.Semestre Cursado: Aydte. ad-honorem: Silvia Castell PROGRAMA Cátedra: SINTAXIS Y SEMÁNTICA DE LOS LENGUAJES 1) OBJETIVOS Objetivo General (Según Plan de Estudios vigente) - Conocer los elementos propios de la sintaxis y semántica de los lenguajes de programación. - Conocer los lenguajes formales y autómatas. - Comprender conceptos y procedimientos de las gramáticas libres de contexto y gramáticas regulares para especificar la sintaxis de los lenguajesde programación. - Utilizar distintos tipos de autómatas y distintos tipos de notaciones gramaticales. - Comprender el procesamiento de lenguajes y en particular, el proceso de compilación. Objetivos buscados por la Cátedra - presentar los aspectos básicos de la teoría de lenguajes formales, autómatas y gramáticas. - mostrar la forma de aplicación de los conceptos vinculados con gramáticas y autómatas, para la especificación e implementación de los lenguajes de programación. - analizar las características y la forma de implementación, de las diferentes etapas del proceso de traducción de código fuente a código de máquina. - desarrollar habilidades para encarar en forma autónoma el estudio de un lenguaje de programación. Objetivos de logros para el estudiante Que el alumno logre: - especificar gramáticas de los tipos II y III, utilizando diferentes formas de representación. - diseñar autómatas de estados finitos y de pila. - resolver problemas de equivalencia y minimización de autómatas, y las diferentes formas de representación de ellos. - analizar e identificar los diferentes tipos de errores sintácticos y semánticos, que surgen durante los procesos de análisis lexicográfico, sintáctico y semántico, y en la etapa de traducción a código de máquina. - analizar la forma de ejecución de programas y determinar su comportamiento. - fortalecer sus capacidades de autoaprendizaje, análisis y juicio crítico. 2) CONTENIDOS MÍNIMOS (Según Plan de Estudios vigente) - Gramática y lenguajes formales. - Jerarquía de Chomsky. - Autómatas finitos. Expresiones regulares y su aplicación al análisis léxico. - Gramáticas independientes del contexto. - Autómatas PushDown y su aplicación al análisis sintáctico. - Otros tipos de analizadores sintácticos. - Máquinas Turing. - Introducción a las Semánticas. 3) PROGRAMA ANALÍTICO UNIDAD TEMÁTICA 1 SINTAXIS Y SEMÁNTICA DE CONTENIDOS Referencia abibliografía (Nro.) 1. Gramáticas y lenguajes formales. 1, 2, 5 1.1. Conceptos generales sobre lenguajes. 1.1.1. Símbolos y cadenas. Alfabeto, palabra, lenguajes formales. Operaciones. 1.2. Gramáticas formales. Tipos de gramáticas.Jerarquía de Chomsky. 1.2.1. Definiciones formales. Árboles sintácticos. Ambigüedad. Página 1/3 Cantidad de horas semanales:8hs. Anual Cursado: 1er.Semestre Cátedra: Sintaxis y Semántica de los Lenguajes Departamento: Ingeniería en Sistemas de Información. Nivel: 2ºaño Carrera: Ingeniería en Sistemas de Información Área: Programación Profesores (Titular-Asociado):León, Oscar A. -Brachetta, Mariana Bloque: Tecnologías Básicas Auxiliares (JTP-Ayudantes): Wilkinson, Pablo. Fariello, Mauricio. Monetti, Julio, Vargas, Marcela, Palmieri, Romina Año 2016. 2do.Semestre Aydte. ad-honorem: Silvia Castell UNIDAD TEMÁTICA LENGUAJES CONTENIDOS Referencia abibliografía (Nro.) 1.3. Gramáticas independientes del contexto. 1.4. Gramáticas regulares. Gramáticas lineales por derecha e izquierda. Equivalencia. Lema del bombeo. 1.5. Notaciones BNF y EBNF. Diagramas sintácticos. 2. Máquinas secuenciales y autómatas. 2.1. Máquinas abstractas. Máquinas de Moore y Mealy. 2.2. Autómatas. Equivalencia y minimización. 2.2.1. Representación con expresiones regulares. 2.3. Autómatas finitos deterministas y no deterministas. 2.3.1. Equivalencia entre AFD y AFND. 2.3.2. Gramáticas regulares y AEF. 2.4. Autómatas de pila. Determinísticos y no determinísticos. 2.4.1. Caracterísitcas. Descripción instantánea. Reconocimiento por vaciado de pila y por estado final. 2.4.2. Gramáticas libres de contexto y AP. 2.5. Autómatas linealmente acotados. Fundamentos sobre Máquinas de Turing. 3. Máquinas y lenguajes. 3.1. Analizadores lexicográficos. Conceptos básicos: lexemas, patrones y tokens. 3.2. Analizadores sintácticos. Análisis Top-Down y Bottom-up. Parsers LL y LR. 4. Introducción a las Semánticas. 4.1. Clases de semánticas: operacional, axiomática, denotacional, de acciones, algebraica, gramáticas de atributos. 1. Compiladores e intérpretes. 3, 4, 6 1.1. Tipos de traductores. Compiladores, intérpretes, seudo-compiladores. 1.2. Proceso de traducción, enlace y carga. 1.3. Tabla de símbolos. Estructura de datos e implementación. 1.4. Arquitectura de computadoras y lenguajes de máquina. Conjunto de instrucciones. Proceso de compilación. 1.5. Análisis léxico, sintáctico y semántico. Generación de código intermedio y objeto. 1.6. Identificadores. Tabla de símbolos. Gestión de memoria. Enlaces estáticos y dinámicos. 1.7. Concepto de módulo. Interface e implementación. Compilación independiente. 2 2. Traducción de la semántica de los datos. 2.1. Almacenamiento y gestión de estructuras de datos. Estrategias para la PROCESO DE asignación de memoria: estática, pila, montículo. Técnicas para la gestión TRADUCCIÓN dinámica de memoria. 2.2. Abstracción de datos. Formatos de representación. 2.3. Sistemas de tipos. Clasificación. Atributos. Verificación y conversión. Tipos primitivos. 2.4. Implementación de arreglos uni/multidimensionales y asociativos. 2.5. Tipos compuestos. Registros fijos y variantes. Conjuntos. Punteros. Listas. 2.6. Archivos. Procesos de I/O. Formatos de representación. 3. Traducción de la semántica de los enunciados. 3.1. Asignaciones. Expresiones. Operadores. 3.2. Control de ejecución: secuencias, bifurcaciones, iteraciones. 4. Subprogramas. 4.1. Parámetros y pasaje argumentos. Modos de pasaje. Devolución de valores. 4.2. Registro de activación: ámbitos de acceso, tiempo de vida y gestión en memoria. Página 2/3 Cantidad de horas semanales:8hs. Anual 1er.Semestre Cursado: Cátedra: Sintaxis y Semántica de los Lenguajes Departamento: Ingeniería en Sistemas de Información. Nivel: 2ºaño Carrera: Ingeniería en Sistemas de Información Área: Programación Profesores (Titular-Asociado):León, Oscar A. -Brachetta, Mariana Bloque: Tecnologías Básicas Auxiliares (JTP-Ayudantes): Wilkinson, Pablo. Fariello, Mauricio. Monetti, Julio, Vargas, Marcela, Palmieri, Romina Año 2016. 2do.Semestre Aydte. ad-honorem: Silvia Castell UNIDAD TEMÁTICA Referencia abibliografía (Nro.) CONTENIDOS 4.3. Ámbitos de referencias estáticas y dinámicas.Sobrecarga. 4.4. Contexto de referencia y mecanismos de vinculación. BIBLIOGRAFÍA: 3, 4, 6 4) BIBLIOGRAFIA/PUBLICACIONES/GUÍAS DIDÁCTICAS/MATERIAL DE ESTUDIO Nro. Autor/es Título Editorial Año de edición Principal Complementaria 1 P. Isasi, P. Martinez, D. Borrajo LENGUAJES, GRAMÁTICAS Y AUTÓMATAS – Un enfoque práctico Addison Wesley 1997 2 J. Giró, J. Vázquez, B. Meloni, L. Constable LENGUAJES FORMALES Y TEORÍA DE AUTÓMATAS Alfaomega 2015 X 3 C. Louden LENGUAJES DE PROGRAMACIÓN Thomson Ed 2004 X 4 T. W. Pratt – M. LENGUAJES DE PROGRAMACIÓNV. Zelkowitz Diseño e Implementación Prentice-Hall 1998 X 5 M. L. Scott 2000 M. KaufmannPublishers X PROGRAMMING LANGUAGE PRAGMATICS Lugar y fecha: Mendoza, 8/2/2016 X DIRECTOR DE CÁTEDRA Apellido y nombre: León, Oscar A. N° de Legajo: 24211 Firma: Página 3/3