fbpx
Wikipedia

Lenguaje intermedio

En ciencias de la computación, un lenguaje intermedio es el lenguaje de una máquina abstracta diseñada para ayudar a realizar el análisis de un programa informático. El término proviene de su uso en compiladores, donde el código fuente de un programa es traducido a un modo más apropiado para transformaciones de mejora de código antes de generar el código objeto o código máquina para una máquina determinada. El diseño del lenguaje intermedio difiere típicamente del lenguaje de máquina de tres maneras fundamentales:

  • Cada instrucción representa exactamente una operación fundamental; por ejemplo, los modos de direccionamiento "shift-add" (desplazar y añadir) comunes en microprocesadores no están presentes.
  • La información de la estructura de control puede no estar incluida en el juego de instrucciones.
  • El número de registros disponibles puede ser grande, incluso ilimitado.

Un formato popular para lenguajes intermedios es el de código de tres direcciones.

El término también es usado para referirse a lenguajes usados como intermedios por algunos lenguajes de alto nivel que no crean código objeto o código máquina por sí mismos, sino que solamente el lenguaje intermedio. Este lenguaje intermedio es enviado a un compilador para tal lenguaje, que genera el código objeto o código máquina finalizado. Esto se suele hacer para facilitar el proceso de optimización o para incrementar la portabilidad mediante el uso de un lenguaje intermedio que tenga compiladores para la mayoría de CPUs y sistemas operativos, como puede ser C. Los lenguajes usados para esto tienen una complejidad que se sitúa entre los lenguajes de alto y bajo nivel, como el lenguaje ensamblador.

Representación intermedia

Una representación intermedia (RI) es una estructura de datos creada a partir de los datos de entrada de un programa informático y de la que parte o la totalidad de los datos de salida son construidos por turno. El uso del término suele implicar que la mayoría de la información presente en la entrada es guardada por la representación intermedia junto con más anotaciones o características de búsqueda rápida.

Un ejemplo canónico se encuentra en la mayoría de compiladores modernos, donde el texto linear entendible por los humanos es transformado en un grafo que permite el análisis del flujo de datos y recolocaciones antes de empezar a crear la lista de instrucciones del CPU que harán el trabajo. El uso de una representación intermedia permite a sistemas de compiladores como GNU GCC y LLVM poder tener como destino diferentes códigos fuente y admiten su generación para diferentes tipos de arquitectura.

Lenguajes

Aunque no está específicamente diseñado como un lenguaje intermedio, la naturaleza de C como una abstracción del lenguaje ensamblador y su uso como lenguaje de sistema en Unix-like y otros sistemas operativos lo han convertido en un lenguaje intermedio popular: Eiffel, Sather, Esterel, algunos dialectos de Lisp (Lush, Gambit, Haskell, Glasgow Haskell Compiler), Squeak, Cython, Seed7, Vala y otros usan C como un lenguaje intermedio. Variantes de C han sido diseñadas para proveer a C de características como un lenguaje ensamblador portable, incluyendo C-- o el lenguaje intermedio de C.

El Common Intermediate Language de Microsoft es un lenguaje intermedio diseñado para ser compartido por todos los compiladores del .NET Framework antes de ser generado el código máquina.

El GNU Compiler Collection (GCC) usa varios lenguajes intermedios internamente para simplificar la portabilidad. Entre esos lenguajes están:

Mientras la mayoría de lenguajes son diseñados para soportar lenguajes escritos estáticamente, la representación intermedia de Parrot está diseñada para soportar lenguajes escritos dinámicamente (inicialmente Perl y Python).

El lenguaje intermedio ILOC[1]​ es usado en clases de diseño de compiladores como un lenguaje destino simple.[2]

Véase también

Referencias

  1. Barret, W. A. (2007). (en inglés). Morgan Kaufmann. ISBN 1-55860-698-X. Archivado desde el original el 7 de mayo de 2009. Consultado el 10 de julio de 2014. 
  2. Uli Kremer. «Diseño del compilador CISC 471» (en inglés). Consultado el 10 de julio de 2014. 
  •   Datos: Q244916

