.

domingo, 17 de noviembre de 2013

INTERPRETE DE INFORMATICA

Intérprete de informática 
Programa que realiza un análisis de una aplicación escrita en un lenguaje no-máquina (fácil de entender y trabajar con él) y lo convierte en lenguaje máquina entendible por el ordenador.

Programa que trabaja directamente con el programa fuente en memoria.El intérprete traduce las instrucciones del programa fuente una por una y las ejecuta inmediatamente. No suele ser habitual emplear los interpretes para traducir y ejecutar los programas fuente, ya que son lentos, pero presentan ciertas ventajas en campos determinados.
proceso de traducción, como ya se ha comentado, se puede realizar de dos maneras diferentes, a través de un intérprete o de un compilador.

Un intérprete, al igual que un intérprete humano de un discurso o conversación, de ahí su nombre, traduce frase a frase, realiza el proceso de traducción línea a línea, ejecutando el programa por líneas.

Un compilador para realizar la traducción necesita leer todas las líneas del programa. Una vez que han sido traducidas todas en su conjunto, se ejecuta. Por tanto, hasta que no se han traducido todas las líneas del programa no se ejecuta el programa. La diferencia con los intérpretes reside en que no traduce línea por línea, sino que las traduce todas en conjunto, analizando las relaciones que pueden existir entre ellas.

Históricamente, con la penuria de memoria que tenían las primeras computadoras, había muchos partidarios del uso de los intérpretes frente al uso de compiladores. El programa fuente sin traducir y el intérprete, juntos, solían ocupar menos memoria que los compiladores, con lo que eran más atractivos que el compilador. Pero los resultados que produjeron no fueron muy satisfactorios, puesto que los errores de los programas eran frecuentes y no se detectaban antes de comenzar la ejecución. Éstos se iban detectando al ir traduciendo y ejecutando las líneas del programa, con lo que se debía parar al proceso de compilación, arreglar el error y reiniciar, desde el principio, el proceso de compilación hasta encontrar el siguiente error.

Más práctico es el proceso de compilación puesto que examina detalladamente todo el programa fuente y lo convierte a objeto; si el compilador detecta errores en el programa lo indica: se corrige el código fuente de manera apropiada y se vuelve a compilar, y así sucesivamente, hasta que, al no tener errores, se puede ejecutar el programa objeto obtenido.

Esta revisión global del programa fuente que realiza el compilador tiene unas ventajas tan claras, que los intérpretes la han incorporado, y al mismo tiempo que realizan esta revisión general, efectúan una traducción somera del lenguaje fuente a un formato interno, no muy lejano en su estructura del lenguaje fuente, pero que facilita mucho la ejecución posterior de cada sentencia bajo supervisión del intérprete.

A primera vista, la diversidad de compiladores puede parecer enorme. Hay muchos lenguajes fuente y también lenguajes objeto. A pesar de esta aparente complejidad, las tareas básicas que debe realizar cualquier compilador son siempre las mismas, sea cual sea el lenguaje que traduce.

COMPILADORES

 COMPILADORES

USOS Y FUNCION DE LOS COMPILADORES
USOS
Los compiladores trabajan en fases, las cuales transforman el programa fuente de una representacion en otra.
Se usa con el fin de analizar las seccciones, administrar la taba de simbolos y manejar los errores, para esto utiliza el analisis lexico, analisis sintactico, analisis semantico, generacion de codigo intermedio, optimacion de codigo y generacion de codigo.

Dentro de las caracteristica im portantes de un compilador es que traduce de un Lenguaje de alto nivel a uno de bajo nivel.


FUNCION


La función principal que cumple es traducir a un lenguaje mucho mas sencillo y entendible por la maquina, informa al usuario si existen errores en el código fuente con el fin de ejecutar la aplicación sin problema, si existe algún error simplemente se detiene.

Tambien registra los identificadores utilizados en el programa fuente y toma la informacion de los atributos de cada identificador. 
 Los compiladores son programas o herramientas encargadas de compilar. Un compilador toma un texto (código fuente) escrito en un lenguaje de alto nivel  y lo traduce a un lenguaje comprensible por las computadoras (código objeto).

Básicamente, existen dos grandes formas de
 ejecutar  programas: programas compilados (previamente pasados por un compilador) y programas interpretados (necesitan pasar por un intérprete  para ejecutarse en tiempo real).

Características
 de un compilador

