fbpx
Wikipedia

Implementación de lenguaje de programación

Una implementación de lenguaje de programación es un sistema para ejecutar programas de ordenador. Hay dos aproximaciones generales a implementación de lenguaje de programación: interpretación y recopilación.[1]

La interpretación es un método de ejecutar un programa. El programa está leído tan entrada por un intérprete, el cual actúa las acciones escritas en el programa.[2]

La compilación es un proceso diferente , donde un compilador lee en un programa, pero en vez de correr el programa, el compilador traduce este a algún otro lenguaje, como bytecode o código de máquina. El código traducido puede ser directamente ejecutado por hardware, o servir tan entrada a otro intérprete u otro compilador.[2]

Intérprete

Un intérprete está compuesto de dos partes: un parseador y un evaluador. Después de que un programa es leído como un dato de entrada por un intérprete, es procesado por el parser. El parser rompe el programa a componentes de lenguaje para formar un árbol de parseo. El evaluador entonces utiliza el árbol de parseado para ejecutar el programa.[3]

Máquina virtual

Una máquina virtual es un tipo especial de intérprete que interpreta bytecode.[2]​ Bytecode Es un código de nivel bajo portátil similar a código de máquina, aunque es generalmente ejecutado en una máquina virtual en vez de una máquina física.[4]​ Para mejorar su eficiencia, muchos lenguajes de programación como Java, Python, y C# están compilados a bytecode antes de ser interpretados.[5]

Compilado Justo-a-tiempo

Algunas las máquinas virtuales incluyen un compilador justos-a-tiempo (JIT en inglés) para mejorar la eficacia de ejecución del bytecode. Mientras el bytecode está siendo ejecutado por la máquina virtual, si el proceso JIT del compilador determina que una porción del bytecode será utilizado repetidamente, compila que porción particular a código de máquina. El JIT del compilador entonces almacena el código de máquina en memoria de modo que pueda ser utilizado por la máquina virtual. Los compiladores JIT intentan lograr un equilibrio entre tiempo de recopilación más largo y un tiempo de ejecución más rápida.[2]​</ref>

Compilador

Un compilador traduce un programa escrito en una lenguaje a otro lenguaje. La mayoría de compiladores están organizados a tres etapas: un frente, un optimizador, y un fin posterior. El fin de frente es responsable para comprensivo el programa. Hace seguro el programa es válido y transforma él a una representación intermedia, una estructura de dato utilizada por el compilador para representar el programa. El optimizer mejora la representación intermedia para aumentar la velocidad o reducir la medida del ejecutable cuál es finalmente producido por el compilador. El fin posterior convierte la representación intermedia optimizada a la lengua de producción del compilador.[6]

Si un compilador de un lenguaje de alto nivel produce otro lenguaje de nivel alta, se denomina transpilador. Los transpiladores puede ser usados para extender lenguajes existentes o para simplificar el desarrollo de compiladores mediante el uso de implementaciones optimizadas y portátiles de otros lenguajes como C).[2]​</ref>

Muchas combinaciones de interpretación y compilación son posibles, y muchas implementaciones de lenguaje de programación modernos incluyen elementos de ambos. Por ejemplo, el lenguaje de programación Smalltalk es convencionalmente implementado mediante compilación a bytecode, el cual es entonces es interpretado o compilado por una máquina virtual. Al ser corrido Smalltalk bytecode en una máquina virtual, es portátil a través de plataformas de hardware diferente.[7]

Implementaciones múltiples

Los lenguajes de programación pueden tener implementaciones múltiples. Implementaciones diferentes pueden ser escritas en lenguajes diferentes y puede utilizar métodos diferentes para compilar o interpretar código. Por ejemplo, las implementaciones de Python incluyen:[8]​ 

Referencias

  1. Ranta, Aarne (9 de mayo de 2012). Implementing Programming Languages (en inglés). College Publications. pp. 16-18. ISBN 9781848900646. Consultado el 22 de marzo de 2020. 
  2. Baker, Greg. «Language Implementations». Computing Science - Simon Fraser (en inglés). Consultado el 22 de marzo de 2020. 
  3. Evans, David (19 August 2011). Introduction to Computing. University of Virginia. p. 211. Consultado el 22 de marzo de 2020. 
  4. Sridhar, Jay. «Why the Java Virtual Machine Helps Your Code Run Better» (en inglés). Consultado el 22 de marzo de 2020. 
  5. Bennett, James. «An introduction to Python bytecode» (en inglés). Consultado el 22 de marzo de 2020. 
  6. Cooper, Keith; Torczon, Linda (7 de febrero de 2011). Engineering a Compiler (2nd edición). Morgan Kaufmann. pp. 6-9. ISBN 9780120884780. 
  7. Lewis, Simon (11 de mayo de 1995). The Art and Science of Smalltalk. Prentice Hall. pp. 20-21. ISBN 9780133713459. Consultado el 23 March 2020. 
  8. «Alternative Python Implementations» (en inglés). Consultado el 23 de marzo de 2020. 

