GUIA
https://docs.google.com/file/d/0B1zWyaP2Sib2S2dKQWo4ZUZtUXM/edit
Interpretes
jueves, 13 de septiembre de 2012
VENTAJAS
DE LA UTILIZACION DE INTÉRPRETES
Ø Realizan la fase de
análisis y ejecución a la vez, lo cual imposibilita tales optimizaciones. Los
sistemas interpretados suelen ser menos eficientes que los compilados.
Ø Son más sencillos de implementar. Lo cual facilita
el estudio de la corrección del intérprete y proporciona nuevas líneas de
investigación como la generación automática de intérpretes a partir de las
especificaciones semánticas del lenguaje.
Ø Proporcionan una mayor flexibilidad que permite
modificar y ampliar características del lenguaje fuente.
Ø Facilitan la meta-programación. Un programa puede
manipular su propio código fuente a medida que se ejecuta. Esto facilita la
implementación de sistemas de aprendizaje automatizado y reflectividad.
Ø Portabilidad del lenguaje: Para que el lenguaje interpretado funcione
en otra máquina sólo es necesario que su
intérprete funcione en dicha máquina.
Ø Facilitan el
desarrollo rápido de prototipos,
potencian la utilización de sistemas interactivos
y facilitan las tareas de depuración.
APLICACIONES
DE LOS SISTEMAS BASADOS EN INTÉRPRETES
Ø Intérpretes de
Comandos:
Los sistemas operativos cuentan con intérpretes de comandos, toman un lenguaje
fuente que puede incluir sentencias de control (bucles, condiciones, asignaciones,
etc.) y ejecutan los diferentes comandos a medida que aparecen en el lenguaje.
Ø Lenguajes basados en
Escritos: diseñados
como herramientas que sirvan de enlace entre diferentes sistemas o
aplicaciones. Suelen ser interpretados con el fin de admitir una mayor
flexibilidad a la hora de afrontar las peculiaridades de cada sistema.
Ø Entornos de
Programación:
suelen disponer de un complejo entorno de desarrollo interactivo con
facilidades para la depuración de programas. Entre estos sistemas pueden
destacarse los entornos de desarrollo para Lisp, Visual Basic, Smalltalk, etc.
Ø Lenguajes de
Propósito Específico:
Ciertos lenguajes incluyen sentencias que realizan tareas complejas en
contextos específicos. Existe una gran variedad de aplicaciones en las que se
utilizan este tipo de lenguajes como consultas de Bases de Datos, simulación,
descripción de hardware, robótica, CAD/CAM, música, etc.
Ø Sistemas en Tiempo
Real: Entornos
que permiten modificar el código de una aplicación en tiempo de ejecución de
forma interactiva.
Ø Intérprete de Código
Intermedio:
Una tendencia tradicional en el diseño de compiladores es la generación de un
código intermedio para una máquina abstracta, El siguiente paso puede ser:
generación del código objeto a partir del código intermedio para una máquina
concreta, finalizando el proceso de compilación o interpretar dicho código intermedio en una máquina concreta.
TIPOS
DE INTÉRPRETES
Ø
Intérpretes puros son los que analizan y ejecutan sentencia a
sentencia todo el programa fuente. Siguen el modelo de interpretación iterativa
y, por tanto, se utilizan principalmente para lenguajes sencillos.
Ø
Intérpretes avanzados o normales incorporan un paso previo
de análisis de todo el programa fuente. Generando posteriormente un lenguaje
intermedio que es ejecutado por ellos mismos. Permiten realizar un análisis más
detallado del programa fuente (comprobación de tipos, optimización de
instrucciones, etc.)
Ø
Interpretes
incrementales:
Existen ciertos lenguajes que, por sus características, no se pueden compilar
directamente. La razón es que pueden manejar objetos o funciones que no son
conocidos en tiempo de compilación, ya que se crean dinámicamente en tiempo en
ejecución. La idea es compilar aquellas partes estáticas del programa en lenguaje
fuente, marcando como dinámicas las que no puedan compilarse. Posteriormente,
en tiempo de ejecución, el sistema podrá compilar algunas partes dinámicas o
recompilar partes dinámicas que hayan sido modificadas.
Ø
Evaluadores parciales: La utilización de
evaluadores parciales o especializadores surge al considerar que muchos
programas contienen dos tipos de datos de entrada.
lunes, 10 de septiembre de 2012
Suscribirse a:
Entradas (Atom)