lenguaje, intermedio, este, artículo, sección, tiene, referencias, pero, necesita, más, para, complementar, verificabilidad, este, aviso, puesto, agosto, 2014, ciencias, computación, lenguaje, intermedio, lenguaje, máquina, abstracta, diseñada, para, ayudar, r. Este articulo o seccion tiene referencias pero necesita mas para complementar su verificabilidad Este aviso fue puesto el 9 de agosto de 2014 En ciencias de la computacion un lenguaje intermedio es el lenguaje de una maquina abstracta disenada para ayudar a realizar el analisis de un programa informatico El termino proviene de su uso en compiladores donde el codigo fuente de un programa es traducido a un modo mas apropiado para transformaciones de mejora de codigo antes de generar el codigo objeto o codigo maquina para una maquina determinada El diseno del lenguaje intermedio difiere tipicamente del lenguaje de maquina de tres maneras fundamentales Cada instruccion representa exactamente una operacion fundamental por ejemplo los modos de direccionamiento shift add desplazar y anadir comunes en microprocesadores no estan presentes La informacion de la estructura de control puede no estar incluida en el juego de instrucciones El numero de registros disponibles puede ser grande incluso ilimitado Un formato popular para lenguajes intermedios es el de codigo de tres direcciones El termino tambien es usado para referirse a lenguajes usados como intermedios por algunos lenguajes de alto nivel que no crean codigo objeto o codigo maquina por si mismos sino que solamente el lenguaje intermedio Este lenguaje intermedio es enviado a un compilador para tal lenguaje que genera el codigo objeto o codigo maquina finalizado Esto se suele hacer para facilitar el proceso de optimizacion o para incrementar la portabilidad mediante el uso de un lenguaje intermedio que tenga compiladores para la mayoria de CPUs y sistemas operativos como puede ser C Los lenguajes usados para esto tienen una complejidad que se situa entre los lenguajes de alto y bajo nivel como el lenguaje ensamblador Indice 1 Representacion intermedia 2 Lenguajes 3 Vease tambien 4 ReferenciasRepresentacion intermedia EditarUna representacion intermedia RI es una estructura de datos creada a partir de los datos de entrada de un programa informatico y de la que parte o la totalidad de los datos de salida son construidos por turno El uso del termino suele implicar que la mayoria de la informacion presente en la entrada es guardada por la representacion intermedia junto con mas anotaciones o caracteristicas de busqueda rapida Un ejemplo canonico se encuentra en la mayoria de compiladores modernos donde el texto linear entendible por los humanos es transformado en un grafo que permite el analisis del flujo de datos y recolocaciones antes de empezar a crear la lista de instrucciones del CPU que haran el trabajo El uso de una representacion intermedia permite a sistemas de compiladores como GNU GCC y LLVM poder tener como destino diferentes codigos fuente y admiten su generacion para diferentes tipos de arquitectura Lenguajes EditarAunque no esta especificamente disenado como un lenguaje intermedio la naturaleza de C como una abstraccion del lenguaje ensamblador y su uso como lenguaje de sistema en Unix like y otros sistemas operativos lo han convertido en un lenguaje intermedio popular Eiffel Sather Esterel algunos dialectos de Lisp Lush Gambit Haskell Glasgow Haskell Compiler Squeak Cython Seed7 Vala y otros usan C como un lenguaje intermedio Variantes de C han sido disenadas para proveer a C de caracteristicas como un lenguaje ensamblador portable incluyendo C o el lenguaje intermedio de C El Common Intermediate Language de Microsoft es un lenguaje intermedio disenado para ser compartido por todos los compiladores del NET Framework antes de ser generado el codigo maquina El GNU Compiler Collection GCC usa varios lenguajes intermedios internamente para simplificar la portabilidad Entre esos lenguajes estan el historico Register transfer language RTL el lenguaje de arbol GENERIC el basado en SSA GIMPLEMientras la mayoria de lenguajes son disenados para soportar lenguajes escritos estaticamente la representacion intermedia de Parrot esta disenada para soportar lenguajes escritos dinamicamente inicialmente Perl y Python El lenguaje intermedio ILOC 1 es usado en clases de diseno de compiladores como un lenguaje destino simple 2 Vease tambien EditarArbol de sintaxis abstracta Bytecode Tabla de simbolosReferencias Editar Barret W A 2007 Un simulador ILOC en ingles Morgan Kaufmann ISBN 1 55860 698 X Archivado desde el original el 7 de mayo de 2009 Consultado el 10 de julio de 2014 Uli Kremer Diseno del compilador CISC 471 en ingles Consultado el 10 de julio de 2014 Datos Q244916 Obtenido de https es wikipedia org w index php title Lenguaje intermedio amp oldid 121464534, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos