3. Normativa en el aula
GUARDAR SILENCIO.
MANTENER EL CELULAR EN VIBRADOR.
NO USAR GORRA DENTRO DEL SALÓN DE CLASES
NO SALIR Y ENTRAR INNECESARIAMENTE DEL AULA.
PEDIR LA PALABRA PARA INTERVENIR EN LA CLASE.
RESPETAR LAS OPINIONES DE LOS DEMÁS.
PUNTUALIDAD.
OTRAS NORMAS QUE SERÁN INCLUIDAS EN EL
TRANSCURSO DEL CICLO.
4.
5. Acerca de…
Ciclo Académico : VII/2016
Carrera : Ingeniería de Sistemas y Redes
Asignatura : Compiladores e Interpretes
N° de orden en Pensum : 28
Código : 83
Número de Horas por Ciclo : 80 Horas
Duración del Ciclo en Semanas : 20 Semanas
Identificación del Ciclo Académico : VII
Pre – Requisito : Programación Computacional IV
6. ASIGNATURA:
COMPILADORES E INTERPRETES
DOCENTE TITULAR:
ING. MARVIN OSMARO PARADA
GRUPO:
INGENIERIA EN SISTEMAS Y
REDES INFORMATICAS
CICLO I - 2016
HORARIO: MARTES Y JUEVES.
HORA: 10.40 – 12.40 AULA: Lab. Computo y 3
Acerca de…
7. DESCRIPCIÒN DE LA ASIGNATURA
La cátedra de Compiladores e Intérpretes presenta una
introducción al software cuya función única es compilar
programas fuentes en un determinado lenguaje, y
producir programas ejecutables, la asignatura cubre los
fundamentos conceptuales, el principio de
funcionamiento, la estructura básica; así también
presenta un estudio de aspectos, léxicos, sintácticos y
semánticos propios de un compilador.
Al final se realiza un proyecto que será el producto de
la asistencia técnica proporcionada al alumno y su
ingenio en el diseño de compiladores e intérpretes.
8. OBJETIVO DEL AREA DE COMPETENCIA
Aplicar técnicas y procedimientos para traducir
código fuente en código intermedio y final.
9. COMPETENCIAS ESPERADAS DE LA ASIGNATURA
Propone modelos en versión académica de los
módulos internos de un compilador,
incluyendo la conversión de código fuente a
código intermedio.
Conoce la teoría relacionada con los traductores,
compiladores e intérpretes.
Conoce la estructura básica de un compilador
12. Unidad 01: Introducción a Los Traductores
1.1 Conceptos Generales
1.2 Clasificación de los Traductores
1.3 Metalenguajes
1.4 Estructura de un Compilador
Ing. Marvin Osmaro Parada
13. Unidad 02: Análisis Léxico
2.1 Definición – Implementación
2.2 Conceptos de Token, patrones, lexema y atributo
2.3 Especificaciones de un Token. Expresiones regulares
2.4 El Autómata Finito
2.5 La Tabla de Transición
2.6 Tratamiento de Errores
2.7 Tabla de Símbolos
Ing. Marvin Osmaro Parada
14. Unidad 03: Análisis Sintáctico
3.1 Gramáticas Libres de Contexto
3.2 Derivación. Ambigüedad
3.3 Analizador Sintáctico. Tipos
3.4 Analizador Sintáctico descendente determinista LL(1)
3.5 Comprobación si una gramática es LL(1). Iniciales y
seguidores autómatas de pilas
3.6 Tabla de Análisis
3.7 Tratamiento de errores.
Ing. Marvin Osmaro Parada
15. Unidad 04 Análisis Semántico
4.1 Introducción
4.2 Especificación formal
4.3 Fases en el Análisis Semántico
4.4 Determinación de los tipos de Comprobaciones
Semánticas a Realizar
4.5 Implementación de acciones Semánticas
Ing. Marvin Osmaro Parada
16. Unidad 05 Lenguajes Intermedios y Generación de
Código
5.1 Lenguajes Intermedios, Definición y Tipos
5.2 Optimización Independiente de la Máquina
5.3 Generador de Código Intermedio y Final
5.4 Optimización Dependiente de la Máquina
Ing. Marvin Osmaro Parada
17. Unidad 06 Proyecto
6.1 Proceso para Diseñar un Lenguaje de
Programación
6.2 Implementación del Analizador Léxico
6.3 Implementación del Analizador Sintáctico
6.4 Implementación del Analizador Semántico
6.5 Obtención de código Intermedio
Ing. Marvin Osmaro Parada
19. MEAP
REFERENCIAS:
ACTI.: Actividad.
POND.: Ponderación de cada actividad.
P. C.: Ponderación del cómputo.
ASIST.: Asistencia.
PRAC.: Practica
TAR. : Tarea del Laboratorio.
E. C.: Examen Corto del Laboratorio.
LABORATORIO 1 LABORATORIO 2 PARCIAL
ACTI TAR. 1 E.C 1 TAR. 2 E.C 2 PROYECTO ASIST
POND 40% 60% 40% 60% 90% 10%
P. C. 30% 30% 40%
Ing. Marvin Osmaro Parada
20. SISTEMA DE EVALUACIÓN
Actividad Fecha
CÓMPUTO I
TAREA 1 02-febrero
.: Examen Corto 1 :. 09-febrero
TAREA 2 18-febrero
.: Examen Corto 2 :. 23-febrero
PARCIAL 03-marzo
Ing. Marvin Osmaro Parada
21. SISTEMA DE EVALUACIÓN
Del 21-27 marzo vacaciones de semana santa
Actividad Fecha
CÓMPUTO II
TAREA 1 10-marzo
.: Examen Corto 1 :. 31-marzo
TAREA 2 07-abril
.: Examen Corto 2 :. 19-abril
PARCIAL 5-mayo
Ing. Marvin Osmaro Parada
22. SISTEMA DE EVALUACIÓN
Actividad Fecha
CÓMPUTO III
TAREA 1 17-mayo
.: Examen Corto 1 :. 24-mayo
TAREA 2 31-mayo
.: Examen Corto 2 :. 02-junio
PARCIAL 16-junio 2015
Ing. Marvin Osmaro Parada
24. TRADUCTORES
Introducción
Existen dos tipos principales de traductores de
los lenguajes de programación de alto nivel:
COMPILADORES
INTERPRETES
Ing. Marvin Osmaro Parada
25. Los lenguajes de programación
Ocupan una posición intermedia entre los
lenguajes naturales humanos y los precisos
lenguajes de máquina.
Gracias a la progresiva complejidad de los
lenguajes traductores que permiten convertir las
instrucciones de un lenguaje de programación al
lenguaje de máquina, la programación puede usar
lenguajes de computación que se parecen cada vez
más a los lenguajes naturales.
Ing. Marvin Osmaro Parada
26. Los lenguajes de programación
A los lenguajes máquina se les conoce como
lenguajes de primera generación.
Los ensambladores son los lenguajes de segunda
generación.
Los simbólicos de alto nivel de tipo procedural se
les denomina de tercera generación y a los
relacionales se considera que son de cuarta
generación.
Ing. Marvin Osmaro Parada
27. Los lenguajes de programación
A la tercera generación pertenecen lenguajes
conocidos como el FORTRAN, COBOL, RPG, BASIC, PL1,
SIMULA, ALGOL, PASCAL, ADA, C, LISP, PROGOL.
SQL es un lenguaje convertido en estándar mundial
como lenguaje de cuarta generación, una serie de
lenguajes orientados a objetos. Entre estos destaca el
Visual Basic de Microsoft. Además hay que prestar
una seria atención al lenguaje de programación Java,
desarrollado por SUN
Ing. Marvin Osmaro Parada
28. Compilador: DEFINICIÓN
Proceso de traducción que convierte un programa
fuente escrito en un lenguaje de alto nivel a un
programa objeto en código máquina y listo por
tanto para ejecutarse en el ordenador, con poca o
ninguna preparación adicional
Ing. Marvin Osmaro Parada
29. Compilador: DEFINICIÓN
Un compilador analiza el
programa y lo traduce al idioma
"maquina". La acción
fundamental de los compiladores
es equivalente a la de un
traductor humano , que toma
nota de lo que esta escuchando
y reproduce por escrito en otra
lengua.
Ing. Marvin Osmaro Parada
30. INTERPRETES
Analiza el programa fuente y lo ejecuta directamente,
Ejemplo del traductor humano, éste sería un traductor
humano que conforme a lo que está escuchando va
ejecutando, sin generar ningún escrito, es decir que
sobre la marcha va traduciendo.
Ing. Marvin Osmaro Parada
33. Compiladores
En los 50 los compiladores eran considerados
programas muy difíciles
FORTRAN se desarrolló en grupo durante 18 años
Se han desarrollado técnicas sistemáticas, entornos
de programación y herramientas software que
facilitan la tarea de desarrollo
Ing. Marvin Osmaro Parada
36. Compiladores
Gran variedad de lenguajes de alto nivel
Gran variedad de lenguajes objeto, tanto lenguaje
de alto nivel como código máquina
No puede darse una fecha exacta del primer
desarrollo
Varios grupos independientemente desarrollaron
técnicas de análisis
Los primeros traducían fórmulas aritméticas a
código máquina
Ing. Marvin Osmaro Parada
39. Motivación (I)
Para ser buen programador
Saber como se obtiene un ejecutable permite saber más
sobre corrección y eficiencia
Para entender más sobre lenguajes
Tipificación: estática, dinámica, fuerte, polimorfismo,
conversiones, sobrecarga de operadores...
Estructura de bloques, ámbitos
Paso de parámetros
Gestión de memoria, punteros
Ing. Marvin Osmaro Parada
40. Motivación (II)
La teoría es imprescindible
Antes de la aplicación de teoría de autómatas y
lenguajes formales, programación, etc. Los
compiladores eran muy malos
Aplicar la teoría y herramientas a otros campos:
Intérpretes de comandos y consultas
Lenguajes de simulación (GPSS)
Intérpretes Gráficos (PS, GIF, JPEG)
Ing. Marvin Osmaro Parada
41. Compilador; Definiciones I
Ensamblador:
Compilador sencillo, el lenguaje fuente tiene una
estructura simple que permite una traducción de
una sentencia fuente a una instrucción en código
máquina.
Compilador cruzado:
Compilador que traduce un lenguaje fuente a
objeto, el objeto es para un ordenador distinto del
que compila
Ing. Marvin Osmaro Parada
43. Fases de un Compilador
Ing. Marvin Osmaro Parada
44. Fases de un Compilador
Agrupación lógica de un compilador
Etapa Inicial
Fases, o parte de fases que dependen del lenguaje fuente y
que son independientes de la máquina
Análisis léxico, sintáctico, semántico y generación de código
intermedio, manejo de errores de cada parte
Etapa Final
Fases que depende de la máquina, depende del lenguaje
intermedio
Optimización de código, generación de código, operaciones
con la tabla de símbolos
Ing. Marvin Osmaro Parada