INTRODUCCIÓN A INTÉRPRETES Flashcards

1
Q

¿Qué es un intérprete?

A

Un programa que analiza y ejecuta, simultáneamente, un programa escrito en un lenguaje fuente.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

¿Cuáles son las dos entradas de cualquier intérprete?

A

Un programa P, escrito en un lenguaje fuente LF, junto a los datos de entrada.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Diferencia entre intérprete y compilador

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

La mayoría de los intérpretes se descomponen en 5 módulos principales

A
  • 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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Describe el Traductor a Representación Interna

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Representación Interna (P/RI)

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Para la RI, las Estructuras de Pila son más eficientes

Verdadero o Falso

A

Verdadero

Pero depende por completo de la complejidad del lenguaje

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Tabla de Símbolos

Descripción

A

Durante la traducción, conviene crear una tabla con la información relativa a los símbolos que aparecen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

La tabla de símbolos depende de la complejidad del lenguaje fuente

Verdadero o Falso

A

Verdadero

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

¿Qué se puede almacenar en la tabla de símbolos?

A
  • Etiquetas para instrucciones de salto
  • Información sobre Identificadores
  • Información requerida para la evaluación
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Evaluador de Representación Interna

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Tratamiento de Errores

A

Se deben contemplar los errores posibles, como desbordamiento de pila, división por cero, etc.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Un intérprete puede tener módulos similares a los de un compilador.

Verdadero o Falso

A

Verdadero

Puede estar compuesto por Análisis Léxico, Sintáctico y Semántico.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Muchos sistemas interpretados usan este recurso para manejar el uso de memoria

A

Recolección de Basura

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Métodos para evaluar la representación interna

Son dos

A
  • Interpretación Iterativa
  • Interpretación Recursiva
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Interpretación Iterativa resulta útil para Lenguajes Complejos

Verdadero o Falso

A

Falso

Lenguajes sencillos pq analiza y ejecuta cada expresión de forma directa

17
Q

¿Cómo funciona la Interpretación Iterativa?

A

Consiste en un ciclo básico de búsqueda, análisis y ejecución de instrucciones.
* Cada instrucción se busca en el almacenamiento
* La instrucción es analizada y ejecutada

18
Q

¿Cuáles son las dos fases para el diseño de nuevos lenguajes de programación?

A
  • Construcción de un Intérprete de Prototipo
  • Implementación del Compilador del lenguaje
19
Q

¿Qué modelo de interpretación suele usarse para la construcción de prototipos?

¿Iterativa o Recursiva?

A

Interpretación Recursiva

Son ineficientes para aplicaciones prácticas

20
Q

¿Cómo debe ser un lenguaje para un prototipo?

A

Suficientemente expresivo y no ambiguo para definir claramente cómo funcionan las diferentes construcciones

21
Q

¿Cuál es la tendencia actual en cuanto al desarrollo de intérpretes recursivos?

A

Investigar técnicas de especificación semántica formal que permitan generar automáticamente este tipo de intérpretes

22
Q

¿Qué ventajas tienen los compiladores sobre los intérpretes?

A
  • Permiten construir Programas más Eficientes
  • Capaces de detectar errores
  • Capaces de optimizar el código generado

Los intérpretes realizan análisis y ejecución a la vez, poco óptimo

23
Q

¿Por qué la eficiencia es un problema menos grave en la actualidad?

A

Los avances informáticos aumentan la** velocidad de procesamiento** y capacidad de memoria de los ordenadores

24
Q

Ventajas de los Sistemas Interpretados

A
  • Son más sencillos de Implementar
  • Mayor flexibilidad
  • No es necesario todo el código -nota-
  • Facilitan la meta-programación
  • Aumentan la portabilidad

para uso en sistemas con poca memoria o entorno de red