Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 20

Universidad de Costa Rica

Sede Guanacaste

Trabajo de Investigación de los compiladores e interpretes

Estudiantes:

Katherine Valle Rosales. ID: B77871

Jose Carlos Viales Guevara. ID: B78285

Curso: Introducción a la computación e informática. IF-1300

Profesor: M.C.I Kenneth Sánchez

2017
Contenido
1. Introducción................................3
2. Objetivos generales:......................4
3. Objetivos específicos:....................5
4. Antecedentes.................................6
5. Funcionamiento
de los Compiladores......................7
5.1 Preprocesador.............................7
5.2 Compilación.................................8
5.2.4 Síntesis...................................10
6. Ensamblaje..................................10
7. Link o Enlazado...........................11
8. Funcionamiento del intérprete…………………………………..11

9. Ventajas y desventajas de los compiladores…………………12

10. Ventajas y desventajas de los interpretes…………………13

11. Lenguajes de programación……………………………14

12.Glosario……………………………………………15

13. Conclusión………………………………………17

14. Bibliografía……………………………………….18

2
1. Introducción audiovisuales a nuestra vida

cotidiana, facilitando así la


La importancia de la Informática
presentación de datos e
y la Computación, ha venido
información con mayor precisión y
ganando peso en los últimos años,
exactitud. De acuerdo a la
tanto así, que ahora no podríamos
necesidad del hombre, se define el
ejecutar nuestras labores diarias
algoritmo que suple la necesidad,
con la misma eficiencia y eficacia,
el programador lo transcribe en un
sin la ayuda de ellos.
lenguaje de programación, el cual
Algunos países, no han sido la computadora es capaz de
influenciados por la tecnología en interpretar con la ayuda de un
su totalidad, otros, dependen de traductor, luego la computadora
ellos. Independientemente de cuan ejecuta el algoritmo expresado
alta sea la demanda en nuestro como programa y entrega al
país, es de suma importancia hombre la respuesta. Los
conocer este fenómeno que ha lenguajes de programación son el
llegado a modificar nuestro estilo medio de comunicación directo
de vida en todos los aspectos entre el hombre y la máquina.

 La computadora fue inventada a La forma en que haya sido

partir de la necesidad del ser interpretado el lenguaje de

humano de realizar estudios, crear programación, va a intervenir

archivos, e integrar herramientas directamente en la manera en que

3
el hombre recibe la respuesta por El presente trabajo incluye la

parte de la máquina, y de ahí la definición de dichos términos y

importancia de los Compiladores e asimismo la comparación entre

Intérpretes, ya que ellos cumplen ellos, las ventajas y desventajas de

la función de un traductor humano su utilización, características y

que toma nota de lo que está formas de funcionamiento, esto

escuchando para expresarlo en con el propósito de facilitar al

otro idioma. lector, a la hora de elegir entre

compilador o interprete.

2. Objetivos generales: compilador o un intérprete de


 Desarrollar el tema de tal
acuerdo a sus requerimientos
forma que llene las
y/o a los del usuario
expectativas del lector en
 Analizar sus antecedentes y de
cuanto a coherencia y validez
esa forma comprender el
de la información
origen de su creación
 Investigar el tema de manera
 Mencionar algunos lenguajes
global para así comprender
de programación con el
con más facilidad cada uno de
propósito de analizar el
sus componentes
funcionamiento de los
 Brindar al lector la información
traductores y determinar con
necesaria para elegir entre un

4
mayor precisión cuál de ellos fue utilizado.

3. Objetivos específicos:
 Analizar la necesidad que  Describir el funcionamiento de

existe de programas que ensambladores, compiladores

traduzcan el lenguaje de e interpretes

maquina  Diferenciar y /o comparar los

 Definir los conceptos “compilar programas encargados de

e interpretar” traducir de código, a código

binario

5
4. Antecedentes
En 1946, se desarrolla el primer se comienza a desarrollar FORTRAN.

