Sie sind auf Seite 1von 21

Contenido

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

mquina a partir de una nica lectura del cdigo fuente.

Compiladores de varias pasadas: necesitan leer el cdigo fuente varias veces antes de poder producir el cdigo mquina.

Compiladores JIT intrprete necesitan. y

(Just In Time): forman parte partes del cdigo

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

ejecutable, un concreta, ejecutar los son los

as el en

que

si una

una plataforma concreta (una existe quiz alguna otra se

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

programa ambas. ms ya programas

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

normalmente serias suelen la que se

dificultades. de destino, siendo ms portables. van a de estar muy

programas

plataforma

lenguajes

interpretados

no

suelen

proporcionar mecanismos ligazn a

al suelen ser muy dependientes de la ms plataforma la flexibles compilados. de y destino, suelen potentes pero que en los ser menos

programador de una mayor

potentes y flexibles, a costa contrapartida plataforma. -Una vez compilado

el -El cdigo fuente es necesario en

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

contiene errores sintcticos, haciendo el compilador no producir un error ejecutable.

enmascarado, si para una ejecucin concreta no es necesario traducir la lnea que lo contiene. (Algunos intrpretes son capaces de evitar esto)

-Un programa compilado puede, -Un a la estabilidad de los de

programa ser

interpretado torpe que el interrumpido ya su control

con

un sin del

por error, afectar seriamente comportamiento la puede plataforma, comprometiendo la dificultad, ejecucin procesos. otros est bajo

normalmente ejecucin

intrprete, y no slo del sistema operativo.

Estructura de un intrprete.

Estructura de un compilador

10

Etapas del proceso de interpretacin


Cuando se construye un intrprete conviene utilizar una Representacin Interna (RI) del lenguaje fuente a analizar. De esta forma, la organizacin interna de la mayora de los intrpretes se descompone en los mdulos: Traductor a Representacin Interna: Toma como entrada el cdigo del programa P en Lenguaje Fuente, lo analiza y lo transforma a la representacin interna correspondiente a dicho programa P. Representacin Interna (P/RI): La representacin interna debe ser consistente con el programa original. Entre los tipos de representacin interna, los rboles sintcticos son los ms utilizados. Tabla de smbolos: Durante el proceso de traduccin se crea una tabla con informacin relativa a los smbolos que aparecen. Se pueden almacenar etiquetas para instrucciones de salto, informacin sobre identificadores (nombre, tipo, lnea en la que aparecen, etc.) o cualquier otro tipo de informacin que se necesite en la etapa de evaluacin. Evaluador a de Representacin las acciones Interna: indicadas A para partir de la los

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.

Desarrollo de sistemas interactivos. Rapidez en el desarrollo. Portabilidad

Desventajas
Son menos veloces Cdigo menos eficiente Lenguajes basados en interpretes no son muy adecuados para proyectos grandes

12

Aplicacin de los Intrpretes


Los sistemas o lenguajes interpretados desde que aparecieron han tenido una importancia considerable frente a los lenguajes de escritorio. Anteriormente con estos lenguajes, se buscaba una eficiencia en muy las tareas a ejecutar con as los como en el desempeo que y la optimizacin del hardware, el hecho de tener dispositivos no rpidos, comparados fuera actuales, y que se hacan tuviera programacin estructurada, mucho

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

A continuacin se presentan algunas actividades donde suelen usarse sistemas interpretados:

Desarrollo de prototipos Cuando el lenguaje tiene caractersticas que exigen un intrprete. Cuando se quiere obtener una independencia de la sistema operativo

13

Aunque tambin podemos observar aplicaciones ms claras en la actualidad, como lo es en:

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.

Lenguajes languages, aplicacin.

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

sistemas interactivos donde se relacin mdulos compilados con modificables.

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

Binding-time analysis es una tcnica para determinar los datos estticos

18

Compiladores Just in Time

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

Das könnte Ihnen auch gefallen