compilador: definiciÓn

44
COMPILADORES E INTERPRETES Ing. Marvin Osmaro Parada CLASS 01

Upload: infomania-pro

Post on 22-Feb-2017

165 views

Category:

Technology


1 download

TRANSCRIPT

COMPILADORES E

INTERPRETES

Ing. Marvin Osmaro ParadaCLASS 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…

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

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

La cátedra de Compiladores e Intérpretes presenta unaintroducción al software cuya función única es compilarprogramas fuentes en un determinado lenguaje, yproducir programas ejecutables, la asignatura cubre losfundamentos conceptuales, el principio defuncionamiento, la estructura básica; así tambiénpresenta un estudio de aspectos, léxicos, sintácticos ysemánticos propios de un compilador.

Al final se realiza un proyecto que será el producto dela asistencia técnica proporcionada al alumno y suingenio en el diseño de compiladores e inté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.1 Conceptos Generales

1.2 Clasificación de los Traductores

1.3 Metalenguajes

1.4 Estructura de un Compilador

Ing. Marvin Osmaro Parada

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

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

Ing. Marvin Osmaro Parada

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

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

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

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

TAREA 2 31-mayo

.: Examen Corto 2 :. 02-junio

PARCIAL 16-junio 2015

Ing. Marvin Osmaro Parada

Introducción

COMPILADORES E INTERPRETES

TRADUCTORES

IntroducciónExisten 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 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

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

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

Un compilador analiza elprograma y lo traduce al idioma"maquina". La acciónfundamental de los compiladoreses equivalente a la de untraductor humano , que tomanota de lo que esta escuchandoy reproduce por escrito en otralengua.

Ing. Marvin Osmaro Parada

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

INTERPRETESIng. Marvin Osmaro Parada

Compiladores, IntroducciónIng. 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

FORTRANIng. 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. Marvin Osmaro Parada

Conceptos RelacionadosIng. 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ónIng. Marvin Osmaro Parada

Fases de un CompiladorIng. 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