fbpx
Wikipedia

Bytecode

El bytecode o código intermedio[1][2][3]​ es un lenguaje intermedio más abstracto que el lenguaje máquina. Habitualmente, es tratado como un archivo binario que contiene un programa ejecutable similar a un módulo objeto, que es un archivo binario producido por el compilador cuyo contenido es el código objeto o código máquina .

El código intermedio recibe su nombre porque usualmente cada código de operación tiene una longitud de un byte, si bien la longitud del código de las instrucciones varía. Cada instrucción tiene un código de operación entre 0 y 255 seguido de parámetros tales como los registros o las direcciones de memoria. Esta sería la descripción de un caso típico, si bien la especificación del bytecode depende ampliamente del lenguaje.

Como código intermedio, se trata de una forma de salida utilizada por los implementadores de lenguajes para reducir la dependencia respecto del hardware específico y facilitar la interpretación. Menos frecuentemente se utiliza el bytecode como código intermedio en un compilador. Algunos sistemas, llamados traductores dinámicos o compiladores justo a tiempo, traducen el bytecode a código máquina inmediatamente antes de su ejecución para mejorar la velocidad de ejecución.

Los programas en bytecode suelen ser interpretados por un intérprete de bytecode (en general, llamado máquina virtual, dado que es análogo a un ordenador). Su ventaja es su portabilidad: el mismo código binario puede ser ejecutado en diferentes plataformas y arquitecturas. Es la misma ventaja que presentan los lenguajes interpretados. Sin embargo, como el bytecode es en general menos abstracto, más compacto y más orientado a la máquina que un programa pensado para su modificación por humanos, su rendimiento suele ser mejor que el de los lenguajes interpretados. A causa de esa mejora en el rendimiento, muchos lenguajes interpretados, de hecho, se compilan para convertirlos en bytecode y después son ejecutados por un intérprete de bytecode. Entre esos lenguajes se encuentran Perl, Gambas, PHP y Python. En el caso de Java se suele transmitir como bytecode a la máquina receptora, que utiliza un compilador just-in-time para compilar el bytecode en código máquina nativo antes de su ejecución, ahorrando así procesos de interpretación.

Son asimismo interesantes los denominados códigos p, similares a los códigos intermedios pero cuyos códigos de operación pueden constar de más de un byte y pueden ser variables en tamaño, como los opcodes de muchas CPU. Estos códigos trabajan a muy alto nivel, incluyendo instrucciones del estilo de «imprime esta cadena» o «borra la pantalla». Por ejemplo, BASIC utiliza p-Code.

En noviembre de 2019, Mozilla, Fasty, Intel y Red Hat forman la Bytecode Alliance, una empresa que tiene por finalidad promover el uso del lenguaje WebAssembly en entornos Linux e integrando cualquier navegador como Safari, Chrome o Firefox.[4]

Ejemplos Editar

