actividad 3

13
Actividad 3, Programación

Upload: maryr

Post on 09-Jul-2015

127 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Actividad 3

Actividad 3, Programación

Page 2: Actividad 3

Los intérpretes realizan normalmente dos

operaciones:

Traducen el código fuente a un formato

interno.

Ejecutan o interpretan el programa traducido

al formato interno.

La primera parte del intérprete se llama a

veces "el compilador", aunque el código

interno que genera no es el lenguaje de la

máquina, ni siquiera lenguaje simbólico, ni

tampoco un lenguaje de alto nivel.

Page 3: Actividad 3

Programa de computadora que analiza el programa fuente y loejecuta directamente, sin generar ningún código equivalente. Suacción equivale a la de un intérprete humano, que traduce las frasesque oye sobre la marcha, sin producir ningún escrito permanente.

Un intérprete facilita la búsqueda de errores, pues la ejecución deun programa puede interrumpirse en cualquier momento paraestudiar el entorno (valores de las variables, etc.). Además, elprograma puede modificarse sobre la marcha, sin necesidad devolver a comenzar la ejecución.

Un intérprete permite utilizar funciones y operadores máspotentes, como por ejemplo ejecutar código contenido en unavariable en forma de cadenas de caracteres. Usualmente, este tipode instrucciones es imposible de tratar por medio de compiladores.Los lenguajes que incluyen este tipo de operadores y que, portanto, exigen un intérprete, se llaman interpretativos. Los lenguajescompilativos, que permiten el uso de un compilador, prescinden deeste tipo de operadores.

Page 4: Actividad 3

¿Cuáles la estructura de los interpretes?

Un intérprete es un programa que simultáneamente analiza y ejecuta un programa escrito en lenguaje fuente. El proceso que realiza un intérprete es el siguiente: lee la primera instrucción del código fuente, la traduce a código objeto y la ejecuta; a continuación, hace lo mismo con la segunda instrucción; y así sucesivamente, hasta llegar a la última instrucción del programa, siempre y cuando, no se produzca ningún error que detenga el proceso.

Page 5: Actividad 3

Es conveniente utilizar una representación interna (RI) del lenguaje fuente a utilizar.

La estructura interna de un intérprete puede descomponerse en módulos.

Traductor RI. Toma P/LF lo analiza y lo transforma a P/RI

RI. Árboles sintácticos, estructura de pila

TS Etiquetas de saltos, información sobre identificadores…

Evaluador de RI. A partir de RI y de los datos se realizan las operaciones, además se

contempla la aparición de errores.

Tratamiento de errores. Pueden aparecer errores (de ejecución) que debe notificarse

Page 6: Actividad 3

Los intérpretes generan un código binarioque se interpreta cada vez que se ejecuta elprograma a diferencia del compilador quecrea un archivo ejecutable. Ejemplos deprogramas que utilizan intérpretes son BASIC,y Visual Basic. En VB puedes compilar todo elprograma para crear un ejecutable o puedesejecutar un formulario o modulo a la vez, encuyo caso interviene un intérprete.

Intérpretes de comandos: Toman el lenguajefuente (pueden incluir sentencias de control)y ejecuta operaciones sobre el SO:C-Shell,Korn-Shell, JCL…

Page 7: Actividad 3

Lenguajes basados en escritos: Herramientaspara el enlace entre diferentes sistemas oaplicaciones:Perl, Tcl/Ik, JavaScript …

Entornos de programación: Lenguajes concaracterísticas o cuya compilación no esefectiva: Lisp, VisualBasic, smallTalk…

Sistemas en tiempo real: Sistemas que permitenmodificar el código de una aplicación en tiempode ejecución de forma interactiva.

Lenguajes de propósito específico: lenguajes consentencias que realizan tareas complejas encontextos específics: consltas de BBDD,simulación, entorno Matlab…

Inérprete de código de un compilador para unamáquina abstracta (P-code de Pascal, bytecodede Java)

Page 8: Actividad 3
Page 9: Actividad 3

Un traductor es un programa que tiene como

entrada un texto escrito en un lenguaje (lenguaje

fuente) y como salida produce un texto escrito en

un lenguaje (lenguaje objeto) que preserva el

significado de origen. Ejemplos de traductores son

los ensambladores y los compiladores.

Page 10: Actividad 3
Page 11: Actividad 3

Lenguajes interpretados: PHP, PERL, BASIC

En algunas ocasiones se necesita de una traducciónrápida de algunas instrucciones,

como en el Shell, instrucciones SQL, etc.

Java al igual que otros lenguajes como C# sonlenguajes híbridos. Por una parte se

compila un programa fuente para generar códigoobjeto para una máquina virtual

(bytecode o MSIL) para posteriormente ejecutarse demanera interpretada en las

diferentes máquinas virtuales de cada plataforma. Aeste compilador se les llama

jitter de JIT (Just in Time)

Page 12: Actividad 3

TRADUCTOR INTERPRETE

Un traductor es un mediador entre dos entidades: emisoras y receptoras

Se ejecutan línea por línea, instrucción por instrucción.

Los mediadores enmascaran la complejidad y heterogeneidad de los lenguajes

Traducen el código fuente a un formato interno.

Un traductor convierte un lenguaje de entrada (código fuente) a uno de salida (código objeto)

Ejecutan o interpretan el programa traducido al formato interno

La traducción puede ser sencilla (literal) o compleja (revisar el contexto) dependiendo del tipo de lenguaje entrada y salida

La primera parte del intérprete se llama a veces "el compilador", aunque el código interno que genera no es el lenguaje de la máquina, ni siquiera lenguaje simbólico, ni tampoco un lenguaje de alto nivel

Traducción español a inglés si se hace de manera literal es una mala traducción, se necesita de al menos otra revisión (pasada) para hacer una buena traducción.

Ahorra memoria. Produce un resultado que no se puede almacenar, lo cual hace la ejecución lenta. No demasiado eficiente, cada vez que se entre en un bucle se analizaran sus sentencias. Facilita el proceso de depuración. No produce resultados transportables.

Dos etapas en la traducción: análisis y síntesis.

Análisis: Léxico: de caracteres a componentes. Sintáctico: de componentes a arboles de análisis. Semántico: de árboles de análisis a AST. Síntesis: En compilación: Generación de código intermedio. Generación de código objeto. Optimización (mezclada con las anteriores). En interpretación, dos opciones: Generación directa de resultados. Generación de código intermedio e interpretación del código intermedio.

Sistemas interactivos. Programas de pequeña envergadura. Programas de prototipo y de enseñanza

Page 13: Actividad 3