Profs. Carlos Pérez y Ricardo Monascalgecousb.com.ve/guias/GECO/Traductores e...•Frases:...
Transcript of Profs. Carlos Pérez y Ricardo Monascalgecousb.com.ve/guias/GECO/Traductores e...•Frases:...
Profs. Carlos Pérez y Ricardo Monascal
TRADUCTORES E INTERPRETADORES
Clase 0: Introducción al Curso
Profs. Carlos Pérez y Ricardo Monascal
¿Quiénes somos?
Prof. Carlos Pérez
Profs. Carlos Pérez y Ricardo Monascal
Prof. Ricardo Monascal
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
Profs. Carlos Pérez y Ricardo Monascal
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.
Profs. Carlos Pérez y Ricardo Monascal
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.
Profs. Carlos Pérez y Ricardo Monascal
Motivación
¡Todo es un lenguaje!
Profs. Carlos Pérez y Ricardo Monascal
Motivación
¡Todo es un lenguaje!
Profs. Carlos Pérez y Ricardo Monascal
REGULARES
Jerarquía de Chomsky
Profs. Carlos Pérez y Ricardo Monascal
LIB
RES
DE
CO
NTE
XTO
REGULARES
Jerarquía de Chomsky
Profs. Carlos Pérez y Ricardo Monascal
SEN
SIB
LES
AL
CO
NTE
XTO
LIB
RES
DE
CO
NTE
XTO
REGULARES
Jerarquía de Chomsky
Profs. Carlos Pérez y Ricardo Monascal
REC
USR
IVO
SEN
SIB
LES
AL
CO
NTE
XTO
LIB
RES
DE
CO
NTE
XTO
REGULARES
Jerarquía de Chomsky
Profs. Carlos Pérez y Ricardo Monascal
REC
USR
IVA
MEN
TE
ENU
MER
AB
LE
REC
USR
IV0
SEN
SIB
LES
AL
CO
NTE
XTO
LIB
RES
DE
CO
NTE
XTO
REGULARES
Jerarquía de Chomsky
Profs. Carlos Pérez y Ricardo Monascal
¿Y HABRÁ MÁS? R
ECU
SRIV
AM
ENTE
EN
UM
ERA
BLE
REC
USR
IV0
SEN
SIB
LES
AL
CO
NTE
XTO
LIB
RES
DE
CO
NTE
XTO
REGULARES
Jerarquía de Chomsky
Profs. Carlos Pérez y Ricardo Monascal
Lenguajes de Programación
• ¿Qué es un lenguaje de programación?
• ¿Dónde entran en la jerarquía?
Profs. Carlos Pérez y Ricardo Monascal
MAQUINA Programa ¿?
Lenguajes de Programación
Profs. Carlos Pérez y Ricardo Monascal
MAQUINA
Programa ¿? ENTENDER PROCESAR
Lenguajes de Programación
Profs. Carlos Pérez y Ricardo Monascal
MAQUINA
Programa ¿? ENTENDER PROCESAR
FRONT-END BACK-END
Lenguajes de Programación
Profs. Carlos Pérez y Ricardo Monascal
FRONT-END
Programa Representación
Intermedia Análisis Léxico (Lexer)
Análisis Sintáctico (Parser)
Análisis de Contexto
Lenguajes de Programación
Profs. Carlos Pérez y Ricardo Monascal
FRONT-END
Programa Representación
Intermedia
Análisis Léxico (Lexer)
Secuencia de caracteres
Secuencia de Tokens
.c [int, id(main), ...]
Lenguajes de Programación
Profs. Carlos Pérez y Ricardo Monascal
FRONT-END
Programa Representación
Intermedia
Árbol Sintáctico Abstracto
[int, id(main), ...]
Análisis Sintáctico (Parser)
Secuencia de Tokens
Lenguajes de Programación
Profs. Carlos Pérez y Ricardo Monascal
FRONT-END
Programa Representación
Intermedia
Árbol Sintáctico Abstracto
(Decorado) Análisis de Contexto
Árbol Sintáctico Abstracto
Lenguajes de Programación
Profs. Carlos Pérez y Ricardo Monascal
BACK-END
Representación Intermedia
Código en otro lenguaje
Ejecución
Lenguajes de Programación
Profs. Carlos Pérez y Ricardo Monascal
BACK-END
Representación Intermedia
Código en otro lenguaje
Ejecución
Traducción vs.
Compilació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
Profs. Carlos Pérez y Ricardo Monascal
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
– “”...
Profs. Carlos Pérez y Ricardo Monascal
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.
Profs. Carlos Pérez y Ricardo Monascal
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 λ.
Profs. Carlos Pérez y Ricardo Monascal
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.
Profs. Carlos Pérez y Ricardo Monascal
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.
Profs. Carlos Pérez y Ricardo Monascal
¡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?
Profs. Carlos Pérez y Ricardo Monascal