ordenador digital en el cual las FORTRAN se utiliza en la IBM

instrucciones que se ejecutaban eran modelo 704. El primer compilador de

códigos numéricos, lenguaje de FORTRAN tardó 18 años en

máquina., esto es fastidioso y lento, realizarse y además de eso, era

entonces surgen los ensambladores. dependiente de la máquina.

Al inicio el programa se escribía


A partir de 1975, aparece LEX, un
mediante claves y luego se traducía
generador automático de
manualmente al lenguaje de
analizadores léxicos a partir de
máquina. Cuando esto lo hizo la
expresiones regulares bajo UNIX;
misma máquina, a este trabajo se le
para esta misma época, Johnson
llamó ensamblar el programa. Cuatro
crea YACC para UNIX (generador de
años más tarde John Backus dirige
analizadores sintácticos), ahora un
una investigación en IBM en un
compilador se divide en varias fases.
lenguaje algebraico y a partir de ahí

6
Compilación, Ensamblado y

Enlazado.

5.1 Preprocesador
La primera etapa de la compilación y
5. Funcionamiento de los
consisten en expandir las directivas
Compiladores
del preprocesador. Veamos un
Un compilador es un programa que
ejemplo; siempre puede examinar
traduce un lenguaje de programación
cómo se va a expandir una fuente '.c'
a otro en un lenguaje binario el cual
usando la opción -E del
es mucho más sencillo y entendible
preprocesador:
por la máquina, por lo que se podría

decir que traduce un lenguaje de alto % gcc -E prog.c

nivel a uno de bajo nivel, también


Arroja a la salida estándar el
informa al usuario si existen errores
resultado del preproceso. Ojo: este
en el código fuente con el fin de
archivo puede ser muy grande
ejecutar la aplicación sin problema.
cuando se incluye archivos de
Para que este programa pueda
encabezado como stdio.h.
traducir correctamente los lenguajes

está dividido en cuatro grandes

módulos: que son el Preprocesador,

7
Esta etapa la lleva a cabo un proceso En realidad se puede incluir cualquier

independiente denominado cpp (que archivo, no necesariamente tiene que

viene de C preprocessor). tener la extensión '.h' pero por

convención esa es la que usa. Aquí


A continuación se explican las
típicamente se encuentran:
directivas más usadas.

#include

 Las definiciones de tipos y


Por ejemplo:
estructuras compartidas por todos
#include <stdio.h>
los archivos.

#include "mis_definiciones.h"
 Los encabezados de funciones

compartidas por todos los

archivos.

5.2 Compilación puro de entrada a un análisis léxico


 El segundo módulo es el
gráfico, a un análisis sintáctico, a un
de compilación que recibe el código
análisis semántico, que construyen la
fuente puro, este es el modulo
tabla de símbolos, se genera un
principal de un compilador, pues si
código intermedio al cual se optimiza
ocurriera algún error en esta etapa el
para así poder producir un código de
compilador no podría avanzar. En
salida generalmente en algún
esta etapa se somete al código fuente
lenguaje ensamblador.

8
Estructura de un Compilador

5.2.1 Análisis 5.2.2 Análisis 5.2.3 Análisis Semántico. 


Léxico.  Sintáctico.  La fase de análisis semántico se
En la fase de En esta fase, los intenta detectar instrucciones que
análisis léxico se tengan la estructura sintáctica
componentes léxicos
leen los caracteres correcta, pero que no tengan
(token) se agrupan significado para la operación
del programa en frases implicada. La fase de análisis
fuente y se gramaticales que el semántico revisa el programa
agrupan en compilador utiliza fuente para tratar de encontrar
cadenas que para sintetizar la errores semánticos y reúne la
representan los salida. El analizador información sobre los tipos para
componentes la fase posterior de generación
sintáctico (A.S.)
léxicos (a las de código. En ella se utiliza la
comprueba que el estructura jerárquica determinada
cadenas de esta orden en que el por la clase de análisis sintáctico
secuencia se le analizador léxico le para identificar los operadores y
llama lexema o va entregando los operandos de expresiones y
token) Cada tokens es válido. Si proposiciones.
componente léxico esto es así
es una secuencia significará que la
lógicamente sucesión de
coherente de símbolos que
caracteres relativa representan dichos
a un identificador, tokens puede ser
una palabra generada por la
reservada, un gramática
operador o un correspondiente al 9
carácter de lenguaje del código
5.2.4 Síntesis 6. Ensamblaje
Después del proceso de análisis se Esta etapa recibe el archivo en

