HOME

TheInfoList




Bytecode, also termed portable code or p-code, is a form of
instruction set In computer science, an instruction set architecture (ISA), also called computer architecture, is an abstract model of a computer. A device that executes instructions described by that ISA, such as a central processing unit (CPU), is called an '' ...
designed for efficient execution by a software interpreter. Unlike
human-readable 220px, ISBN represented as EAN-13 bar code showing both human-readable and machine-readable data A human-readable medium or human-readable format is any encoding of data Data are units of information Information can be thought of as ...
source code In , source code is any collection of code, with or without , written using a ''human-readable'' , usually as . The source code of a program is specially designed to facilitate the work of computer s, who specify the actions to be performed ...

source code
, bytecodes are compact numeric codes, constants, and references (normally numeric addresses) that encode the result of
compiler In computing Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes and development of both computer hardware , hardware and soft ...

compiler
parsing and performing semantic analysis of things like type, scope, and nesting depths of program objects. The name bytecode stems from instruction sets that have one-
byte The byte is a unit of digital information that most commonly consists of eight bit The bit is a basic unit of information in computing Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It ...
opcode In computing, an opcode (abbreviated from operation code, also known as instruction machine code, instruction code, instruction syllable, instruction parcel or opstring) is the portion of a machine code, machine language instruction (computer sci ...
s followed by optional parameters.
Intermediate representation An intermediate representation (IR) is the data structure Image:Hash table 3 1 1 0 1 0 0 SP.svg, 315px, A data structure known as a hash table. In computer science, a data structure is a data organization, management, and storage format that ...
s such as bytecode may be output by
programming language A programming language is a formal language In mathematics Mathematics (from Ancient Greek, Greek: ) includes the study of such topics as quantity (number theory), mathematical structure, structure (algebra), space (geometry), and calcu ...

programming language
implementations to ease
interpretation Interpretation may refer to: Culture * Aesthetic interpretation, an explanation of the meaning of a work of art * Allegorical interpretation, an approach that assumes a text should not be interpreted literally * Dramatic Interpretation, an event i ...
, or it may be used to reduce hardware and
operating system An operating system (OS) is system software System software is software designed to provide a platform for other software. Examples of system software include operating systems like macOS macOS (; previously Mac OS X and later ...

operating system
dependence by allowing the same code to run
cross-platform In computing Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithm of an algorithm (Euclid's algorithm) for calculating the greatest commo ...

cross-platform
, on different devices. Bytecode may often be either directly executed on a
virtual machine In computing, a virtual machine (VM) is the virtualization/emulator, emulation of a computer system. Virtual machines are based on computer architectures and provide functionality of a physical computer. Their implementations may involve special ...
(a
p-code machine In computer programming Computer programming is the process of designing and building an executable computer program to accomplish a specific computing result or to perform a specific task. Programming involves tasks such as: analysis, gene ...
i.e., interpreter), or it may be further compiled into
machine code In computer programming Computer programming is the process of designing and building an executable computer program to accomplish a specific computing result or to perform a particular task. Programming involves tasks such as analysis, ge ...
for better performance. Since bytecode instructions are processed by software, they may be arbitrarily complex, but are nonetheless often akin to traditional hardware instructions: virtual
stack machine In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of Algori ...
s are the most common, but virtual
register machine In mathematical logic Mathematical logic, also called formal logic, is a subfield of mathematics Mathematics (from Ancient Greek, Greek: ) includes the study of such topics as quantity (number theory), mathematical structure, structure (alg ...
s have been built also. Different parts may often be stored in separate files, similar to object modules, but dynamically loaded during execution.


Execution

A bytecode program may be executed by parsing and ''directly'' executing the instructions, one at a time. This kind of ''bytecode interpreter'' is very portable. Some systems, called dynamic translators, or ''
just-in-time#REDIRECT Just in Time {{Redirect category shell, 1= {{R from other capitalisation {{R from ambiguous page ...
'' (JIT) compilers, translate bytecode into
machine code In computer programming Computer programming is the process of designing and building an executable computer program to accomplish a specific computing result or to perform a particular task. Programming involves tasks such as analysis, ge ...
as necessary at runtime. This makes the virtual machine hardware-specific but does not lose the portability of the bytecode. For example,
Java Java ( id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands The Greater Sunda Islands are four tropical islands situated within Southeast Asia, in the Pacific Ocean. The islands, Borneo, Java, Sulawesi and Sumatra, are internat ...
and
Smalltalk Smalltalk is an , . Smalltalk was created as the language underpinning the "new world" of computing exemplified by "human–computer symbiosis". It was designed and created in part for al use, specifically for , at the Learning Research Group ...

Smalltalk
code is typically stored in bytecode format, which is typically then JIT compiled to translate the bytecode to machine code before execution. This introduces a delay before a program is run, when the bytecode is compiled to native machine code, but improves execution speed considerably compared to interpreting source code directly, normally by around an order of magnitude (10x). Because of its performance advantage, today many language implementations execute a program in two phases, first compiling the source code into bytecode, and then passing the bytecode to the virtual machine. There are bytecode based virtual machines of this sort for
Java Java ( id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands The Greater Sunda Islands are four tropical islands situated within Southeast Asia, in the Pacific Ocean. The islands, Borneo, Java, Sulawesi and Sumatra, are internat ...
, Raku,
Python PYTHON was a Cold War contingency plan of the Government of the United Kingdom, British Government for the continuity of government in the event of Nuclear warfare, nuclear war. Background Following the report of the Strath Committee in 1955, the ...
,
PHP PHP is a general-purpose scripting language geared towards web development Web development is the work involved in developing a Web site, website for the Internet (World Wide Web) or an intranet (a private network). Web development can range ...

PHP
,
Tcl Tcl (pronounced "tickle" or as an initialism An acronym is a word In linguistics, a word of a spoken language can be defined as the smallest sequence of phonemes that can be uttered in isolation with semantic, objective or pragmatics, prac ...

Tcl
, mawk and
Forth Forth or FORTH may refer to: Media * ''forth'' magazine, an English-language Irish Internet magazine * ''Forth'' (album), by the English alternative rock band The Verve * ''Forth'' (album), by the American progressive rock band Proto-Kaw * Rad ...
(however, Forth is seldom compiled via bytecodes in this way, and its virtual machine is more generic instead). The implementation of
Perl Perl is a family of two high-level High-level and low-level, as technical terms, are used to classify, describe and point to specific Objective (goal), goals of a systematic operation; and are applied in a wide range of contexts, such as, for ...
and
Ruby A ruby is a pink to blood-red coloured gemstone A gemstone (also called a gem, fine gem, jewel, precious stone, or semi-precious stone) is a piece of mineral crystal which, in cut and polished form, is used to make jewellery, jewelry or othe ...
1.8 instead work by walking an
abstract syntax tree In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of Algor ...
representation derived from the source code. More recently, the authors of V8 and Dart have challenged the notion that intermediate bytecode is needed for fast and efficient VM implementation. Both of these language implementations currently do direct JIT compiling from source code to machine code with no bytecode intermediary.


Examples

>>> 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 *
ActionScript ActionScript was an object-oriented programming language originally developed by Macromedia, Macromedia Inc. (later acquired by Adobe Systems). It is influenced by HyperTalk, the scripting language for HyperCard. It is now an implementation of EC ...
executes in the ActionScript Virtual Machine (AVM), which is part of Flash Player and AIR. ActionScript code is typically transformed into bytecode format by a
compiler In computing Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes and development of both computer hardware , hardware and soft ...

compiler
. Examples of compilers include one built into Adobe Flash Professional and one built into Adobe Flash Builder and available in the Adobe Flex SDK. *
Adobe Flash Adobe Flash is a multimedia software platform A computing platform or digital platform is the environment in which a piece of software Software is a collection of Instruction (computer science), instructions and data (computing), data that ...
objects * BANCStar, originally bytecode for an interface-building tool but used also as a language * Berkeley Packet Filter *
Byte Code Engineering Library The Byte Code Engineering Library (BCEL) is a project sponsored by the Apache Foundation previously under their Jakarta Project, Jakarta charter to provide a simple API for decomposing, modifying, and recomposing binary Java (programming language), ...
* C to Java virtual machine compilers *
CLISP In computing Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithm of an algorithm (Euclid's algorithm) for calculating the greatest common ...
implementation of
Common Lisp Common Lisp (CL) is a dialect of the Lisp programming language Lisp (historically LISP) is a family of programming language A programming language is a formal language In mathematics Mathematics (from Ancient Greek, Greek: ) incl ...
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 CMUCL is a free Free may refer to: Concept * Freedom, having the ability to act or change without constraint * Emancipate, to procure political rights, as for a disenfranchised group * Free will, control exercised by rational agents over their ...
and Scieneer Common Lisp implementations of
Common Lisp Common Lisp (CL) is a dialect of the Lisp programming language Lisp (historically LISP) is a family of programming language A programming language is a formal language In mathematics Mathematics (from Ancient Greek, Greek: ) incl ...
can compile either to native code or to bytecode, which is far more compact *
Common Intermediate Language Common Intermediate Language (CIL), formerly called Microsoft Intermediate Language (MSIL) or Intermediate Language (IL), is the intermediate language binary instruction set defined within the Common Language Infrastructure The Common Languag ...
executed by
Common Language Runtime The Common Language Runtime (CLR), the virtual machine In computing, a virtual machine (VM) is the virtualization In computing, virtualization or virtualisation (sometimes abbreviated v12n, a numeronym) is the act of creating a virtual (rath ...

Common Language Runtime
, used by
.NET Framework The .NET Framework (pronounced as "''dot net"'') is a software framework In computer programming Computer programming is the process of designing and building an executable computer program to accomplish a specific computing result or t ...
languages such as C# * Dalvik bytecode, designed for the
Android Android may refer to: Science and technology * Android (robot), a humanoid robot or synthetic organism designed to imitate a human * Android (operating system), Google's mobile operating system ** Android (operating system)#Mascot, Unnamed Androi ...

Android
platform, is executed by the
Dalvik virtual machine Dalvik is a discontinued process virtual machine In computing, a virtual machine (VM) is the virtualization/emulator, emulation of a computer system. Virtual machines are based on computer architectures and provide functionality of a physical c ...
* Dis bytecode, designed for the
Inferno (operating system) Inferno is a distributed operating system started at Bell Labs and now developed and maintained by Vita Nuova Holdings as free software under the MIT License, MIT license. Inferno was based on the experience gained with Plan 9 from Bell Labs, and ...
, is executed by the
Dis virtual machine Limbo is a programming language A programming language is a formal language comprising a Instruction set architecture, set of instructions that produce various kinds of Input/output, output. Programming languages are used in computer programm ...
*
EiffelStudio EiffelStudio is a development environment for the Eiffel programming language developed and distributed by Eiffel Software. EiffelStudio includes a combination of tools integrated under a single user interface: compiler, interpreter, debugger, br ...
for the Eiffel programming language * EM, the
Amsterdam Compiler Kit The Amsterdam Compiler Kit (ACK) is a retargetable compiler suite and toolchain In software Software is a collection of Instruction (computer science), instructions and data (computing), data that tell a computer how to work. This is in contr ...
virtual machine used as an intermediate compiling language and as a modern bytecode language *
Emacs Emacs or EMACS (Editor MACroS) is a family of text editor A text editor is a type of computer program that edits plain text. Such programs are sometimes known as "notepad" software, following the naming of Microsoft Notepad. Text editors a ...

Emacs
is a text editor with most of its functions implemented by
Emacs Lisp #REDIRECT Emacs Lisp Emacs Lisp is a Dialect (computing), dialect of the Lisp programming language used as a scripting language by Emacs (a text editor family most commonly associated with GNU Emacs and XEmacs). It is used for implementing most of ...
, its built-in dialect of
Lisp Lisp (historically LISP) is a family of programming language A programming language is a formal language In logic, mathematics, computer science, and linguistics, a formal language consists of string (computer science), words whose symbo ...
. 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 Embeddable Common Lisp (ECL) is a small implementation of the ANSI Common Lisp programming language that can be used stand-alone or embedded in extant applications written in C (programming language), C. It creates OS-native executables and librari ...
implementation of
Common Lisp Common Lisp (CL) is a dialect of the Lisp programming language Lisp (historically LISP) is a family of programming language A programming language is a formal language In mathematics Mathematics (from Ancient Greek, Greek: ) incl ...
can compile to bytecode or C code * Ericsson implementation of Erlang uses BEAM bytecodes *
Icon An icon (from the Greek#REDIRECT Greek Greek may refer to: Greece Anything of, from, or related to Greece Greece ( el, Ελλάδα, , ), officially the Hellenic Republic, is a country located in Southeast Europe. Its population is appr ...
and
Unicon Unicon, previously known as UNICON, is the World Unicycling Convention and Championships sanctioned by the International Unicycling Federation (IUF). The IUF sanctions a biennial world unicycling convention and competition, the major event on t ...
programming languages *
Infocom Infocom was an American software company A software company is a company whose primary products are various forms of software, software technology, distribution, and software product development. They make up the software industry. Types ...
used the
Z-machine The Z-machine is a virtual machine that was developed by Joel Berez and Marc Blank in 1979 and used by Infocom for its interactive fiction, text adventure games. Infocom compiled game code to files containing Z-machine instructions (called stor ...
to make its software applications more portable *
Java bytecode Java bytecode is the bytecode Bytecode, also termed portable code or p-code, is a form of instruction set In computer science, an instruction set architecture (ISA), also called computer architecture, is an abstract model of a computer. A dev ...

Java bytecode
, which is executed by the Java virtual machine ** ASM **
BCEL The Byte Code Engineering Library (BCEL) is a project sponsored by the Apache Foundation previously under their Jakarta Project, Jakarta charter to provide a simple API for decomposing, modifying, and recomposing binary Java (programming language), ...
** Javassist ** JMangler *
KEYB KEYB (107.9 FM, "108 Key FM") is a radio station Radio broadcasting is transmission of audio signal, audio (sound), sometimes with related metadata, by radio waves intended to reach a wide audience. In terrestrial radio broadcasting the ...
, the
MS-DOS MS-DOS ( ; acronym for Microsoft Disk Operating System, also known as Microsoft DOS) is an operating system An operating system (OS) is system software System software is software designed to provide a platform for other software. Example ...
/ PC DOS keyboard driver with its resource file KEYBOARD.SYS containing layout information and short
p-code Bytecode, also termed portable code or p-code, is a form of instruction set In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practi ...
sequences executed by an interpreter inside the resident driver. * LSL, a scripting language used in virtual worlds compiles in bytecode running on a virtual machine. Second Life has the original Mono version, Inworldz developed the Phlox version. * Lua language uses a register-based bytecode virtual machine * m-code of the
MATLAB MATLAB (an abbreviation of "MATrix LABoratory") is a and environment developed by . MATLAB allows manipulations, plotting of and data, implementation of s, creation of s, and interfacing with programs written in other languages. Althoug ...
language *
Multiplan Multiplan was an early spreadsheet A spreadsheet is a computer application for organization, analysis, and storage of data in tabular form. Spreadsheets were developed as computerized analogs of paper accounting worksheets. The program operate ...

Multiplan
*
O-code BCPL ("Basic Combined Programming Language") is a procedural, imperative Imperative may refer to: *Imperative mood, a grammatical mood (or mode) expressing commands, direct requests, and prohibitions *Imperative programming, a programming pa ...
of the
BCPL BCPL ("Basic Combined Programming Language") is a procedural, imperative Imperative may refer to: *Imperative mood, a grammatical mood (or mode) expressing commands, direct requests, and prohibitions *Imperative programming, a programming pa ...
programming language *
OCaml OCaml ( , formerly Objective Caml) is a general-purpose, multi-paradigm programming language Programming paradigms are a way to classify programming languages based on their features. Languages can be classified into multiple paradigms. S ...
language optionally compiles to a compact bytecode form *
p-code Bytecode, also termed portable code or p-code, is a form of instruction set In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practi ...
of
UCSD Pascal UCSD Pascal is a Pascal programming language Pascal is an Imperative programming, imperative and Procedural programming, procedural programming language, designed by Niklaus Wirth as a small, efficient language intended to encourage good progr ...
implementation of the
Pascal Pascal, Pascal's or PASCAL may refer to: People and fictional characters * Pascal (given name), including a list of people with the name * Pascal (surname), including a list of people and fictional characters with the name ** Blaise Pascal, French ...
language *
Parrot virtual machine Parrot is discontinued software that implements a register-based process virtual machine designed to run dynamic languages efficiently. It is possible to compile Parrot assembly language and Parrot intermediate representation (PIR, an intermedia ...
* Pick BASIC also referred to as Data BASIC or MultiValue BASIC * The 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. * Pyramid 2000 adventure game *
Scheme 48 Scheme 48 is a programming language A programming language is a formal language In logic, mathematics, computer science, and linguistics, a formal language consists of string (computer science), words whose symbol (formal), letters are ta ...
implementation of Scheme using bytecode interpreter * Bytecodes of many implementations of the
Smalltalk Smalltalk is an , . Smalltalk was created as the language underpinning the "new world" of computing exemplified by "human–computer symbiosis". It was designed and created in part for al use, specifically for , at the Learning Research Group ...

Smalltalk
language * The Spin interpreter built into the
Parallax Parallax is a displacement or difference in the apparent positionThe apparent place of an object Object may refer to: General meanings * Object (philosophy), a thing, being, or concept ** Entity, something that is tangible and within the ...
Propeller
microcontroller A microcontroller (MCU for ''microcontroller unit'') is a small computer A computer is a machine that can be programmed to carry out sequences of arithmetic or logical operations automatically. Modern computers can perform generic sets o ...

microcontroller
* The
SQLite SQLite (, ) is a relational database management system A relational database is a digital database based on the relational model of data, as proposed by E. F. Codd in 1970. A system used to maintain relational databases is a relational datab ...
database engine translates SQL statements into a bespoke byte-code format. * SWEET16 *
Tcl Tcl (pronounced "tickle" or as an initialism An acronym is a word In linguistics, a word of a spoken language can be defined as the smallest sequence of phonemes that can be uttered in isolation with semantic, objective or pragmatics, prac ...

Tcl
*
Tiny BASIC Tiny BASIC is a family of dialects The term dialect (from Latin Latin (, or , ) is a classical language belonging to the Italic languages, Italic branch of the Indo-European languages. Latin was originally spoken in the area around Rome, kn ...
*
Visual FoxPro Visual FoxPro was a Microsoft Microsoft Corporation is an American multinational Multinational may refer to: * Multinational corporation, a corporate organization operating in multiple countries * Multinational force, a military body from ...
compiles to bytecode *
WebAssembly WebAssembly (sometimes abbreviated Wasm) defines a portable Portable may refer to: General * Portable building, a manufactured structure that is built off site and moved in upon completion of site and utility work * Portable classroom, a tempor ...
*
YARV YARV (Yet another Among programmers, yet another (often abbreviated ya, Ya, or YA in the initial part of an acronym An acronym is a word or name formed from the initial components of a longer name or phrase, usually using individual initial ...
and
Rubinius Rubinius is an alternative Ruby A ruby is a pink to blood-red coloured gemstone A gemstone (also called a gem, fine gem, jewel, precious stone, or semi-precious stone) is a piece of mineral crystal which, in cut and polished form, is used t ...
for
Ruby A ruby is a pink to blood-red coloured gemstone A gemstone (also called a gem, fine gem, jewel, precious stone, or semi-precious stone) is a piece of mineral crystal which, in cut and polished form, is used to make jewellery, jewelry or othe ...


See also

*
Runtime system In computer programming Computer programming is the process of designing and building an executable computer program to accomplish a specific computing result or to perform a particular task. Programming involves tasks such as analysis, gen ...
* ZCODE


Notes


References

{{reflist, refs= {{cite web , url=http://www.jucs.org/jucs_11_7/the_implementation_of_lua/jucs_11_7_1159_1176_defigueiredo.html , title=The Implementation of Lua 5.0 (NB. This involves a register-based virtual machine.) {{Cite web , url=http://source.android.com/tech/dalvik/dalvik-bytecode.html , title=Dalvik VM , url-status=dead , archive-url=https://web.archive.org/web/20130518021154/http://source.android.com/tech/dalvik/dalvik-bytecode.html , archive-date=2013-05-18 , access-date=2012-10-29 (NB. This VM is register based.) {{cite web , title=Byte Code Vs Machine Code , website=www.allaboutcomputing.net , url=http://www.allaboutcomputing.net/2014/07/byte-code-vs-machine-code.html , access-date=2017-10-23 {{cite web , title=Dynamic Machine Code Generation , publisher=
Google Google LLC is an American multinational Multinational may refer to: * Multinational corporation, a corporate organization operating in multiple countries * Multinational force, a military body from multiple countries * Multinational stat ...

Google
, url=https://developers.google.com/v8/design#mach_code
{{Cite web , url=http://www.dartlang.org/articles/why-not-bytecode/ , title=Why Not a Bytecode VM? , last=Loitsch , first=Florian , publisher=
Google Google LLC is an American multinational Multinational may refer to: * Multinational corporation, a corporate organization operating in multiple countries * Multinational force, a military body from multiple countries * Multinational stat ...

Google
, url-status=dead , archive-url=https://web.archive.org/web/20130512215811/http://www.dartlang.org/articles/why-not-bytecode/ , archive-date=2013-05-12
{{Cite web, url=https://2ality.com/2012/01/bytecode-myth.html, title=JavaScript myth: JavaScript needs a standard bytecode, website=2ality.com {{Cite web , url=http://www.cs.arizona.edu/icon/ftp/doc/ib1up.pdf , title=The Implementation of the Icon Programming Language , url-status=dead , archive-url=https://web.archive.org/web/20160305123148/http://www.cs.arizona.edu/icon/ftp/doc/ib1up.pdf , archive-date=5 March 2016 , access-date=9 September 2011 {{Cite web, url=http://unicon.sourceforge.net/book/ib.pdf, title=The Implementation of Icon and Unicon a Compendium {{cite newsgroup , title=KEYBOARD.SYS internal structure , newsgroup=comp.os.msdos.programmer , author-first=Matthias R. , author-last=Paul , date=2001-12-30 , url=https://groups.google.com/d/msg/comp.os.msdos.programmer/l_IuSHsBDWQ/887rJF9IYmMJ , access-date=2016-09-17 , url-status=live , archive-url=https://archive.today/20170909082257/https://groups.google.com/forum/%23!msg/comp.os.msdos.programmer/l_IuSHsBDWQ/887rJF9IYmMJ , archive-date=2017-09-09 , quote= In fact, the format is basically the same in
MS-DOS MS-DOS ( ; acronym for Microsoft Disk Operating System, also known as Microsoft DOS) is an operating system An operating system (OS) is system software System software is software designed to provide a platform for other software. Example ...
3.3 - 8.0, PC DOS 3.3 - 2000, including Russian, Lithuanian, Chinese and Japanese issues, as well as in Windows NT, 2000, and XP There are minor differences and incompatibilities, but the general format has not changed over the years. Some of the data entries contain normal tables However, most entries contain ''executable code'' interpreted by some kind of p-code interpreter at * runtime*, including conditional branches and the like. This is why the
KEYB KEYB (107.9 FM, "108 Key FM") is a radio station Radio broadcasting is transmission of audio signal, audio (sound), sometimes with related metadata, by radio waves intended to reach a wide audience. In terrestrial radio broadcasting the ...
driver has such a huge memory footprint compared to table-driven keyboard drivers which can be done in 3 - 4 Kb getting the same level of function except for the interpreter. }
{{Cite web , url=http://www.columbia.edu/~em36/wpdos/eurodos.html , title=How to Display the Euro in MS-DOS and Windows DOS , last=Mendelson , first=Edward , author-link=Edward Mendelson , date=2001-07-20 , at=Display the euro symbol in full-screen MS-DOS (including Windows 95 or Windows 98 full-screen DOS) , url-status=live , archive-url=https://web.archive.org/web/20160917201248/http://www.columbia.edu/~em36/wpdos/eurodos.html , archive-date=2016-09-17 , access-date=2016-09-17 , quote= Matthias .Paul warns that the
IBM PC DOS IBM PC DOS, an acronym An acronym is a word In linguistics Linguistics is the scientific study of language A language is a structured system of communication used by humans, including speech (spoken language), gestu ...
version of the keyboard driver uses some internal procedures that are not recognized by the
Microsoft Microsoft Corporation is an American multinational corporation, multinational technology company, technology corporation which produces Software, computer software, consumer electronics, personal computers, and related services. Its best-know ...

Microsoft
driver, so, if possible, you should use the
IBM International Business Machines Corporation (IBM) is an American multinational technology company headquartered in Armonk, New York, with operations in over 170 countries. The company began in 1911, founded in Endicott, New York, as the C ...

IBM
versions of both KEYB.COM and KEYBOARD.SYS instead of mixing Microsoft and IBM versions } (NB. What is meant by "procedures" here are some additional bytecodes in the IBM KEYBOARD.SYS file not supported by the Microsoft version of the KEYB driver.)
{{cite web , title=United States Patent 6,973,644 , url=http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d=PALL&p=1&u=%2Fnetahtml%2FPTO%2Fsrchnum.htm&r=1&f=G&l=50&s1=6973644.PN.&OS=PN/6973644&RS=PN/6973644 {{Cite web, url=https://cran.r-project.org/doc/manuals/R-admin.html#Byte_002dcompiler, title=R Installation and Administration, website=cran.r-project.org {{cite web , title=The SQLite Bytecode Engine , url=https://www.sqlite.org/opcode.html , access-date=29 August 2016 , archive-url=https://web.archive.org/web/20170414044139/http://sqlite.org/opcode.html , archive-date=14 April 2017 , url-status=dead {{cite book , title=Microsoft C Pcode Specifications , page=13 , quote=
Multiplan Multiplan was an early spreadsheet A spreadsheet is a computer application for organization, analysis, and storage of data in tabular form. Spreadsheets were developed as computerized analogs of paper accounting worksheets. The program operate ...

Multiplan
wasn't compiled to
machine code In computer programming Computer programming is the process of designing and building an executable computer program to accomplish a specific computing result or to perform a particular task. Programming involves tasks such as analysis, ge ...
, but to a kind of byte-code which was run by an interpreter, in order to make Multiplan portable across the widely varying hardware of the time. This byte-code distinguished between the machine-specific floating point format to calculate on, and an external (standard) format, which was
binary coded decimal In computing and electronics, electronic systems, binary-coded decimal (BCD) is a class of Binary numeral system, binary encodings of decimal numbers where each numerical digit, digit is represented by a fixed number of bits, usually four or ei ...
(BCD). The PACK and UNPACK instructions converted between the two.
Virtualization software