Вы находитесь на странице: 1из 28

UNIVERSIDAD CAPITN GENERAL

GERARDO BARRIOS

FACULTAD DE CIENCIA Y TECNOLOGA


Asignatura:
Compiladores e intrpretes
Docente:
Ing. Mario Ernesto Chevez Flores
Proyecto:
Portafolio

Estudiante:
Angel Anibal Tzoc Lopez
Fecha:
13 de marzo de 2016

INTRODUCCION
EL PROPOSITO DE ESTE DOCUMENTO ES DEJAR EVIDENCIADO EL
TEMARIO DE LA ASIGNATURA COMPILADORES E INTERPRETES
LLEVANDO A CABO EL RESUMEN DE CADA UNA DE LOS TEMAS A
ESTUDIAR DONDE REFLEJARA LO COMPRENDIDO DE CADA UNO DE
LAS LAMINAS QUE SE PRESENTARAN

ndice
Objetivo general
Objetivo general

4
4

Objetivos especficos 4

Temas desarrollados 5
Unidad 19
Introduccin a los traductores

Estructura de un compilador .16


Metalenguajes.22
conclusion.26

Objetivo general
Desarrollar el portafolio con los diferentes tipos de temas estudiados
durante la asignatura de compiladores e intrpretes

Objetivos especficos
Analizar cada tema desarrollado durante la asignatura de compiladores
e interpretes
Establecer un resumen por cada tema desarrollado en la asignatura de
compiladores e intrpretes

UNIVERSIDAD GERARDO BARRIOS


Facultad de Ciencia y Tecnologa

JORNALIZACIN DE LA ASIGNATURA

ASIGNATURA: COMPILADORES E INTERPRETES


DAS:

CICLO I 2016

GRUPO C

Sabado y Domingo AULA; 8 y LINT HORAS 4:20 a 6:00 y 10:40 a 12:20

DOCENTE: ING. Mario Ernesto Flores Chvez

N
Semanas

FECHA
Da

Mes

Elementos de competencia a desarrollar por unidad y/o


actividades evaluativas.

30

Enero

Explicar conceptos de traductores.


Describir los conceptos de traductores.
Comprender la importancia de los traductores en el entorno de
desarrollo.

31

Enero

Resolver casos de estudios: Introducin al lenguaje Java.

1
Desarrollo de gua 1: Configuracin al entorno de desarrollo.

Febrero

Explicar los metalenguajes.


Definir que son los metalenguajes.
Describir la importancia de los metalenguajes.

Febrero

Resolver Introduccin al lenguaje java.


Desarrollo de gua 2: Creacin de aplicaciones Java SE.

13

Febrero

Explicar los metalenguajes.


Definir que son los metalenguajes.
Describir la importancia de los metalenguajes.

14

Febrero

Resolver caso de estudio: Introduccin a Java.


Desarrollo de guia 3: Estructura de control If y Switch

20

Febrero

Explicar la estructura de un compilador.


Definir que es un compilador.
Comprender la importancia de un compilador en el desarrollo
de software.

Diagramar la estructura de un compilador

N
Semanas

FECHA
Da
21

Mes
Febrero

Elementos de competencia a desarrollar por unidad y/o


actividades evaluativas.
Resolver casos de estudios: Introduccion a Java.
Desarrollo de guia 4: Estructura repetitiva while, do while y for

27

Febrero

Explicar conceptos de anlisis Lxicos.


Definir conceptos Token, patrones, lexema y atrubutos.
Explicar que son Token, patrones, lexema y atributo.

28

Febrero

Resolver caso de estudio: Introduccin a Java.

Desarrollo de gua prctica 5: Lectura desde el teclado.


5

Marzo

Marzo

Explicar las expresiones regulares.


Definir expresiones regulares
Redarte de informe de las ER.
Explique la importancia de las ER.
Elabore expresiones regulares que permitan hacer una
bsqueda determinada.
Resolver caso de estudio: Introduccin a Java.
Desarrollo de gua prctica 6: Lectura y escritura de ficheros.