procede a generar grupos de los assembler (extensión '.s') y produce

componentes que conforman el instrucciones ejecutables

programa, para generar una salida. directamente por la máquina (archivo

con extensión '.o'). Sin embargo el


· Generación de código intermedio:
archivo todavía no es ejecutable
este código se genera con el fin de
porque contiene referencias
mejorar el uso de la memoria con el
pendientes a funciones y variables
fin de optimizar código fuente.
definidas en otros archivos.
· Optimización de código: el objeto de
Esta etapa la lleva a cabo un proceso
esta fase es mejorar el código para
independiente denominado as (que
que sea más rápido ejecutarlo.
viene de assembler).
· Generación de código: Aquí se crea

el código final de salida que va a ser

interpretado por la máquina.

10
especificadas por ella. La parte de

análisis puede realizarse de manera

idéntica a como se lleva a cabo en los

7. Link o Enlazado compiladores. Es la parte de síntesis


Esta etapa es la que se encarga de
la que se diferencia sustancialmente.
juntar todos los archivos y generar un
En el caso de la interpretación, se
solo gran archivo correspondiente al
parte del árbol de sintaxis abstracta y
binario ejecutable. Si no se especifica
se recorre, junto con los datos de
un nombre, por omisión se usa 'a.out'.
entrada, para obtener los resultados.
Esta etapa la realiza el comando ln
Un intérprete permite utilizar
(que viene de link). En ella se
funciones y operadores más
resuelven las referencias pendientes,
potentes, como por ejemplo ejecutar
es decir las llamadas a funciones
código contenido en una variable en
definidas en otros archivos.
forma de cadenas de caracteres.
8. Funcionamiento del Intérprete
Usualmente, este tipo de

Mientras que el objetivo de los instrucciones es imposible de tratar

compiladores es obtener una por medio de compiladores. Los

traducción del programa fuente a otro lenguajes que incluyen este tipo de

lenguaje, los intérpretes tienen como operadores y que, por tanto, exigen

objeto la obtención de los resultados un intérprete, se llaman

del programa. Para ello deben interpretativos. En pocas palabras

realizar dos tareas: analizar su el compilador sólo traduce; el

entrada y llevar a cabo las acciones intérprete decodifica y ejecuta

11
variables y demás partes de un

programa.

 Son unidades autónomas listas


9. Ventajas y desventajas de los
para ser ejecutadas.
Compiladores

Ventajas

 Genera un archivo ejecutable.


Desventajas
 La traducción se realiza una

sola vez (se compila una vez,  Son menos flexibles como

se ejecuta n veces) entornos de programación y

 La traducción es rápida por depuración.

que el programa es traducido a  El programa no se puede

lenguaje máquina. ejecutar de inmediato, debe

 Una parte importante de la esperar a ser compilado

compilación es que los errores completamente

sintácticos son detectados  El tiempo de compilación

mientras se está compilando, puede hacer el proceso

si hay errores el compilador no sumamente largo,

podrá realizar el ejecutable. especialmente durante la

 Poseen un editor integrado con etapa de desarrollo, cuando el

un sistema de coloreado para código debe ser compilado

los comandos, funciones, para probar su funcionalidad y

resolver errores.

12
 No permite la ejecución paso a rápida, ya que no suele
ejecutar todo el programa.
paso del programa y con ello