>>> import dis # "dis" - Desensamblador de código de bytes de Python en mnemónicos. >>> dis.dis('print("¡Hola, Mundo!")') 1 0 LOAD_NAME 0 (print) 2 LOAD_CONST 0 ('¡Hola, mundo!') 4 CALL_FUNCTION 1 6 RETURN_VALUE 
  • ActionScript se ejecuta en la máquina virtual de ActionScript (AVM), que forma parte de Flash Player y AIR. El código ActionScript se transforma normalmente en formato bytecode mediante un compilador. Entre los ejemplos de compiladores se incluyen uno incorporado a Adobe Flash Professional y otro incorporado a Adobe Flash Builder y disponible en el Adobe Flex SDK.
  • Objetos de Adobe Flash
  • BANCStar, originalmente bytecode para una herramienta de construcción de interfaces pero utilizado también como lenguaje
  • Berkeley Packet Filter
  • Biblioteca de ingeniería de código de bytes
  • Compiladores de C a máquina virtual Java
  • CLISP implementación de Common Lisp solía compilar sólo a bytecode durante muchos años; sin embargo, ahora también soporta la compilación a código nativo con la ayuda de GNU lightning
  • CMUCL y Scieneer Common Lisp implementaciones de Common Lisp pueden compilar tanto a código nativo como a bytecode, que es mucho más compacto
  • Common Intermediate Language ejecutado por Common Language Runtime, utilizado por lenguajes de .NET Framework como C#.
  • Dalvik bytecode, diseñado para la plataforma Android, es ejecutado por la máquina virtual Dalvik
  • El bytecode Dis, diseñado para el Inferno (sistema operativo), es ejecutado por la máquina virtual Dis
  • EiffelStudio para el lenguaje de programación Eiffel
  • EM, la máquina virtual Amsterdam Compiler Kit utilizada como lenguaje intermedio de compilación y como lenguaje moderno de bytecode
  • Emacs es un editor de texto con la mayoría de sus funciones implementadas por Emacs Lisp, su dialecto incorporado de Lisp. Estas funciones se compilan en bytecode. Esta arquitectura permite a los usuarios personalizar el editor con un lenguaje de alto nivel, que después de la compilación en bytecode produce un rendimiento razonable.
  • La implementación de Embeddable Common Lisp de Common Lisp puede compilar a bytecode o código C
  • La implementación Ericsson de Erlang utiliza bytecodes BEAM
  • Icon y Unicon lenguajes de programación
  • Infocom utilizó el Z-machine para hacer más portables sus aplicaciones de software
  • Java bytecode, que es ejecutado por la máquina virtual Java
    • ASM
    • BCEL
    • Javassist
    • JMangler
  • KEYB, el controlador de teclado de MS-DOS/PC DOS con su archivo de recursos KEYBOARD.SYS que contiene información de diseño y secuencias cortas de código p ejecutadas por un intérprete dentro del controlador residente.
  • LSL, un lenguaje de script utilizado en los mundos virtuales compila en bytecode que se ejecuta en una máquina virtual. Second Life tiene la versión original Mono, Inworldz desarrolló la versión Phlox.
  • Lua el lenguaje utiliza una máquina virtual bytecode basada en registros
  • m-code del lenguaje MATLAB
  • Multiplan
  • O-code del lenguaje de programación BCPL
  • OCaml del lenguaje compila opcionalmente a una forma compacta de bytecode
  • Código p de la implementación UCSD Pascal del lenguaje Pascal
  • Máquina virtual Parrot
  • Pick BASIC también conocido como Data BASIC o MultiValue BASIC
  • El Entorno R para la computación estadística ofrece un compilador de bytecode a través del paquete compilador, ahora estándar con la versión 2.13.0 de R. Es posible compilar esta versión de R para que los paquetes base y recomendados lo exploten.
  • Pyramid 2000 juego de aventuras
  • Scheme 48 implementación de Scheme usando el intérprete de bytecode
  • Bytecodes de muchas implementaciones del lenguaje Smalltalk
  • El interprete spin integrado en el microcontrolador Propeller de Parallax
  • El motor de base de datos SQLite traduce las sentencias SQL a un formato de código de bytes a medida.
  • SWEET16
  • Tcl
  • Tiny BASIC
  • Visual FoxPro compila a bytecode
  • WebAssembly
  • YARV y Rubinius para Ruby

Referencias Editar

  1. Wolf, Gunnar (9 de septiembre de 2015). Fundamentos de sistemas operativos. Lulu.com. ISBN 978-607-02-6544-0. Consultado el 5 de agosto de 2022. 
  2. Pérez, Juan Carlos Moreno. Programación Orientada a Objetos. Grupo Editorial RA-MA. Consultado el 5 de agosto de 2022. 
  3. Zapien, Rosa Hernández de Lapién (2005). Apex Computer Science Terminology for Interpreters. English-Spanish glossary.. Rosie Zapien. ISBN 978-0-9772521-4-5. Consultado el 5 de agosto de 2022. 
  4. «Mozilla, Fasty, Intel y Red Hat forman la Bytecode Alliance.». 
  •   Datos: Q837330

