INTRODUCCIÓN A INTÉRPRETES Flashcards
¿Qué es un intérprete?
Un programa que analiza y ejecuta, simultáneamente, un programa escrito en un lenguaje fuente.
¿Cuáles son las dos entradas de cualquier intérprete?
Un programa P, escrito en un lenguaje fuente LF, junto a los datos de entrada.
Diferencia entre intérprete y compilador
Los compiladores transforman el programa a otro equivalente en un código objeto (fase de compilación), y luego generan los resultados a partir de los datos de entrada (fase de ejecución)
El intérprete analiza y ejecuta al mismo tiempo.
La mayoría de los intérpretes se descomponen en 5 módulos principales
- Traductor a Representación Interna
- Representación Interna (P/RI)
- Tabla de Símbolos
- Evaluador de Representación Interna
- Tratamiento de Errores
La RI –> tokenización y parsing, para generar el árbol, por ejemplo.
Describe el Traductor a Representación Interna
Su entrada es el programa P en lenguaje fuente (LF), lo analiza y lo transforma a la representación interna (RI) correspondiente a dicho programa P.
Representación Interna (P/RI)
Debe ser consistente con el programa original. Hay dos tipos:
* Árboles Sintácticos
* Estructuras de Pila
El tipo a implementar depende de las características del lenguaje
Para la RI, las Estructuras de Pila son más eficientes
Verdadero o Falso
Verdadero
Pero depende por completo de la complejidad del lenguaje
Tabla de Símbolos
Descripción
Durante la traducción, conviene crear una tabla con la información relativa a los símbolos que aparecen.
La tabla de símbolos depende de la complejidad del lenguaje fuente
Verdadero o Falso
Verdadero
¿Qué se puede almacenar en la tabla de símbolos?
- Etiquetas para instrucciones de salto
- Información sobre Identificadores
- Información requerida para la evaluación
Evaluador de Representación Interna
A partir de la RI y los datos de entrada, se ejecutan las acciones indicadas para obtener los resultados. Es aquí donde se contempla la aparición de errores.
Tratamiento de Errores
Se deben contemplar los errores posibles, como desbordamiento de pila, división por cero, etc.
Un intérprete puede tener módulos similares a los de un compilador.
Verdadero o Falso
Verdadero
Puede estar compuesto por Análisis Léxico, Sintáctico y Semántico.
Muchos sistemas interpretados usan este recurso para manejar el uso de memoria
Recolección de Basura
Métodos para evaluar la representación interna
Son dos
- Interpretación Iterativa
- Interpretación Recursiva