12

Marzo

13

Marzo

19

Marzo

PARCIALES

Comprender la importancia de autnomas finitos en la computacin.

20

Marzo

Explicar la importancia de los autnoma finitas.

Resolver caso de estudio: Introduccin a Java.

8
Desarrollo de gua prctica 7: Conexiones a base de datos.

10

26

Marzo

27

Marzo

VACACIONES DE SEMANA SANTA

Abril

Comprender la importancia de la tabla de transicin y tabla de


errores.
Describir la importancia de la tabla de transicin y tabla de error

Abril

Resolver caso de estudio: Introduccin a Java.


Desarrollo de gua prctica 8: Creacin de una aplicacin CRUD.

11

Abril

Explicar El anlisis sintctico que se lleva a cabo en el proceso de


compilacin.
Describir las gramticas libres de contexto en el
proceso de compilacin

N
Semanas

FECHA
Da

Elementos de competencia a desarrollar por unidad y/o


actividades evaluativas.

Mes

Compreder y explicar la diveracion y ambigedad.


10

Abril

Resolver caso de estudio: Introduccin a Java.


Desarrollo de gua prctica 9: Hilos

16

Abril

Comprender los diferentes tipos de analizadores sintcticos.


Describir los analizadores sintcticos.
Diagramar el proceso el proceso anlisis sintctico.

17

Abril

Resolver caso de estudio: Introduccin a Java.

12

Desarrollo de gua prctica 10: Socket


23

Abril

24

Abril

15

Anlisis Semntico

4.1

Introduccin

4.2

Especificacin formal

Laboratorio 2

13

14

Unidad 04

30

Abril

Mayo

Asueto del da del trabajo.

Mayo

4.3

Fases en el Anlisis Semntico

Mayo

14

Mayo

4.4

Determinacin

de

los

tipos

de

Comprobaciones

Semnticas a Realizar

16

17

15

Mayo

21

Mayo

22

Mayo

28

Mayo

4.5

Implementacin de acciones Semnticas

Unidad 05
5.1

Lenguajes Intermedios y Generacin de Cdigo

Lenguajes Intermedios, definicin y Tipos

Laboratorio 1
18

19

29

Mayo

Junio

Junio

5.2

Optimizacin Independiente de la Mquina

N
Semanas

FECHA
Da
11

Elementos de competencia a desarrollar por unidad y/o


actividades evaluativas.

Mes
Junio

5.3

Generador de Cdigo intermedio

Laboratorio 2

20

12

Junio

18

Junio

19

Junio

25

Junio

Diapositiv
a1

En la unidad 1 se trata de la
introduccin a los traductores e
interpretes

Diapositiv

Traductor tiene varias definiciones pero

a2

de la que nos vamos a enfocar es en


el rea de la materia compiladores e
interpretes

Diapositiv

Traductor en esta lamina nos menciona

a3

que recibe como entrada un cdigo de


un leguaje y esta la convierte en otro
lenguaje

Diapositiv

Un traductor es un programa que puede

a4

transformar un leguaje a un lenguaje


fuente siempre y cuando no tenga algn
error dentro de tal lenguaje a convertir

Diapositiv

Como muestra en la lmina el traductor

a5

se introduce el programa como entrada


en lenguaje fuente y sale como otro
lenguaje llamada lenguaje destino
siempre y cuando no se encuentre un
mensaje de error

Diapositiv

Habla de que siempre ha tenido

a6

presencia de que a la hora de


comunicar nuestras necesidades para
que la computadora sea capaz de
interpretar siempre ha sido un obstculo
el modo de que tengamos diferente
vocabulario ya sea lenguaje maquina
entre otros dando as la creacin de
nuestro propio lenguaje para que las
pcs las interpreten

Diapositiv

Se nos presentan dos tipos de

a7

traductores compiladores e intrpretes


teniendo en cuenta ya las definiciones
antes mencionadas

Diapositiv