implementación, lenguaje, programación, implementación, lenguaje, programación, sistema, para, ejecutar, programas, ordenador, aproximaciones, generales, implementación, lenguaje, programación, interpretación, recopilación, interpretación, método, ejecutar, pr. Una implementacion de lenguaje de programacion es un sistema para ejecutar programas de ordenador Hay dos aproximaciones generales a implementacion de lenguaje de programacion interpretacion y recopilacion 1 La interpretacion es un metodo de ejecutar un programa El programa esta leido tan entrada por un interprete el cual actua las acciones escritas en el programa 2 La compilacion es un proceso diferente donde un compilador lee en un programa pero en vez de correr el programa el compilador traduce este a algun otro lenguaje como bytecode o codigo de maquina El codigo traducido puede ser directamente ejecutado por hardware o servir tan entrada a otro interprete u otro compilador 2 Indice 1 Interprete 1 1 Maquina virtual 1 2 Compilado Justo a tiempo 2 Compilador 3 Implementaciones multiples 4 ReferenciasInterprete EditarUn interprete esta compuesto de dos partes un parseador y un evaluador Despues de que un programa es leido como un dato de entrada por un interprete es procesado por el parser El parser rompe el programa a componentes de lenguaje para formar un arbol de parseo El evaluador entonces utiliza el arbol de parseado para ejecutar el programa 3 Maquina virtual Editar Una maquina virtual es un tipo especial de interprete que interpreta bytecode 2 Bytecode Es un codigo de nivel bajo portatil similar a codigo de maquina aunque es generalmente ejecutado en una maquina virtual en vez de una maquina fisica 4 Para mejorar su eficiencia muchos lenguajes de programacion como Java Python y C estan compilados a bytecode antes de ser interpretados 5 Compilado Justo a tiempo Editar Algunas las maquinas virtuales incluyen un compilador justos a tiempo JIT en ingles para mejorar la eficacia de ejecucion del bytecode Mientras el bytecode esta siendo ejecutado por la maquina virtual si el proceso JIT del compilador determina que una porcion del bytecode sera utilizado repetidamente compila que porcion particular a codigo de maquina El JIT del compilador entonces almacena el codigo de maquina en memoria de modo que pueda ser utilizado por la maquina virtual Los compiladores JIT intentan lograr un equilibrio entre tiempo de recopilacion mas largo y un tiempo de ejecucion mas rapida 2 lt ref gt Compilador EditarUn compilador traduce un programa escrito en una lenguaje a otro lenguaje La mayoria de compiladores estan organizados a tres etapas un frente un optimizador y un fin posterior El fin de frente es responsable para comprensivo el programa Hace seguro el programa es valido y transforma el a una representacion intermedia una estructura de dato utilizada por el compilador para representar el programa El optimizer mejora la representacion intermedia para aumentar la velocidad o reducir la medida del ejecutable cual es finalmente producido por el compilador El fin posterior convierte la representacion intermedia optimizada a la lengua de produccion del compilador 6 Si un compilador de un lenguaje de alto nivel produce otro lenguaje de nivel alta se denomina transpilador Los transpiladores puede ser usados para extender lenguajes existentes o para simplificar el desarrollo de compiladores mediante el uso de implementaciones optimizadas y portatiles de otros lenguajes como C 2 lt ref gt Muchas combinaciones de interpretacion y compilacion son posibles y muchas implementaciones de lenguaje de programacion modernos incluyen elementos de ambos Por ejemplo el lenguaje de programacion Smalltalk es convencionalmente implementado mediante compilacion a bytecode el cual es entonces es interpretado o compilado por una maquina virtual Al ser corrido Smalltalk bytecode en una maquina virtual es portatil a traves de plataformas de hardware diferente 7 Implementaciones multiples EditarLos lenguajes de programacion pueden tener implementaciones multiples Implementaciones diferentes pueden ser escritas en lenguajes diferentes y puede utilizar metodos diferentes para compilar o interpretar codigo Por ejemplo las implementaciones de Python incluyen 8 CPython la implementacion de referencia de Python IronPython una implementacion que apunta al Marco NET escrito en C Jython una implementacion que apunta a la maquina virtual Java PyPy una implementacion disenada para velocidad escrito en RPython Referencias Editar Ranta Aarne 9 de mayo de 2012 Implementing Programming Languages en ingles College Publications pp 16 18 ISBN 9781848900646 Consultado el 22 de marzo de 2020 a b c d e Baker Greg Language Implementations Computing Science Simon Fraser en ingles Consultado el 22 de marzo de 2020 Evans David 19 August 2011 Introduction to Computing University of Virginia p 211 Consultado el 22 de marzo de 2020 Sridhar Jay Why the Java Virtual Machine Helps Your Code Run Better en ingles Consultado el 22 de marzo de 2020 Bennett James An introduction to Python bytecode en ingles Consultado el 22 de marzo de 2020 Cooper Keith Torczon Linda 7 de febrero de 2011 Engineering a Compiler 2nd edicion Morgan Kaufmann pp 6 9 ISBN 9780120884780 Lewis Simon 11 de mayo de 1995 The Art and Science of Smalltalk Prentice Hall pp 20 21 ISBN 9780133713459 Consultado el 23 March 2020 Alternative Python Implementations en ingles Consultado el 23 de marzo de 2020 Obtenido de https es wikipedia org w index php title Implementacion de lenguaje de programacion amp oldid 134902190, 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