martes, 31 de mayo de 2016

Clase 2

Clasificación de los interpretes

Concepto de Interprete:


Un intérprete es un programa que analiza y ejecuta simultáneamente el programa fuente, es decir no producen un código objeto, siendo su ejecución simultánea a la del programa fuente.


Comportamiento de un Interprete:

Un intérprete es como un compilador, solo que la salida es una ejecución. El programa de entrada se reconoce y ejecuta a la vez. No se produce un resultado físico (código máquina) sino lógico (una ejecución).

Resultado del Interprete:



Ventajas de los Interpretes:


Su principal ventaja es que permiten una fácil depuración. Permiten una mayor interactividad con el código en tiempo de desarrollo.
Puede ser interrumpido con facilidad. 
Facilita la búsqueda de errores. En algunos lenguajes está permitido añadir código según se ejecuta otro código.
Menor consumo de memoria.


Desventajas de los Interpretes:


Lentitud de ejecución, ya que al ejecutar a la vez que se traduce no puede aplicarse un alto grado de optimización. Cada instrucción debe ser traducida a código máquina tantas veces como sea ejecutada

Durante la ejecución, el intérprete debe residir en memoria ya que no genera código objeto.

Tamaño del programa objeto, que exige añadir el intérprete al programa propiamente dicho. 


Clasificación de Intérpretes:

Intérpretes Puros: son los que analizan una sentencia y la ejecutan, y así sucesivamente todo el programa fuente. Fueron los intérpretes desarrollados en la primera generación de ordenadores, pues permitían la ejecución de largos programas con ordenadores de memoria muy reducida, ya que sólo debían contener en memoria el intérprete y la sentencia a analizar y ejecutar.



Interpretes Avanzados: incorporan un paso previo de análisis de todo el programa fuente. Generando posteriormente un lenguaje intermedio que es ejecutado por ellos mismos.


Interpretes Incrementales: tienen gran interés en los lenguajes que permiten no definir los problemas completamente en tiempo de compilación. En estos casos se  utilizan evaluadores parciales que toman como entrada el programa fuente junto con algunos datos (pero no todos), realizándose los cálculos que se pueden hacer con dicho subconjunto de datos, y produciendo una salida que contiene un residuo del programa fuente que se ha introducido.


Clase 1 - Introduccion

         TRADUCTORES

Existen dos tipos principales de traductores de los lenguajes de programación de alto nivel:
* Compiladores
* Interpretes

Los lenguajes de programación

Ocupan una posición intermedia entre los lenguajes naturales humanos y los precisos lenguajes de máquina.
Gracias a la progresiva complejidad de los lenguajes traductores que permiten convertir las instrucciones de un lenguaje de programación al lenguaje de máquina, la programación puede usar lenguajes de computación que se parecen cada vez más a los lenguajes naturales.
¨A los lenguajes máquina se les conoce como lenguajes de primera generación.
¨Los ensambladores son los lenguajes de segunda generación.
¨Los simbólicos de alto nivel de tipo procedural se les denomina de tercera generación y a los relacionales se considera que son de cuarta generación.
¨A la tercera generación pertenecen lenguajes conocidos como el FORTRAN, COBOL, RPG, BASIC, PL1, SIMULA, ALGOL, PASCAL, ADA, C, LISP, PROGOL.
¨SQL es un lenguaje convertido en estándar mundial como lenguaje de cuarta generación, una serie de lenguajes orientados a objetos. Entre estos destaca el Visual Basic de Microsoft. Además hay que prestar una seria atención al lenguaje de programación Java, desarrollado por SUN

Compilador:

Proceso de traducción que convierte un programa fuente escrito en un lenguaje de alto nivel a un programa objeto en código máquina y listo por tanto para ejecutarse en el ordenador, con poca o ninguna preparación adicional.


                                  INTERPRETES:

Analiza el programa fuente y lo ejecuta directamente, Ejemplo del traductor humano, éste sería un traductor humano que conforme a lo que está escuchando va ejecutando, sin generar ningún escrito, es decir que sobre la marcha va traduciendo.