En esta ocasin hago mencin de

a8

nuevo de los obstculos de poder


comunicarnos de manera eficiente con
el CPU con instrucciones parecidas a
lenguaje maquina ya que esta posee
una inmensidad de instrucciones que
no podemos establecer de forma
certera

Diapositiv

Bueno dice que para un lenguaje de

a9

programacin sea til debemos tener


un programa el cual esta sepa generar
ya sea las instrucciones de otros
programas escritos para poder
ejecutarse o pasarlas a un modo que
sea ejecutable esto se le denomina
compilador

Diapositiv

Como se pudo observar un compilador

a 10

se trata de un programa pueda convertir


un lenguaje a otro lenguaje de
programacin

Diapositiv

Compilador es aquel que al introducir

a 11

un lenguaje se hace ya sea un tipo de


lenguaje esta se pasa a traducir en
cdigo de alto nivel a cdigo mquina
para tener como salida un fichero
ejecutable

Diapositiv

Compilador aquel programa que

a 12

traduce un lenguaje a otro lenguaje esta


tambin puede generar aplicaciones
para que se puedan utilizar en otra
computadora como anteriormente se
menciona que se crea un fichero
ejecutable teniendo siempre en cuenta
donde se ejecutara el fichero

Diapositiv

Bueno habla de que el compilador lee el

a 13

cdigo a convertir en un lenguaje esta


verifica toda la sintaxis y luego pasa a
traducir a cdigo maquina todas las
instrucciones generando el archivo
ejecutable final

Diapositiv

Dice que son programa que traducen

a 14

un lenguaje a otro esta tambin se


encarga de verificar si hay errores
dentro del cdigo fuente

Diapositiv

En el siguiente bosquejo podemos

a 15

observar una estructura de como se


hace el procedimiento tenemos el
lenguaje entrada y tenemos el
programa destino, tenemos el lenguaje
salida lo que hace es pasar el lenguaje
entrada en el programa destino y el
resultado es otro lenguaje salida

Diapositiv

Bueno en la siguiente estructura hace

a 16

mencin del intrprete la funcin de


este es casi similar que el compilador
teniendo en si como salida una
ejecucin en cambio el compilador solo
nos genera un fichero

Diapositiv

Un interprete es como un procesador

a 17

de lenguaje en vez de generar un


fichero nos ejecuta las operaciones
dentro del cdigo origen

Diapositiv

El intrprete solo no genera la ejecucin

a 18

de un lenguaje a otro este no genera un


fichero y nos hace mencin de lenguaje
que solo pueden ser interpretados
como: 1- SNOBOL. 2-LISP. 3-BASIC

Diapositiv

Ensamblador es un programa que

a 19

procesa el programa origen en lenguaje


ensamblador y los traducen en lenguaje
mquina que son ejecutados por un
microprocesador lo que nos permite
editar ya sea el programa origen para
generar un cdigo ejecutable.

Diapositiv

En esta estructura se puede observar el

a 20

lenguaje ensamblador y el ensamblador


y cdigo maquina lo que hace que el
lenguaje ensamblador pase atraves del
ensamblador para genera el cdigo
maquina

Diapositiv

Es un leguaje que se define dentro del

a 21

ensamblador para procesarla es


llamado lenguaje ensamblador

Diapositiv

El lenguaje interpretado es un lenguaje

a 22

diferente al lenguaje maquina por eso


se debe traducir para que el procesador
la comprenda el lenguaje interpretado
necesita de otro programa para esta
traduzca los comandos segn sean
necesarios

Diapositiv

Lenguaje compilado es un lenguaje

a 23

escrito que fue traducido por medio del


compilador dando como resultado el
fichero ejecutable

Diapositiv

Alguno lenguaje intermediarios

a 24

pertenecen a ambas categoras como lo


son LISP,java estas a menudo pueden
sufrir de compilacin intermedia

Diapositiv

La estructura de un compilador se trata

a1

como se compone un compilador

Diapositiv