Generalmente un compilador se divide en dos partes:

* Front End: parte que analiza el código fuente, comprueba su validez, genera el árbol de derivación y rellena los valores de la tabla de símbolos. Parte que suele ser independiente de la
 plataforma osistema operativo para el que funcionará.

* Back End: parte en donde se genera el código máquina exclusivo para una plataforma a partir de lo analizado en el front end.

Por lo general el resultado del back end no puede ser ejecutado directamente, se necesita pasar por un proceso de
 enlazado (linker).

Existen varios tipos de compiladores: Compiladores cruzados, Compiladores optimizadores, Compiladores de una sola pasada, Compiladores de varias pasadas, Compiladores JIT (Just In Time).

Intérpretes vs compiladores

Cualquier
 lenguaje puede ser ejecutado tanto vía intérprete o vía compilador, pero algunos lenguajes suelen asociarse más a una vía que a la otra, y por esto son llamados "lenguajes interpretados" o "lenguajes compilados" respectivamente.

También puede darse que un programa contenga partes que son implementadas vía
 intérprete y otras vía compilador.

También existen intérpretes que incluyen cierta "compilación" en el medio. Son aquellos que compilan a un código intermedio llamado
 bytecode, que es más eficiente de ejecutar que hacerlo directamente desde el código fuente.

En general, la principal desventaja de los intérpretes, es que cuando un programa es interpretado, suele ejecutarse más lento que si el mismo programa estuviese compilado. Esto se debe a que el intérprete debe analizar cada
 sentencia en el programa en cada ejecución (un análisis en tiempo real). También el acceso a variables es más lento en un intérprete, porque mapear los identificadores para almacenar las localizaciones debe hacerse repetidas veces en tiempo real.

ENSAMBLADORES

ENSAMBLADORES
Ensamblador se refiere a un tipo de programa, informático que se encarga de traducir un fichero fuente escrito en un lenguaje ensamblador, a un fichero objeto que contiene código máquina ejecutable directamente por la máquina para la que se ha generado, en si la funcion de un ensamblador es traducir un programa en lenguaje de ensamblador al código correspondiente en lenguaje de maquina.

Ventajas para utilizarlo:
Mayor control de la computadora.
Independencia de lenguaje.
La mayoría de las computadoras pueden ensamblar.
Los programas hechos en lenguaje ensamblador son generalmente más rápidos y consumen menos recursos del sistema.

Desventajas para no utilizarlo:
Demasiado complejo.
Comprensión más profunda de la computadora.
Errores más frecuentes en el programa.
Mayor tiempo de codificación.
Difícilmente portable, es decir, un código escrito para un microprocesador en particular necesita ser modificado muchas veces en su totalidad para poder ser usado en otro microprocesador.

Tipos de ensambladores:
Ensambladores cruzados: Se denominan así a los ensambladores que se utilizan en una computadora que posee el procesador diferente al que tendrán las computadoras donde se va a ejecutar el programa objeto producido.

Ensambladores residentes: Son aquellas que permanecen en la memoria principal de la computadora y cargar para su ejecución al programa objeto producido.


Micro ensambladores: Al programa que indica al intérprete de instrucciones de la CPU como debe actuar se le denomina microprograma. El programa que ayuda a realizar este microprograma se llama micro ensamblador.

Macro ensambladores: Son ensambladores que permiten el uso de macroinstrucciones.

Ensambladores de una fase: Leen una línea y la traducen directamente para producir una instrucción de lenguaje maquina o la ejecuta si se trata de una pseudosinstrucción. Se construye la tabla de símbolos a medida que aparecen las definiciones de variables, etiquetas, etc.

Ensambladores de dos fases: Realiza la traducción en dos etapas: 1° fase leen el programa fuente y construyen la tabla de símbolos, 2° fase vuelve a leer el programa fuente y pueden ir traduciendo totalmente pues reconocen la totalidad de los símbolo

TIPOS DE LENGUAJE

