Profs. Carlos Pérez y Ricardo Monascalgecousb.com.ve/guias/GECO/Traductores e...•Frases:...

Post on 07-Oct-2020

11 views 0 download

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

caperez@ldc.usb.ve

Profs. Carlos Pérez y Ricardo Monascal

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

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