bytecode, este, artículo, sobre, informática, detectó, siguiente, problema, favor, edítalo, para, mejorarlo, carece, fuentes, referencias, aparezcan, fuente, acreditada, este, aviso, puesto, enero, 2014, bytecode, código, intermedio, lenguaje, intermedio, más,. En este articulo sobre informatica se detecto el siguiente problema Por favor editalo para mejorarlo Carece de fuentes o referencias que aparezcan en una fuente acreditada Este aviso fue puesto el 20 de enero de 2014 El bytecode o codigo intermedio 1 2 3 es un lenguaje intermedio mas abstracto que el lenguaje maquina Habitualmente es tratado como un archivo binario que contiene un programa ejecutable similar a un modulo objeto que es un archivo binario producido por el compilador cuyo contenido es el codigo objeto o codigo maquina El codigo intermedio recibe su nombre porque usualmente cada codigo de operacion tiene una longitud de un byte si bien la longitud del codigo de las instrucciones varia Cada instruccion tiene un codigo de operacion entre 0 y 255 seguido de parametros tales como los registros o las direcciones de memoria Esta seria la descripcion de un caso tipico si bien la especificacion del bytecode depende ampliamente del lenguaje Como codigo intermedio se trata de una forma de salida utilizada por los implementadores de lenguajes para reducir la dependencia respecto del hardware especifico y facilitar la interpretacion Menos frecuentemente se utiliza el bytecode como codigo intermedio en un compilador Algunos sistemas llamados traductores dinamicos o compiladores justo a tiempo traducen el bytecode a codigo maquina inmediatamente antes de su ejecucion para mejorar la velocidad de ejecucion Los programas en bytecode suelen ser interpretados por un interprete de bytecode en general llamado maquina virtual dado que es analogo a un ordenador Su ventaja es su portabilidad el mismo codigo binario puede ser ejecutado en diferentes plataformas y arquitecturas Es la misma ventaja que presentan los lenguajes interpretados Sin embargo como el bytecode es en general menos abstracto mas compacto y mas orientado a la maquina que un programa pensado para su modificacion por humanos su rendimiento suele ser mejor que el de los lenguajes interpretados A causa de esa mejora en el rendimiento muchos lenguajes interpretados de hecho se compilan para convertirlos en bytecode y despues son ejecutados por un interprete de bytecode Entre esos lenguajes se encuentran Perl Gambas PHP y Python En el caso de Java se suele transmitir como bytecode a la maquina receptora que utiliza un compilador just in time para compilar el bytecode en codigo maquina nativo antes de su ejecucion ahorrando asi procesos de interpretacion Son asimismo interesantes los denominados codigos p similares a los codigos intermedios pero cuyos codigos de operacion pueden constar de mas de un byte y pueden ser variables en tamano como los opcodes de muchas CPU Estos codigos trabajan a muy alto nivel incluyendo instrucciones del estilo de imprime esta cadena o borra la pantalla Por ejemplo BASIC utiliza p Code En noviembre de 2019 Mozilla Fasty Intel y Red Hat forman la Bytecode Alliance una empresa que tiene por finalidad promover el uso del lenguaje WebAssembly en entornos Linux e integrando cualquier navegador como Safari Chrome o Firefox 4 Ejemplos Editar gt gt gt import dis dis Desensamblador de codigo de bytes de Python en mnemonicos gt gt gt dis dis print Hola Mundo 1 0 LOAD NAME 0 print 2 LOAD CONST 0 Hola mundo 4 CALL FUNCTION 1 6 RETURN VALUE ActionScript se ejecuta en la maquina virtual de ActionScript AVM que forma parte de Flash Player y AIR El codigo ActionScript se transforma normalmente en formato bytecode mediante un compilador Entre los ejemplos de compiladores se incluyen uno incorporado a Adobe Flash Professional y otro incorporado a Adobe Flash Builder y disponible en el Adobe Flex SDK Objetos de Adobe Flash BANCStar originalmente bytecode para una herramienta de construccion de interfaces pero utilizado tambien como lenguaje Berkeley Packet Filter Biblioteca de ingenieria de codigo de bytes Compiladores de C a maquina virtual Java CLISP implementacion de Common Lisp solia compilar solo a bytecode durante muchos anos sin embargo ahora tambien soporta la compilacion a codigo nativo con la ayuda de GNU lightning CMUCL y Scieneer Common Lisp implementaciones de Common Lisp pueden compilar tanto a codigo nativo como a bytecode que es mucho mas compacto Common Intermediate Language ejecutado por Common Language Runtime utilizado por lenguajes de NET Framework como C Dalvik bytecode disenado para la plataforma Android es ejecutado por la maquina virtual Dalvik El bytecode Dis disenado para el Inferno sistema operativo es ejecutado por la maquina virtual Dis EiffelStudio para el lenguaje de programacion Eiffel EM la maquina virtual Amsterdam Compiler Kit utilizada como lenguaje intermedio de compilacion y como lenguaje moderno de bytecode Emacs es un editor de texto con la mayoria de sus funciones implementadas por Emacs Lisp su dialecto incorporado de Lisp Estas funciones se compilan en bytecode Esta arquitectura permite a los usuarios personalizar el editor con un lenguaje de alto nivel que despues de la compilacion en bytecode produce un rendimiento razonable La implementacion de Embeddable Common Lisp de Common Lisp puede compilar a bytecode o codigo C La implementacion Ericsson de Erlang utiliza bytecodes BEAM Icon y Unicon lenguajes de programacion Infocom utilizo el Z machine para hacer mas portables sus aplicaciones de software Java bytecode que es ejecutado por la maquina virtual Java ASM BCEL Javassist JMangler KEYB el controlador de teclado de MS DOS PC DOS con su archivo de recursos KEYBOARD SYS que contiene informacion de diseno y secuencias cortas de codigo p ejecutadas por un interprete dentro del controlador residente LSL un lenguaje de script utilizado en los mundos virtuales compila en bytecode que se ejecuta en una maquina virtual Second Life tiene la version original Mono Inworldz desarrollo la version Phlox Lua el lenguaje utiliza una maquina virtual bytecode basada en registros m code del lenguaje MATLAB Multiplan O code del lenguaje de programacion BCPL OCaml del lenguaje compila opcionalmente a una forma compacta de bytecode Codigo p de la implementacion UCSD Pascal del lenguaje Pascal Maquina virtual Parrot Pick BASIC tambien conocido como Data BASIC o MultiValue BASIC El Entorno R para la computacion estadistica ofrece un compilador de bytecode a traves del paquete compilador ahora estandar con la version 2 13 0 de R Es posible compilar esta version de R para que los paquetes base y recomendados lo exploten Pyramid 2000 juego de aventuras Scheme 48 implementacion de Scheme usando el interprete de bytecode Bytecodes de muchas implementaciones del lenguaje Smalltalk El interprete spin integrado en el microcontrolador Propeller de Parallax El motor de base de datos SQLite traduce las sentencias SQL a un formato de codigo de bytes a medida SWEET16 Tcl Tiny BASIC Visual FoxPro compila a bytecode WebAssembly YARV y Rubinius para RubyReferencias Editar Wolf Gunnar 9 de septiembre de 2015 Fundamentos de sistemas operativos Lulu com ISBN 978 607 02 6544 0 Consultado el 5 de agosto de 2022 Perez Juan Carlos Moreno Programacion Orientada a Objetos Grupo Editorial RA MA Consultado el 5 de agosto de 2022 Zapien Rosa Hernandez de Lapien 2005 Apex Computer Science Terminology for Interpreters English Spanish glossary Rosie Zapien ISBN 978 0 9772521 4 5 Consultado el 5 de agosto de 2022 Mozilla Fasty Intel y Red Hat forman la Bytecode Alliance nbsp Datos Q837330 Obtenido de https es wikipedia org w index php title Bytecode amp oldid 145193074, 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