impide la edición seguimiento y

depuración del programa.

10. Ventajas y desventajas

del intérprete

Ventajas Desventajas

 Facilita la búsqueda de
 Cuando los programas son
errores, pues la ejecución de
pequeños, la velocidad de
un programa puede
ejecución es bastante lenta
interrumpirse en cualquier
con respecto a los programas
momento para estudiar el
compilados.
entorno (valores de las
variables, etc.).  No genera un archivo
ejecutable.
 Detecta errores de sintácticos,
ya que se traduce y se ejecuta  Durante la ejecución, el
al mismo tiempo intérprete debe residir en
memoria ya que no genera
 La traducción se realiza en código objeto.
cada ejecución.
 No son adecuados en la fase
 El programa puede modificarse de explotación del programa
sobre la marcha, sin necesidad ya que el proceso de
de volver a comenzar la interpretación se ha de repetir
ejecución. cada vez que se ejecuta el
programa
 Se requiere el código fuente
para ejecutar un programa
(ideal para desarrolladores y
estudiantes de programación).
 Si el programa es muy largo la
ejecución es mucho más

13
11. Lenguajes de programación

Compilados Interpretados

Fortran Ruby

Haskell Python

Pascal PHP

Visual Basic JavaScript


Cobol Smalltalk

C Perl

C++ MATLAB

ADA Mathematica

Algol ActionScrib

Delphi ASP

Cobra Bash

14
12.Glosario

FORTRAN:

El Fortran
Lenguaje Binario:
(Formula Translating System) es
un lenguaje de programación de alto El sistema binario, llamado
nivel de propósito general, también sistema diádico en ciencias
procedimental e imperativo, que está de la computación, es un sistema de
especialmente adaptado al cálculo numeración en el que los números se
numérico y a la computación representan utilizando solamente
científica. dos cifras: cero y uno (0 y 1). Es uno
de los sistemas que se utilizan en
IBM:
las computadoras, debido a que estas
International Business trabajan internamente con dos niveles
Machines. (IBM) es una de voltaje, por lo cual su sistema de
reconocida empresa multinacional numeración natural es el sistema
estadounidense de tecnología y  binario (encendido 1, apagado 0).
consultoría con sede
Depuración:
en Armonk, Nueva York. IBM fabrica,
comercializa hardware y software  Depuración de programas es el
para computadoras, y proceso de identificar y
ofrece servicios de infraestructura, corregir errores de programación. 
alojamiento de Internet,
y consultoría en una amplia gama de
áreas relacionadas con la informática, Código objeto:
desde computadoras
centrales hasta nanotecnología. En programación, se llama código
objeto al código que resulta de
Sintaxis: la compilación del código
La sintaxis de programación es el fuente.1 Puede ser en lenguaje
conjunto de normas que regulan y máquina o bytecode, y puede
coordinan las distintas variables y su distribuirse en varios archivos que
asociación. corresponden a cada código fuente
compilado.

15
ensamblador, a un fichero objeto que
contiene código máquina, ejecutable
directamente por el microprocesador.