TIPOS DE LENGUAJ
LENGUAJES DE PROGRAMACION
Un lenguaje de programación es un lenguaje que puede ser utilizado para controlar el comportamiento de una máquina, particularmente una computadora. Consiste en un conjunto de reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos, respectivamente. Aunque muchas veces se usa lenguaje de programación y lenguaje informático como si fuesen sinónimos, no tiene por qué ser así, ya que los lenguajes informáticos engloban a los lenguajes de programación y a otros más, como, por ejemplo, el HTML.
Según la forma de ejecución
Lenguajes compilados
Naturalmente, un programa que se escribe en un lenguaje de alto nivel también tiene que traducirse a un código que pueda utilizar la máquina. Los programas traductores que pueden realizar esta operación se llaman compiladores. Éstos, como los programas ensambladores avanzados, pueden generar muchas líneas de código de máquina por cada proposición del programa fuente. Se requiere una corrida de compilación antes de procesar los datos de un problema.
Los compiladores son aquellos cuya función es traducir un programa escrito en un determinado lenguaje a un idioma que la computadora entienda (lenguaje máquina con código binario).
Al usar un lenguaje compilado (como lo son los lenguajes del popular Visual Studio de Microsoft), el programa desarrollado nunca se ejecuta mientras haya errores, sino hasta que luego de haber compilado el programa, ya no aparecen errores en el código.
Lenguajes interpretados
Se puede también utilizar una alternativa diferente de los compiladores para traducir lenguajes de alto nivel. En vez de traducir el programa fuente y grabar en forma permanente el código objeto que se produce durante la corrida de compilación para utilizarlo en una corrida de producción futura, el programador sólo carga el programa fuente en la computadora junto con los datos que se van a procesar. A continuación, un programa intérprete, almacenado en el sistema operativo del disco, o incluido de manera permanente dentro de la máquina, convierte cada proposición del programa fuente en lenguaje de máquina conforme vaya siendo necesario durante el proceso de los datos. No se graba el código objeto para utilizarlo posteriormente.
La siguiente vez que se utilice una instrucción, se le debe interpretar otra vez y traducir a lenguaje máquina. Por ejemplo, durante el procesamiento repetitivo de los pasos de un ciclo, cada instrucción del ciclo tendrá que volver a ser interpretado cada vez que se ejecute el ciclo, lo cual hace que el programa sea más lento en tiempo de ejecución (porque se va revisando el código en tiempo de ejecución) pero más rápido en tiempo de diseño (porque no se tiene que estar compilando a cada momento el código completo). El intérprete elimina la necesidad de realizar una corrida de compilación después de cada modificación del programa cuando se quiere agregar funciones o corregir errores; pero es obvio que un programa objeto compilado con antelación deberá ejecutarse con mucha mayor rapidez que uno que se debe interpretar a cada paso durante una corrida de producción.
ALGUNOS LENGUAJES DE PROGRAMACIÓN:

·         ABAP
·         ABC
·         Ada
·         ActionScript
·         Afnix
·         ALGOL
·         APL
·         ASP
·         ASP.NET
·         AWK
·         B
·         BASIC
·         BCPL
·         Befunge
·         Boo
·         C
·         C++
·         C#
·         Caml
·         Clipper
·         CLIPS
·         CLU
·         COBOL
·         CORAL
·         D
·         Delphi
·         DIV
·         Dylan
·         Eiffel
·         Erlang
·         Ensamblador
·         Extended ML
·         Euphoria
·         Fénix
·         Flow-Matic
·         Forth
·         FORTRAN
·         Gambas
·         GML
·         GRAFCET
·         FP
·         Haskell
·         Icon
·         Inform
·         INTERCAL
·         ISWIM
·         J
·         Java
·         JavaScript
·         Joy
·         KWC
·         LADDER
·         Lexico
·         Lingo
·         Lisp
·         Logo
·         Lua
·         MAGIC
·         Mainsail
·         Mesa
·         Miranda
·         ML
·         Modula
·         Modula-2
·         Modula-3
·         Natural
·         NetREXX
·         Oberon
·         Object REXX
·         Objective-C
·         Ocaml
·         Occam
·         Oz
·         Pascal
·         Parlog
·         Perl
·         PHP
·         PL/1
·         Plankalkül
·         PostScript
·         PowerBuilder
·         Prolog
·         Python
·         Rapid
·         REXX
·         RPN
·         RPG
·         Ruby
·         Sail
·         Sather
·         Scheme
·         Scriptol
·         Seed7
·         Self
·         Sh
·         Simula
·         Smalltalk
·         Snobol
·         SPARK
·         Squeak
·         SR
·         Standard ML
·         TI-Basic
·         TCL
·         VBA
·         Visual Basic
·         Visual C++
·         Visual DialogScript
·         Visual Foxpro
·         Yurix
·         ZPL