El compilador hemos tratado ya como

a2

una caja simple pero al observar


internamente podremos observar el
anlisis y la sntesis

Diapositiv

La estructura de un compilador se

a3

maneja de esta forma paso a paso:


primero la tabla de smbolos despus
empieza con anlisis lxico, anlisis
sintctico, anlisis semntico,
generacin de cdigo intermedio,
optimizacin de cdigo intermedio,
generacin y optimizacin de cdigo
final por ltimo la gestin de errores

Diapositiv

El anlisis lxico sera la primera fase

a4

de la estructura de un compilador lee el


flujo de carcter y despus las agrupa
en secuencias recibiendo como nombre
lexemas esta produce como salida un
token

Diapositiv
a5

Anlisis sintctico
Comprueba los valore uno por uno
como lo son:
Palabras reservadas(do,while,if)
Palabras no especificadas(constantes )
Formados por lexemas

Diapositiv

Anlisis sintctico dice que recibe los

a6

tokens que se generaron en el


analizador lxico y que estn conforme
a la gramtica

Diapositiv

Anlisis semntico comprueba el

a7

programa comprueba los tipos de


operadores

Diapositiv

La generacin de cdigo intermedio

a8

esta realiza una codificacin intermedia


ante de pasar al cdigo final utiliza
cdigo de 3 direcciones

Diapositiv
a9

Optimizacin de cdigo intermedio


Permite mejoras en el cdigo
intermedio antes de pasar al cdigo
final elimina espacios sin ningn sentido
elimina cdigo que no sirve y optimiza
los bucles

Diapositiv

Esta genera las instrucciones a cdigo

a 10

ensamblador despus de pasar del


cdigo intermedio

Diapositiv

Es aqu donde se registran ya sean

a 11

funciones, identificadores u otras


necesidades dentro del programa
fuente

Diapositiv

Es aqu donde se producen la

a 12

verificacin de errores cuando se est


compilando ya sea errores que no se
vieron o cantidades de errores debido a
la mala digitacin

Diapositiv

Aqu la estructura donde se hace

a 13

presente la fuente que pasa por medio


de los procesos anlisis lxico, anlisis
sintctico, anlisis semntico y la
generacin de cdigo intermedio
llamndolo front-end generando as el
cdigo intermedio despus este pasa
por optimizacin de cdigo intermedio,
generacin de cdigo objeto,
optimizacin de cdigo objeto
llamndolo back-end dando paso al
cdigo objeto

Diapositiv

Muestra algunas especificaciones del

a 14

compilador
Como especificacin lxica: tokens
mediante expresiones regulares
Especificacin sintctica: gramtica
independientes del contexto
Especificacin semntica: lenguaje
natural

Diapositiv

Se hace mencin de aplicaciones o

a 15

tcnicas de compilacin
Procesadores de texto
Manejo de ficheros de texto
estructurado
Calculo simbolico

Diapositiv
a1

Metalenguajes

Diapositiv

El alfabeto es un conjunto de elementos

a2

se le llaman smbolos se le denota con


la letra

Diapositiv
a3

Qu es metalenguaje?
Es para describir ciertas caractersticas
de una lengua

Diapositiv

El metalenguaje es aquel que se utiliza

a4

para hablar de otro lenguajes el


lenguaje que se est hablando se le
llama lenguaje objeto

Diapositiv

En la estructura del metalenguaje se

a5

observa varios factores :


El metalenguaje, lenguaje objeto, objeto

Diapositiv

El metalenguaje puede tener muchas

a6

ventajas pero tambin tiene


desventajas y es siempre procurar
verificar que el programa sea aceptado
por el compilador se necesitan ms de
un compilador para cada lenguaje de
programacin

Diapositiv

El metalenguaje se utilizada para la

a7

descripcin de un lenguaje exiten3 tipos


de metalenguajes

Diapositiv

Bnf se utiliza para gramticas libres de

a8

contexto bueno es para describir


lenguajes formales

Diapositiv

