| Cargo | Nombre |
|---|---|
| Titular | Lic. Gladis Marlene Sequeira |
| Auxiliar 1ra | Lic. Cristian Kornuta |
Paradigmas. Criterios para el estudio de paradigmas. Características de lenguajes de programación representativos de cada paradigma. Orígenes y evolución.
Paradigmas de lenguajes (imperativo, orientado a objetos, funcional, lógico). Sistemas de tipos. Encapsulamiento y abstracción. Intérpretes y Compiladores. Principios de diseño de un los lenguajes. Historia y criterios de diseño. Eficiencia. Regularidad, Generalidad, Ortogonalidad. Principios adicionales sobre diseño de los lenguajes: Simplicidad, Expresividad, Extensibilidad, Capacidad de restricción, Precisión, Seguridad. Criterios de Diseño y de Implementación de Lenguajes de Programación
Lenguajes Formales y Autómatas. Rastreador o Analizador Léxico. Expresiones regulares. Autómata finitos deterministas. Autómatas finitos no deterministas. Minimización de Autómatas: Reducción de un NFA hasta un DFA. Autómatas a pila reconocedores de lenguaje. Máquinas de Turing. Conceptos básicos de teoría de computabilidad y complejidad: problemas computables y no computables. Problema de la detención. Problemas tratables e intratables. Funciones Recursivas.Definición Funcionamiento Tipos. Implementación de un analizador léxico.
Introducción: Sintaxis. Lenguajes formales. Gramáticas formales. Gramáticas e Isomorfismos. Niveles de Polimorfismo. Tipos de gramáticas. Jerarquía de Chomsky. BNF (Forma Normal de Backus – Naur). Diagramas de Sintaxis para lenguajes tipo 2. Arboles de Análisis sintácticos y arboles de sintaxis abstracta. Ambigüedad. EBNF(Formas Backus-Naur extendida). Análisis Sintáctico Descendente. Análisis Sintáctico Ascendente
Nociones básicas de semántica formal. Semántica operacional. Semántica Básica. Atributos, Entidades, ligaduras y funciones semánticas. Declaraciones, Bloques y Alcance. La tabla de Símbolos. Resolución y Sobrecarga de nombres. Asignación, Tiempo de vida y el entorno. Variables y Constates. Alias, Referencias pendientes y basura. Tipos de Datos. Constructores de tipos. Expresiones y enunciados. Procedimientos y ambientes.
Análisis de Algoritmos: Análisis asintótico, comportamiento en el mejor caso, caso promedio y peor caso. Notación 0(). Balance entre tiempo y espacio en los algoritmos. Análisis de complejidad del algoritmo.