Beruflich Dokumente
Kultur Dokumente
Interpretes Introduccin3 Definicin4 Interprete vs Compilador5 Estructura10 Etapas del proceso de interpretacin11 Ventajas y Desventajas de su uso12 Aplicacin13 Tipos de intrpretes15 Conclusin21
Introduccin
Como bien sabemos, todas las computadoras tienen una unidad central de proceso (CPU), la cual se caracteriza por las instrucciones y operaciones bsicas que puede ejecutar. Para que un programa se ejecute de manera correcta en la CPU es necesario que se traduzca a las instrucciones que solo conoce la CPU. tarea es la de Esto se puede lograr con un compilador, su traducir sin errores el cdigo o las
instrucciones de un lenguaje de programacin a cdigo maquina el cual la CPU puede ejecutar. Pero tambin existe otra manera de ejecutar las instrucciones de un lenguaje de programacin, mediante un intrprete, es decir, un traductor que no genera un cdigo objeto como lo hace un compilador, sino que analiza y ejecuta lnea por lnea un cdigo fuente.
Definicin
Un intrprete es un programa que analiza y ejecuta las instrucciones de un lenguaje de programacin, por cada lnea leda se realiza una ejecucin, por lo cual podemos decir que se sigue un proceso iterativo, al tomar cada sentencia y ejecutarla inmediatamente.
Interprete vs Compilador
El proceso de compilacin consiste en leer un cdigo fuente de un programa, y lnea por lnea, traducir cada instruccin por otras en lenguaje mquina que realicen lo mismo que las instrucciones del lenguaje de alto nivel. Repitiendo este proceso para todo el cdigo fuente, se
obtiene un conjunto de instrucciones en lenguaje mquina. Cuando se graban esas instrucciones en lenguaje mquina en un fichero que contiene una estructura determinada para un sistema operativo que es capaz de entender, se obtiene un fichero ejecutable. El que se encarga de realizar esta traduccin es un tipo de programa llamado compilador. Los compiladores se pueden clasificar en diferentes
categoras:
Compiladores cruzados: generan cdigo para un sistema distinto del que estn funcionando. Compiladores optimizadores: realizan cambios en el
cdigo para mejorar su eficiencia, pero manteniendo la funcionalidad del programa original.
Compiladores
de
una
sola
pasada:
generan
el
cdigo
Compiladores de varias pasadas: necesitan leer el cdigo fuente varias veces antes de poder producir el cdigo mquina.
de
un se
compilan
segn
A diferencia del compilador, el intrprete no produce una traduccin a cdigo mquina. El intrprete intenta ejecutar enseguida lo que se expresa en los ficheros fuente.
Cuando un programa es interpretado, el proceso que se sigue es el siguiente: el intrprete obtiene una instruccin del fichero fuente y la ejecuta inmediatamente.
Cuando la CPU termina la ejecucin de esa secuencia, el resultado es que la CPU habr hecho lo que la lnea de cdigo fuente expresaba. Repitiendo intrprete esta realiza secuencia lo que para los todas ficheros las lneas, el
fuente
expresan;
ejecuta el programa. La principal ventaja del proceso de compilacin frente al de interpretacin es que los programas se ejecutan mucho ms rpido una vez que se compilan; por el contrario, en la actualidad es ms cmodo desarrollar un programa mediante un
intrprete que mediante un compilador porque en el intrprete las fases de edicin y ejecucin estn ms integradas. La depuracin de los programas suele ser ms fcil en los intrpretes que en los compiladores por que el cdigo fuente est presente durante la ejecucin. En la actualidad est teniendo mayor auge el uso de lenguajes interpretados, por la facilidad de aprendizaje y por la adaptacin a diferentes sistemas operativos con el solo hecho de tener un intrprete instalado. Para la eleccin entre escoger lenguajes compilados o
interpretados debemos tener dos perspectivas, de desarrollo y ejecucin, que es lo ms importante en la realizacin de un proyecto. Desde la perspectiva del desarrollo, por una parte, aunque un compilador permite detectar e informar ms errores que un intrprete, la compilacin puede ser muy lenta, lo que restara tiempo de desarrollo. Por otra parte, el hecho de que un intrprete lea cada instruccin del cdigo fuente y lo ejecute es una ayuda o ventaja para desarrollar herramientas de depuracin mucho ms rpidos que permiten, por ejemplo, realizar cambios en el cdigo mientras se depura.
Cuadro comparativo
Compilar
-Genera un ejecutable
Interpretar
-No genera un ejecutable proceso de traduccin se
-El proceso de traduccin se -El realiza una sola vez -La ha ejecucin sido es muy a
realiza en cada ejecucin rpida -La ejecucin es ms lenta, ya que cada lnea del programa es cdigo necesario realizar la traduccin
debido a que el programa ya para traducido mquina -El ejecutable va dirigido a -No
hay
as el en
que
si una
intrprete
para
CPU, un sistema operativo, y plataforma podr consideracin), prcticamente portarlo ocasiones, compilador plataforma, recompilar aunque plantea Los compilar ligados destino. -Los lenguajes compilados -Los a el a si otra. existe para se
siendo Tpicamente, imposible interpretados En portables otra mismo programa, van a que
mucho compilados, en no
un que suelen existir intrpretes del lenguaje interpretar distintas suelen ser puede plataformas. Los programas que se esto muy dependientes de su plataforma
programas
plataforma
lenguajes
interpretados
no
suelen
al suelen ser muy dependientes de la ms plataforma la flexibles compilados. de y destino, suelen potentes pero que en los ser menos
programa, el cdigo fuente no cada ejecucin, as que no puede es necesario para ejecutarlo, permanecer en secreto as que puede permanecer en secreto si se desea. -Los errores sintcticos durante Si la se -Los errores sintcticos se
detectan compilacin.
la detectan durante la ejecucin, ya fuente que traduccin y ejecucin se van simultneamente. podra Algn quedar sintctico
enmascarado, si para una ejecucin concreta no es necesario traducir la lnea que lo contiene. (Algunos intrpretes son capaces de evitar esto)
programa ser
con
un sin del
por error, afectar seriamente comportamiento la puede plataforma, comprometiendo la dificultad, ejecucin procesos. otros est bajo
normalmente ejecucin
Estructura de un intrprete.
Estructura de un compilador
10
Representacin Interna anterior y de los datos de entrada, se llevan cabo obtener resultados. Durante el proceso de evaluacin es necesario contemplar la aparicin de errores Tratamiento de errores: Pueden surgir diversos aparecer diversos errores como overflow, divisiones por cero, etc. que el intrprete debe contemplar.
11
Ventajas
No se necesita tener todo el cdigo fuente en memoria Flexibilidad: permite realizar acciones complejas, imposibles o muy difciles como las siguientes:
o
Modificar sobre la marcha el significado de los smbolos e incluso prescindir por completo de las declaraciones. Simplificar la gestin de memoria en los programas fuente.
Facilidad de depuracin de programas: la interpretacin puede interrumpirse en cualquier momento para examinar o modificar los valores de las variables o la situacin en la ejecucin. La tabla de smbolos est disponible. Se pueden corregir los errores y continuar. Trazas y paradas programadas. Saltos en el programa. Abandonos de subrutinas.
Desventajas
Son menos veloces Cdigo menos eficiente Lenguajes basados en interpretes no son muy adecuados para proyectos grandes
12
cuidado con el manejo en memoria. Con el desarrollo del hardware, de tener memorias y discos duros tareas. En el presente, el programador ya no se preocupa mucho en la eficiencia como en la capacidad de desarrollo rpido. de mayor capacidad, hacen que los sistemas interpretados tengan mayor aplicacin en la automatizacin de
Desarrollo de prototipos Cuando el lenguaje tiene caractersticas que exigen un intrprete. Cuando se quiere obtener una independencia de la sistema operativo
13
Intrpretes de Comandos, estos toman el lenguaje fuente y ejecutan las operaciones sobre el sistema operativo en uso. Ejemplo de esto sera el command.exe de Windows (cmd) o la terminal en Linux.
basados los
en
Escritos, sirven
los como
llamados enlace a
Script otras
cuales
Lenguajes de Propsito Especifico, hay algunos lenguajes que realizan tareas complejas pero en contextos especficos.
Dentro de los lenguajes de programacin interpretados ms famosos en este momento podemos encontrar: Python, Perl, Ruby, incluso Java, este ltimo con su mquina virtual es capaz de ejecutarse en cualquier sistema operativo, llegando a ser muy poderoso.
14
Tipos de Interpretes
La clasificacin de los intrpretes se puede hacer en funcin de su estructura interna. Podremos observar que hay algunos que son hbridos, es decir, una mezcla del proceso de compilacin e interpretacin.
Interpretes Puros
Los
intrpretes
puros
son
los
que
analizan
ejecutan
sentencia a sentencia todo el programa fuente. Siguen un modelo de interpretacin iterativa y por eso se utilizan principalmente para lenguajes sencillos. Son pensados para equipos con una limitada memoria, en este tipo de intrpretes si se produce un error, se tiene que volver a ejecutar desde el inicio. El evaluador de instrucciones determina que instruccin debe de ejecutarse as como los datos de entrada que se necesita o en su defecto genera un error.
15
Su estructura es la siguiente:
Esta figura representa de manera general la estructura de un intrprete en memoria. puro, podemos ver que el lenguaje fuente se traduce a una representacin interna que se puede almacenar
16
Interprete Avanzado
Incorporan
un
paso
previo
de
anlisis
de
todo
el
programa fuente. Genera posteriormente un lenguaje intermedio ejecutado por el intrprete mismo. Se usa para lenguajes ms avanzados, ya que permite otro tipo de anlisis y optimizaciones.
Interprete Incremental
Hay algunos lenguajes que no se pueden compilar directamente, porque pueden manejar objetos o funciones que no se conocen en tiempo de compilacin, estos se crean en tiempo de ejecucin. Lenguajes como estos son: Lisp, Prolog, Para tener una mejor interpretacin se disearon los compiladores incrementales. Estos sistemas no producen un cdigo objeto, en lugar de eso acompaan al sistema para compilar los mdulos en tiempo de ejecucin, al cdigo objeto generado (run time system). Generalmente se usan esos compiladores incrementales en
17
Evaluadores Parciales
Programas con dos tipos de datos de entrada Dado un programa P o Construir un programa Pesp para los datos estticos Est) cd P. o Pesp suele estar escrito en el mismo lenguaje que P y produce la misma salida que ste para los datos dinmicos
Se gana eficiencia cuando es conocido que un programa va a ejecutarse muchas veces sobre un mismo conjunto de datos
18
Estos surgen con la necesidad de que se distribuyan programas independientes a la mquina, portabilidad. Para lograr esto, evitan la interpretacin de los cdigos de bytes y los transforman a cdigo nativo, esto es cada vez que lo necesite el programa.
19
Compilacin Continua
La compilacin continua es una mejora de just in time, en esta se mezcla la compilacin a cdigo nativo con la interpretacin. Aqu el intrprete se ocupa de la ejecucin del programa, comenzando a interpretar el cdigo fuente, haciendo saltos a las versiones en cdigo nativo en la medida de que estn disponibles.
20
Conclusin
La utilizacin de sistemas interpretados en la actualidad nos ayuda o facilita la realizacin de un proyecto, aunque la utilizacin de los mismos va a depender del objetivo del proyecto, si bien es cierto los lenguajes interpretados son portables, al contar solo con un intrprete del lenguaje en la mquina. Esto no quiere decir que sea efectivo a la hora de optimizar la memoria de la CPU, parte importante en el desarrollo de software. Por lo tanto, escoger entre compiladores o intrpretes, depende del alcance que queremos tener en nuestro programa o sistema.
21