LEX:
Tokens:
Lex es un programa para
Un token o también generar analizadores
llamado componente léxico es léxicos (en inglés scanners o lexers).
una cadena de caracteres que tiene Lex se utiliza comúnmente con el
un significado coherente en programa yacc. Fue escrito
cierto lenguaje de programación.  originalmente por Eric Schmidt y Mike
Ejemplos de tókens podrían ser Lesk, es el analizador léxico estándar
palabras clave (if, else, while, en los sistemas Unix.
int,.), identificadores, números,
YACC:
signos, o un operador de varios
caracteres. Yacc es un programa para
generar analizadores sintácticos. Las
Código fuente:
siglas del nombre significan Yet
El código fuente de un programa Another Compiler-Compiler, es decir,
informático (o software) es un "Otro generador de compiladores
conjunto de líneas de texto con los más". Genera un analizador sintáctico
pasos que debe seguir (la parte de un compilador que
la computadora para ejecutar dicho comprueba que la estructura
programa.
del código fuente se ajusta a la
El código fuente de un programa está especificación sintáctica del lenguaje)
escrito por un programador en basado en una gramática analítica.
algún lenguaje de programación, pero
en este primer estado no es UNIX:
directamente ejecutable por la
computadora, sino que debe ser Unix es uno de
traducido a otro lenguaje o código los sistemas operativos más
binario; así será más fácil para la revolucionarios que existieron en la
máquina interpretarlo.
era dorada de las
computadoras (finales de los 60 y
Ensambladores: principio de los 70). Su principal
atributo es que se trataba de
El término ensamblador (del un sistema operativo de tareas
inglés assembler) se refiere a un tipo múltiples, capaz de “Abrir varios
de programa informático que se programas” no simultáneamente,
encarga de traducir un fichero pero los sistemas operativos que
fuente escrito en un lenguaje existían en ese entonces solo se

16
dedicaban a una sola cosa, este cada una viene a satisfacer distintas
destacó por
ser “Multitarea” y portable. necesidades en cuanto a formas de

ejecutar el programa. Asimismo,


13.Conclusión
observamos las fases de la
Después de haber investigado acerca compilación, lo que nos facilita
del origen de los traductores, nos comprender que ocurre a la maquina
damos cuenta de cómo mientras compilamos un programa, lo
programadores alrededor del mundo, cual es de suma importancia para
se han encargado de trabajar para nosotros e incluso a los usuarios si
facilitarnos la introducción de órdenes fuese necesario. Por otra parte, a
a ejecutar, en una máquina, dando través de esta investigación,
esto como resultado los traductores logramos adquirir vocabulario
hoy comúnmente utilizados y como enfocado en nuestra área de estudio,
estos han ido mejorando con el paso lo cual nos enriquece como
de los años. Asimismo, analizamos estudiantes y como futuros
las diferencias entre compiladores e profesionales.
intérpretes y de esta forma

concluimos que el tipo de traductor

que vayamos a utilizar para traducir

nuestro lenguaje, va a depender de

cuáles sean nuestros objetivos como

programadores y no de cual opción

sea mejor que la otra, debido a que

17
http://racherfou.blogspot.com/2011/02

/diferencia-entre-interprete-y.html

14.Bibliografía

Velasco, JJ. (2011). Historia de la

tecnología: 30 años del IBM PC. Villalta, PG. (2012). Clasificación de

Vip.Hipertextual. los Interpretes [mensaje en un blog].

https://hipertextual.com/2011/08/30- Recuperado de http://compiladores-


anos-del-ibm-pc
interpretes.blogspot.com/2012/01/c

Yapura, Gustavo Daniel. (2010). Rx lasificacion-de-interpretes.html


de un Compilador. UTN Facultad
Rojas, G. (Enero-2014). Introducción
Córdoba.
a los Compiladores [mensaje en un
http://www.investigacion.frc.utn.ed blog]. Recuperado de

u.ar/labsis/Publicaciones/InvesDes/ http://profesorgavit0.blogspot.com/20

14/01/compiladores-
Compiladores/rxc.htm
introduccion.html?m=1
J. A., Jesús. (2011). Diferencia entre
Ceballos Carmona, MG. (2002).
Interprete y Compilador. Ingeniería en
Trabajo para la materia Lenguajes y
Sistemas.Network.
autómatas. Universidad ITESI.

Irapuato, Gto.

18
C, Paula. (2015) Lenguaje compilado

e interpretado, itm201511,

Recuperado de:

http://itm201511.webnode.es/archivos

-del-sistema/lenguajes/lenguaje-

compilado-e-interpretado/

Fernando, Luis. (2010) Comparación


intérpretes y compiladores, Software
de sistemas,
http://g241veq10.blogspot.com/2010/
04/153-comparacion-interpretes-
y.html

19
20

También podría gustarte