Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Bytecode
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Examples== *[[ActionScript]] executes in the ActionScript Virtual Machine (AVM), which is part of Flash Player and [[Adobe AIR|AIR]]. ActionScript code is typically transformed into bytecode format by a [[compiler]]. Examples of compilers include one built into Adobe Flash Professional and one built into Adobe Flash Builder and available in the [[Apache Flex|Adobe Flex SDK]]. *[[Adobe Flash]] objects *[[BANCStar programming language|BANCStar]], originally bytecode for an interface-building tool but used also as a language *[[Berkeley Packet Filter]] *[[EBPF]] *Berkeley Pascal<ref>{{cite web|last=G.|first=Adam Y.|title=Berkeley Pascal|website=[[GitHub]] |date=2022-07-11|url=https://github.com/adamyg/berkeley_pascal|access-date=2022-01-08}}</ref> *[[Byte Code Engineering Library]] *C to [[Java virtual machine]] compilers *[[CLISP]] implementation of [[Common Lisp]] used to compile only to bytecode for many years; however, now it also supports compiling to native code with the help of [[GNU lightning]] *[[CMUCL]] and Scieneer Common Lisp implementations of [[Common Lisp]] can compile either to native code or to bytecode, which is far more compact *[[Common Intermediate Language]] executed by [[Common Language Runtime]], used by [[.NET]] languages such as [[C Sharp (programming language)|C#]] *[[Dalvik (software)|Dalvik]] bytecode, designed for the [[Android (operating system)|Android]] platform, is executed by the [[Dalvik (software)|Dalvik virtual machine]] *Dis bytecode, designed for the [[Inferno (operating system)]], is executed by the [[Dis virtual machine]] *[[EiffelStudio]] for the [[Eiffel (programming language)|Eiffel]] programming language *EM, the [[Amsterdam Compiler Kit]] virtual machine used as an intermediate compiling language and as a modern bytecode language *[[Emacs]] is a text editor with most of its functions implemented by [[Emacs Lisp]], its built-in dialect of [[Lisp (programming language)|Lisp]]. These features are compiled into bytecode. This architecture allows users to customize the editor with a high level language, which after compiling into bytecode yields reasonable performance. *[[Embeddable Common Lisp]] implementation of [[Common Lisp]] can compile to bytecode or C code *[[Common Lisp]] provides a <code>disassemble</code> function<ref>{{cite web|url=http://www.lispworks.com/documentation/HyperSpec/Body/f_disass.htm|title=CLHS: Function DISASSEMBLE|website=www.lispworks.com}}</ref> which prints to the standard output the underlying code of a specified function. The result is implementation-dependent and may or may not resolve to bytecode. Its inspection can be utilized for debugging and optimization purposes.<ref>{{cite web|url=https://lispcookbook.github.io/cl-cookbook/performance.html|title=The Common Lisp Cookbook β Performance Tuning and Tips|author=Collective|date=2023-12-13|website=lispcookbook.github.io}}</ref> [[Steel Bank Common Lisp]], for instance, produces: :<syntaxhighlight lang="lisp"> (disassemble '(lambda (x) (print x))) ; disassembly for (LAMBDA (X)) ; 2436F6DF: 850500000F22 TEST EAX, [#x220F0000] ; no-arg-parsing entry point ; E5: 8BD6 MOV EDX, ESI ; E7: 8B05A8F63624 MOV EAX, [#x2436F6A8] ; #<FDEFINITION object for PRINT> ; ED: B904000000 MOV ECX, 4 ; F2: FF7504 PUSH DWORD PTR [EBP+4] ; F5: FF6005 JMP DWORD PTR [EAX+5] ; F8: CC0A BREAK 10 ; error trap ; FA: 02 BYTE #X02 ; FB: 18 BYTE #X18 ; INVALID-ARG-COUNT-ERROR ; FC: 4F BYTE #X4F ; ECX </syntaxhighlight> *Ericsson implementation of [[Erlang (programming language)|Erlang]] uses BEAM bytecodes *[[Ethereum]]'s Virtual Machine (EVM) is the runtime environment, using its own bytecode, for transaction execution in Ethereum (smart contracts). *[[Icon (programming language)|Icon]]<ref name="Arizona_Icom" /> and [[Unicon (programming language)|Unicon]]<ref name="Icon_Unicon"/> programming languages *[[Infocom]] used the [[Z-machine]] to make its software applications more portable *[[Java bytecode]], which is executed by the [[Java virtual machine]] **[[ObjectWeb ASM|ASM]] **[[BCEL]] **Javassist *[[Keiko bytecode]] used by the [[Oberon-2]] programming language to make it and the [[Oberon operating system]] more portable. *[[KEYB (command)|KEYB]], the [[MS-DOS]]/[[PC DOS]] keyboard driver with its resource file [[KEYBOARD.SYS]] containing layout information and short [[p-code machine|p-code]] sequences executed by an interpreter inside the resident driver.<ref name="Paul_2001_KEYBOARD"/><ref name="Mendelson_2001_KEYBOARD"/> *[[LLVM IR]] *LSL, a scripting language used in virtual worlds compiles into bytecode running on a virtual machine. Second Life has the original Mono version, Inworldz developed the Phlox version. *[[Lua (programming language)|Lua]] language uses a register-based bytecode virtual machine *m-code of the [[MATLAB]] language<ref name="Patent_6973644"/> *[[Malbolge]] is an [[esoteric programming language|esoteric]] [[machine language]] for a ternary virtual machine. *[[P-code machine#Microsoft P-code|Microsoft P-code]] used in [[Visual C++]] and [[Visual Basic (classic)|Visual Basic]] *[[Multiplan]]<ref name="Multiplan"/> *[[O-code]] of the [[BCPL]] programming language *[[OCaml]] language optionally compiles to a compact bytecode form *[[p-code machine|p-code]] of [[UCSD Pascal]] implementation of the [[Pascal (programming language)|Pascal]] language *[[Parrot virtual machine]] *[[Pick operating system|Pick BASIC]] also referred to as Data BASIC or [[MultiValue#MultiValue DataBASIC|MultiValue BASIC]] *The [[R (programming language)|R environment for statistical computing]] offers a bytecode compiler through the compiler package, now standard with R version 2.13.0. It is possible to compile this version of R so that the base and recommended packages exploit this.<ref name="cran_r"/> *[[Pyramid 2000]] adventure game *[[Python (programming language)|Python]] scripts are being compiled on execution to Python's bytecode language, and the compiled files (.pyc) are cached inside the script's folder :Compiled code can be analysed and investigated using a built-in tool for debugging the low-level bytecode. The tool can be initialized from the shell, for example: :<syntaxhighlight lang="pycon"> >>> import dis # "dis" - Disassembler of Python byte code into mnemonics. >>> dis.dis('print("Hello, World!")') 1 0 LOAD_NAME 0 (print) 2 LOAD_CONST 0 ('Hello, World!') 4 CALL_FUNCTION 1 6 RETURN_VALUE </syntaxhighlight> *[[Scheme 48]] implementation of Scheme using bytecode interpreter *Bytecodes of many implementations of the [[Smalltalk]] language *The [[Parallax Propeller#Built in Spin bytecode interpreter|Spin interpreter]] built into the [[Parallax, Inc. (company)|Parallax]] Propeller [[microcontroller]] *The [[SQLite]] database engine translates SQL statements into a bespoke byte-code format.<ref name="SQLite"/> *Apple [[SWEET16]] *[[Tcl]] *[[IBM i#TIMI|TIMI]] is used by compilers on the [[IBM i]] platform. *[[Tiny BASIC#Implementation in a virtual machine|Tiny BASIC]] *[[Visual FoxPro]] compiles to bytecode *[[WebAssembly]] *[[YARV]] and [[Rubinius]] for [[Ruby (programming language)|Ruby]] *[[ZCODE]] *[[Zend Engine]] opcodes for [[PHP]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)