0% encontró este documento útil (0 votos)
11 vistas3 páginas

Intérpretes y Compiladores: Guía Básica

Un intérprete es un programa que ejecuta otros programas en lenguajes de alto nivel, traduciéndolos instrucción por instrucción, lo que permite flexibilidad y portabilidad entre diferentes sistemas. En contraste, un compilador traduce el código fuente a código máquina antes de la ejecución, lo que generalmente resulta en un mejor rendimiento. El lenguaje ensamblador, por su parte, permite dar órdenes directas a la máquina, pero requiere conocimientos técnicos avanzados y es menos utilizado para aplicaciones debido a su complejidad.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
11 vistas3 páginas

Intérpretes y Compiladores: Guía Básica

Un intérprete es un programa que ejecuta otros programas en lenguajes de alto nivel, traduciéndolos instrucción por instrucción, lo que permite flexibilidad y portabilidad entre diferentes sistemas. En contraste, un compilador traduce el código fuente a código máquina antes de la ejecución, lo que generalmente resulta en un mejor rendimiento. El lenguaje ensamblador, por su parte, permite dar órdenes directas a la máquina, pero requiere conocimientos técnicos avanzados y es menos utilizado para aplicaciones debido a su complejidad.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Interprete

En ciencias de la computación, intérprete o interpretador es un programa informático capaz de


analizar y ejecutar otros programas, escritos en un lenguaje de alto nivel. Los intérpretes se
diferencian de los compiladores en que mientras estos traducen un programa desde su
descripción en un lenguaje de programación al código de máquina del sistema, los intérpretes sólo
realizan la traducción a medida que sea necesaria, típicamente, instrucción por instrucción, y
normalmente no guardan el resultado de dicha traducción.

Usando un intérprete, un solo archivo fuente puede producir resultados iguales incluso en
sistemas sumamente diferentes (ejemplo. una PC y un PlayStation 3). Usando un compilador, un
solo archivo fuente puede producir resultados iguales solo si es compilado a distintos ejecutables
específicos a cada sistema.

Los programas interpretados suelen ser más lentos que los compilados debido a la necesidad de
traducir el programa mientras se ejecuta, pero a cambio son más flexibles como entornos de
programación y depuración (lo que se traduce, por ejemplo, en una mayor facilidad para
reemplazar partes enteras del programa o añadir módulos completamente nuevos), y permiten
ofrecer al programa interpretado un entorno no dependiente de la máquina donde se ejecuta el
intérprete, sino del propio intérprete (lo que se conoce comúnmente como máquina virtual).

Para mejorar el desempeño, algunas implementaciones de programación de lenguajes de


programación pueden interpretar o compilar el código fuente original en una más compacta forma
intermedia y después traducir eso al código de máquina (ej. Perl, Python, MATLAB, y Ruby).
Algunos aceptan los archivos fuente guardados en esta representación intermedia (ej. Python,
UCSD Pascal y Java).

Comparando su actuación con la de un ser humano, un compilador equivale a un traductor


profesional que, a partir de un texto, prepara otro independiente traducido a otra lengua,
mientras que un intérprete corresponde al intérprete humano, que traduce de viva voz las
palabras que oye, sin dejar constancia por escrito.

En la actualidad, uno de los entornos más comunes de uso de los intérpretes informáticos es
Internet, debido a la posibilidad que estos tienen de ejecutarse independientemente de la
plataforma.
Ensamblador

Se define como un lenguaje de programación que se usa para dar directamente órdenes al
ordenador. A diferencia de otros lenguajes, que usan el sistema operativo como intermediario
para ejecutar las tareas (le dicen al sistema operativo que haga una cosa y este es quien se
encarga de hacerselo saber al ordenador), el lenguaje de ensamblador (en inglés assembly) no usa
intermediarios, sino que directamente le dá las órdenes a la máquina.

Antes de proseguir conviene diferenciar para no confundirnos por un lado el término lenguaje
ensamblador, y por otro el término ensamblador. El primero sería el lenguaje de programación
como tal, mientras el segundo sería el programa que convierte un fichero escrito en lenguaje
ensamblador en código máquina o binario para que le ordenador pueda leerlo. Aunque en el
artículo hablaremos de ambos y en general se usa ensamblador para ambos indistintamente,
técnicamente son cosas distintas,

Evidentemente este lenguaje tiene varias ventajas e inconvenientes. Entre las ventajas tenemos
que por supuesto, es más rápido y eficiente, más estable y requiere menos recursos.

Las desventajas son sin embargo mucho mayores: para empezar está limitado a las órdenes que el
ordenador traiga memorizadas en su placa base, nada más. Y requiere unos conocimientos
técnicos muy avanzados, toda vez que cada CPU incluye órdenes distintas e incluso formas
distintas de darle esas órdenes, variando según el modelo, el fabricante... etc... Es por ello, entre
otras cosas, que no se ha impuesto en el mercado como lenguaje de programación para
aplicaciones o juegos.

Como se vé es un lenguaje de programación orientado a profesionales que trabajan con hardware,


muy útil sobre todo para detectar fallos e incompatibilidades entre piezas del PC o chequear el
estado de estas.

Como ya dijimos el lenguaje ensamblador debe ser traducido a código máquina para funcionar, y
por tanto requiere un ensamblador que lo traduzca a código binario (a ceros y unos). Pero es el
lenguaje más cercano al propio código que usan los ordenadores. Es por ello que se dice que es un
lenguaje de bajo nivel, debido a que está sólo un escalón por encima del código máquina, y solo
permite ejecutar instrucciones sencillas. Los lenguajes de alto nivel son más elaborados y permiten
realizar tareas multiples y complejas con una sola orden, mientras que en el que nos ocupa una
orden equivale a una instruccion directa.

Existen como hemos visto muchas variantes del lenguaje ensamblador, de hecho una por cada tipo
de arquitectura del CPU. Las primeras CPUs apenas tenían instrucciones y por tanto eran mucho
más sencillas. En la actualidad están en boga los llamados ensambladores de alto nivel, que
permiten instrucciones más complejas e incluso cadenas de instrucciones (macros).
Compilador

Para traducir las instrucciones de un programa escrito en un lenguaje de alto nivel a instrucciones
de un lenguaje máquina, hay que utilizar un programa llamado compilador. Así pues, el
compilador es un programa que recibe como datos de entrada el código fuente de un programa
escrito por un programador, y genera como salida un conjunto de instrucciones escritas en el
lenguaje binario de la computadora donde se van a ejecutar.

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 o sistema 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.

También podría gustarte