TRADUCTORES E INTERPRETADORES Clase 0: Introducción al Curso
Quiénes somos? Prof. Carlos Pérez caperez@ldc.usb.ve Prof. Ricardo Monascal rmonascal@ldc.usb.ve Oficina: MYS-228A (Sí, es la misma)
Recursos Oficiales Página del curso: http://ldc.usb.ve/~rmonascal/cursos/ci3725_aj12/ Bibliografía (en orden alfabético): Sudkamp. Languages and Machines. Addison-Wesley Publishing Hopcroft & Ullman. Introduction to Automata Theory, Languages and Computation. Addison-Wesley Publishing. Aho, Sethi & Ullman. Compilers: Principles, Techniques and Tools. Addison-Wesley Publishing. Sipser. Introduction to the Theory of Computation. 2nd edition. MIT Press. Astorga. Apuntes sobre Lenguajes Regulares. USB. En: http://ldc.usb.ve/~astorga/lenguaregular.pdf
Evaluación 70% teoría Examen 1 (25%): Martes, Semana 5. Examen 2 (20%): Martes, Semana 8. Examen 3 (25%): Martes, Semana 12. 30% práctica Un proyecto, en tres entregas: Entrega 1 (6%): Domingo, Semana 3 4. Entrega 2 (9%): Domingo, Semana 6 7. Entrega 3 (15%): Domingo, Semana 10 11.
Y además Cinco retos, principalmente de programación, que otorgarán al ganador de cada reto (y únicamente al ganador del mismo) 2% adicional sobre el total del curso.
Motivación Todo es un lenguaje!
Motivación Todo es un lenguaje!
Jerarquía de Chomsky REGULARES
LIBRES DE CONTEXTO Jerarquía de Chomsky REGULARES
SENSIBLES AL CONTEXTO LIBRES DE CONTEXTO Jerarquía de Chomsky REGULARES
RECUSRIVO SENSIBLES AL CONTEXTO LIBRES DE CONTEXTO Jerarquía de Chomsky REGULARES
RECUSRIVAMENTE ENUMERABLE RECUSRIV0 SENSIBLES AL CONTEXTO LIBRES DE CONTEXTO Jerarquía de Chomsky REGULARES
RECUSRIVAMENTE ENUMERABLE RECUSRIV0 SENSIBLES AL CONTEXTO LIBRES DE CONTEXTO Jerarquía de Chomsky Y HABRÁ MÁS? REGULARES
Lenguajes de Programación Qué es un lenguaje de programación? Dónde entran en la jerarquía? Programa? MAQUINA
Lenguajes de Programación MAQUINA Programa ENTENDER PROCESAR?
Lenguajes de Programación MAQUINA Programa ENTENDER PROCESAR? FRONT-END BACK-END
Lenguajes de Programación FRONT-END Programa Análisis Léxico (Lexer) Análisis Sintáctico (Parser) Análisis de Contexto Representación Intermedia
Lenguajes de Programación FRONT-END Programa Representación Intermedia Secuencia de caracteres Análisis Léxico (Lexer) Secuencia de Tokens.c [int, id(main),...]
Lenguajes de Programación FRONT-END Programa Representación Intermedia Secuencia de Tokens [int, id(main),...] Análisis Sintáctico (Parser) Árbol Sintáctico Abstracto
Lenguajes de Programación FRONT-END Programa Representación Intermedia Árbol Sintáctico Abstracto Análisis de Contexto Árbol Sintáctico Abstracto (Decorado)
Lenguajes de Programación Código en otro lenguaje Representación Intermedia BACK-END Ejecución
Lenguajes de Programación Representación Intermedia BACK-END Código en otro lenguaje Traducción vs. Compilación Ejecución Interpretación
Léxico Básico del Curso Símbolo: Unidad léxica indivisible que representa algún significado. Caracteres Ideogramas Tokens Alfabeto: Conjunto de símbolos Alfabeto latino Palabras reservadas de un lenguaje
Léxico Básico del Curso Frases: Secuencia de símbolos, todos pertenecientes a algún alfabeto Σ Hola, mundo!, sobre el alfabeto latino con signos de puntuación. 42, sobre el alfabeto de los números arábigos 自動機的岩石, sobre el alfabeto chino...
Léxico Básico del Curso Frases: Secuencia de símbolos, todos pertenecientes a algún alfabeto Σ Hola, mundo!, sobre el alfabeto latino con signos de puntuación 42, sobre el alfabeto de los números arábigos 自動機的岩石, sobre el alfabeto chino... sobre cualquier alfabeto.
Léxico Básico del Curso Frases: Secuencia de símbolos, todos pertenecientes a algún alfabeto Σ Hola, mundo!, sobre el alfabeto latino con signos de puntuación 42, sobre el alfabeto de los números arábigos 自動機的岩石, sobre el alfabeto chino... sobre cualquier alfabeto. Y lo llamaremos λ.
Léxico Básico del Curso Lenguaje: Conjunto de frases, todas compuestas por símbolos pertenecientes al mismo alfabeto Σ Frases, sobre el alfabeto Σ = {a, b}, que contengan al menos un símbolo a. Expresiones aritméticas válidas, sobre el alfabeto Σ = {+, -, *, /} U {0..9} Ø, sobre cualquier alfabeto. {λ}, sobre cualquier alfabeto.
Léxico Básico del Curso Lenguaje: Conjunto de frases, todas compuestas por símbolos pertenecientes al mismo alfabeto Σ Frases, sobre el alfabeto Σ = {a, b}, que contengan al menos un símbolo a. Expresiones aritméticas válidas, sobre el alfabeto Σ = {+, -, *, /} U {0..9} Ø, sobre cualquier alfabeto. {λ}, sobre cualquier alfabeto. Y son distintos!
Objetivo del Curso Cómo especificar lenguajes? Es una frase perteneciente a un lenguaje? Cómo aplicar estos conceptos al procesamiento de lenguajes de programación?