En la estructura del BNF se establece el

a9

smbolo a cual pertenece la expresin


con smbolos

Diapositiv

Constituye a un mtodo para describir

a 10

un lenguaje equivalente al BNF


PROPUEST WIRTH

Diapositiv

EL COBOL elemento opcionales se

a 10

denotan por parntesis cuadrados


COBOL eficaz los mensajes de error y
por lo tanto, la resolucin de errores es
ms fcil.

Conclusin
Me servir mucho en el momento de la creacin de un compilador, ya
que en l se detallan todas y cada una de las partes que involucran a
este.

Primeramente

investigue

que

existen

distintos

tipos

de

compiladores, me gustara crear un compilador, ya que pienso que es


muy til a la hora de crear un algoritmo o programa. La funcin de un
compiladores es leer un programa escrito es un lenguaje, en este caso
el lenguaje fuente, y lo traduce a un programa equivalente en otro

lenguaje, el lenguaje objeto. Me parece fascinante que nosotros


podamos crear un compilador en seis meses (en un curso).
Compiladores e intrpretes es una materia interesante a la vez compleja
ya que habla de compiladores ya que nos da la opcin de poder crear un
compilador ya sea de un lenguaje ya establecido o poder crear un
lenguaje nuevo gracias a la materia estoy entendiendo ms sobre
compiladores e intrpretes dndome otra definicin de traductores,
compiladores, interpretes, como est estructurado el compilador
dejando as lo que entend
Compiladores: Es el que analiza el programa fuente y lo traduce a otro
equivalente escrito en otro lenguaje (por ejemplo, en el lenguaje de la
mquina). Su accin equivale a la de un traductor humano, que toma un
libro y produce otro equivalente escrito en otra lengua. Intrprete: Es el
que analiza el programa fuente y lo ejecuta directamente, sin generar
ningn cdigo equivalente. Su accin equivale a la de un intrprete
humano, que traduce las frases que oye sobre la marcha, sin producir
ningn escrito permanente. Intrpretes y compiladores tienen diversas
ventajas e inconvenientes que los hacen complementarios:
Un intrprete facilita la bsqueda de errores, pues la ejecucin de un
programa puede interrumpirse en cualquier momento para estudiar el
entorno (valores de las variables, etc.). Adems, el programa puede
modificarse sobre la marcha, sin necesidad de volver a comenzar la
ejecucin. Un compilador suele generar programas ms rpidos y
eficientes, ya que el anlisis del lenguaje fuente se hace una sola vez,
durante la generacin del programa equivalente. En cambio, un
intrprete se ve obligado generalmente a analizar cada instruccin
tantas veces como se ejecute (incluso miles o millones de veces). Un
intrprete permite utilizar funciones y operadores ms potentes, como
por ejemplo ejecutar cdigo contenido en una variable en forma de
cadenas de caracteres. Usualmente, este tipo de instrucciones es
imposible de tratar por medio de compiladores. Los lenguajes que
incluyen este tipo de operadores y que, por tanto, exigen un intrprete,

se llaman interpretativos. Los lenguajes compilativos, que permiten el


uso de un compilador, prescinden de este tipo de operadores.
Por otro lado, comprend que un compilador, requiere de una sintaxis y
lenguajes especficos, ya que, al igual que el lenguaje humano, si no lo
escribimos correctamente el compilador no har lo que deseamos. Y
que en la compilacin hay dos partes: Anlisis y Sntesis. La parte del
anlisis divide al programa fuente en sus elementos componentes y
crea una representacin intermedia. Tambin he notado como todas
nuestras materias se va complementando y enlazando.
No solo se tomaba en cuenta las estructuras de un compiladores ya que
es la esencial para la creacin de un compilador si no tambin la
eleccin de que lenguajes a compilar o traducir hay que entender bien el
funcionamiento de tal lenguaje ya que al equivocarnos podra darnos
errores no pocos si no muchos si no conocemos que funciones hace o
que operaciones podemos utilizar