Compilador: DEFINICIÓN

Infomaniapro 773 views 44 slides Jun 01, 2016
Slide 1
Slide 1 of 44
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44

About This Presentation

Introducción y Definición


Slide Content

COMPILADORES E
INTERPRETES
Ing. MarvinOsmaroParadaCLASS 01

Contenido
Inicio
Presentación de programa
Introducción

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.

Acerca de…
CicloAcadémico :VII/2016
Carrera :IngenieríadeSistemasyRedes
Asignatura :CompiladoreseInterpretes
N°deordenenPensum :28
Código :83
NúmerodeHorasporCiclo :80Horas
DuracióndelCicloenSemanas :20Semanas
IdentificacióndelCicloAcadémico:VII
Pre–Requisito :ProgramaciónComputacionalIV

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…

DESCRIPCIÒN DE LA ASIGNATURA
LacátedradeCompiladoreseIntérpretespresentauna
introducciónalsoftwarecuyafunciónúnicaescompilar
programasfuentesenundeterminadolenguaje,y
producirprogramasejecutables,laasignaturacubrelos
fundamentosconceptuales,elprincipiode
funcionamiento,laestructurabásica;asítambién
presentaunestudiodeaspectos,léxicos,sintácticosy
semánticospropiosdeuncompilador.
Alfinalserealizaunproyectoqueseráelproductode
laasistenciatécnicaproporcionadaalalumnoysu
ingenioeneldiseñodecompiladoreseintérpretes.

OBJETIVO DEL AREA DE COMPETENCIA
Aplicar técnicas y procedimientos para traducir
código fuente en código intermedio y final.

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

Ing. Marvin Osmaro Parada

ACERCA DEL PROGRAMA DE ESTUDIO…….
Ing. Marvin Osmaro Parada

Unidad 01: Introducción a Los Traductores
1.1Conceptos Generales
1.2Clasificación de los Traductores
1.3Metalenguajes
1.4Estructura de un Compilador
Ing. Marvin Osmaro Parada

Unidad 02: Análisis Léxico
2.1Definición –Implementación
2.2Conceptos de Token, patrones, lexema y atributo
2.3Especificaciones de un Token. Expresiones regulares
2.4El Autómata Finito
2.5La Tabla de Transición
2.6Tratamiento de Errores
2.7Tabla de Símbolos
Ing. Marvin Osmaro Parada

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

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

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.4Optimización Dependiente de la Máquina
Ing. Marvin Osmaro Parada

Unidad 06Proyecto
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

Sistemas de
Evaluación
Ing. Marvin Osmaro Parada

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 1LABORATORIO 2 PARCIAL
ACTI TAR. 1E.C 1TAR.2E.C 2PROYECTOASIST
POND 40% 60% 40% 60% 90% 10%
P. C. 30% 30% 40%
Ing. Marvin Osmaro Parada

SISTEMA DE EVALUACIÓN
Actividad Fecha
CÓMPUTO I
TAREA 1 02-febrero
.: Examen Corto 1:. 09-febrero
TAREA2 18-febrero
.: Examen Corto 2:. 23-febrero
PARCIAL 03-marzo
Ing. Marvin Osmaro Parada

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

SISTEMA DE EVALUACIÓN
Actividad Fecha
CÓMPUTO III
TAREA 1 17-mayo
.: Examen Corto 1:. 24-mayo
TAREA2 31-mayo
.: Examen Corto 2:. 02-junio
PARCIAL 16-junio 2015
Ing. Marvin Osmaro Parada

Introducción
COMPILADORES E INTERPRETES

TRADUCTORES
Introducción
Existen dos tipos principales de traductores de
los lenguajes de programación de alto nivel:
COMPILADORES
INTERPRETES
Ing. Marvin Osmaro Parada

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 convertirlas
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

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óny a los
relacionales se considera que son de cuarta
generación.
Ing. Marvin Osmaro Parada

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

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

Compilador: DEFINICIÓN
Uncompiladoranalizael
programaylotraducealidioma
"maquina". La acción
fundamentaldeloscompiladores
esequivalentealadeun
traductorhumano,quetoma
notadeloqueestaescuchando
yreproduceporescritoenotra
lengua.
Ing. Marvin Osmaro Parada

INTERPRETES
Analizaelprogramafuenteyloejecutadirectamente,
Ejemplodeltraductorhumano,ésteseríauntraductor
humanoqueconformealoqueestáescuchandova
ejecutando,singenerarningúnescrito,esdecirque
sobre la marcha va traduciendo.
Ing. Marvin Osmaro Parada

INTERPRETES
Ing. Marvin Osmaro Parada

Compiladores, Introducción
Ing. Marvin Osmaro Parada

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

FORTRAN
Ing. Marvin Osmaro Parada

FORTRAN
Línea de tiempo
Ing. Marvin Osmaro Parada

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

COMPILADORES E
INTERPRETES
Ing. MarvinOsmaroParada

Conceptos Relacionados
Ing. Marvin Osmaro Parada

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

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

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

Esquema de Compilación
Ing. Marvin Osmaro Parada

Fases de un Compilador
Ing. Marvin Osmaro Parada

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
Tags