====== [hemmerling] Virtual Machines, P-Code & Byte-Code Interpreters ====== Related pages: *[[dotnet.html|Microsoft .NET Framework 1/3]] => Common Language Runtime ( CLR ). *[[forth.html|Forth 1/7]]. *[[java.html|Java & Java Platform Languages 1/5]]. *[[lua.html|Lua & eLua 1/3]]. *[[mobilepc.html|Mobile computers, handhelds, organizers, programmable calculators]] => BASIC. *[[pascal.html|Pascal, Delphi]] => UCSD Pascal. *[[prglang.html|Programming Languages, Platforms and Runtimes]] => BASIC. *[[ti68k.html|Texas Instruments' 68K powered Calculators "TI-89 Titanium", "TI Voyage 200"]] => BASIC. *[[tickle.html|Tcl / Tk ( tickle ) 1/2]]. *[[virtualization.html|Virtual PCs, Virtual Servers, Virtualization, Virtual Computers, Computer Hardware Simulation]]. *[[wasm.html|WebAssembly ( WASM )]]. *[[webtech05.html|Web Technologies ( HTML5, HTML, XML & Javascript ) 5/5 - Javascript Frameworks]] => Node.JS, V8. ===== Programming Languages & Platforms with P-Code & Byte-Code Interpreters ====== ==== .NET ==== *[[dotnet.html|Microsoft .NET Framework 1/3]] => Common Language Runtime ( CLR ). ==== FORTH ==== *[[forth.html|Forth 1/7]]. ==== Java ==== *[[java.html|Java & Java Platform Languages 1/5]] => Java VM. *[[java04.html|Java & Java Platform Languages 4/5 - Java on Embedded Systems & Machine-Specific APIs]] => "Java CPUs". ==== Lua ==== *[[lua.html|Lua & eLua 1/3]]. ==== BASIC ==== === General BASIC === *[[mobilepc.html|Mobile computers, handhelds, organizers, programmable calculators]] => BASIC. *[[prglang.html|Programming Languages, Platforms and Runtimes]] => BASIC. *[[ti68k.html|Texas Instruments' 68K powered Calculators "TI-89 Titanium", "TI Voyage 200"]] => BASIC. === Special BASICs with Threaded Code === *[[http://en.wikipedia.org/wiki/ABC_80|EN.Wikipedia "ABC 80"]], [[http://de.wikipedia.org/wiki/ABC_80|DE.Wikipedia "ABC 80"]]. *[[http://en.wikipedia.org/wiki/DAI_Personal_Computer|EN.Wikipedia "DAI Personal Computer"]], [[http://de.wikipedia.org/wiki/DAI_(Computer)|DE.Wikipedia "DAI (Computer)"]] - "The BASIC interpreter was remarkably fast for the time because it pre-compiled to an internal byte-code, unlike the Microsoft BASIC interpreter which most other systems of the time used. DAI variables could be up to 14 characters long. The internal byte code used pointers to a variable look up table at the bottom of the code, which made the code extremely compact, despite long variable names. This technique was rare (only other known examples are the ABC 80 and BK-0010), and is remarkably similar to that now used for Java". *[[http://en.wikipedia.org/wiki/Electronika_BK|EN.Wikipedia "Electronika BK"]], [[http://de.wikipedia.org/wiki/Elektronika_BK-0010|DE.Wikipedia "Elektronika BK-0010"]]. *"BK-0010.01 . The follow-up version, БК-0010.01 (sometimes referred to as -0010-01), is essentially the same machine, but with a conventional full-travel keyboard and a Vilnius BASIC p-code compiler in the ROM, correcting the weakest points of its predecessor. While the BASIC dialect used is quite powerful and well-optimized (it is actually a somewhat scaled-down clone of MSX BASIC)...". *[[http://en.wikipedia.org/wiki/Vilnius_BASIC|EN.Wikipedia "Vilnius BASIC"]] - "It was a quite advanced BASIC and, instead of being an interpreter like most systems of the day, featured a runtime threaded code compiler that compiled the program when one entered the RUN command. The dialect was very close to MSX BASIC". *[[http://en.wikipedia.org/wiki/Threaded_code|EN.Wikipedia "Threaded code"]]. ==== Pascal ==== *[[pascal.html|Pascal, Delphi]] => UCSD Pascal. ==== Tcl / Tk ==== *[[tickle.html|Tcl / Tk ( tickle ) 1/2]]. ==== Telescript ==== *General Magic's Telescript => See [[distributed.html|Distributed Computing & Parallel Computing]]. ==== V8 JavaScript engine ==== *[[webtech05.html|Web Technologies ( HTML5, HTML, XML & Javascript ) 5/5 - Javascript Frameworks]] => Node.JS, V8. ==== WebAssembly ( WASM ) ==== *[[wasm.html|WebAssembly ( WASM )]]. ==== Zork's Z-Machine ==== === The original Tool & Third-Party Interpreters === *[[http://en.wikipedia.org/wiki/Z-machine|EN.Wikipedia "Z-machine"]], [[http://de.wikipedia.org/wiki/Z-machine|DE.Wikipedia "Z-machine"]]. === Resources === *[[http://www.facebook.com/groups/int.fiction/|Facebook "Interactive Fiction"]] ===== Popular successfull OpCodes, P-Codes & Byte-Codes ====== ==== 8080 ==== *See [[embedded.html|Embedded Systems]] => "8080, 8085, Z80 Platform and Z8 Platform". ==== ARM ==== ==== Java Bytecode ==== *[[java04.html|Java & Java Platform Languages 4/5 - Java on Embedded Systems & Machine-Specific APIs]]. * => "Java OpCodes". * => "Java VM Bytecode => Forth VM Bytecode Mapping by Chen-hanson Ting". ==== Python Bytecode ==== *See [[python.html|Python 1/10]]. ==== RISC-V ==== *[[http://www.riscv.org/|RISC-V: The Free and Open RISC Instruction Set Architecture]]. *[[http://www.riscv.org/technical/specifications/|RISC-V "Specifications"]]. *The free online event [[http://events.linuxfoundation.org/riscv-summit/|Linux Foundation "RISC-V Summit"]], 2021-12-06 - 2021-12-08. *[[http://www.accelevents.com/e/risc-v-summit-2021|AccelEvents "RISC-V Summit 2021"]] - "Enter Event". *[[http://en.wikipedia.org/wiki/RISC-V|EN.Wikipedia "RISC-V"]], [[http://de.wikipedia.org/wiki/RISC-V|DE.Wikipedia "RISC-V"]]. ===== BASICODE - Concept für highly-portable Software Transfer ===== *[[http://en.wikipedia.org/wiki/BASICODE|EN.Wikipedia "BASICODE"]], [[http://de.wikipedia.org/wiki/BASICODE|DE.Wikipedia "BASICODE"]]. *"An application that was specific for each computer model, called Bascoder, managed the recall and storage of programs and data in this unified format from tape". *"In 1986, the new BASICODE 3 standard was developed. The most important additions were routines for simple monochrome graphics, reading and writing data from within programs and sound output... The last revision of BASICODE, which featured color graphics, was released as BASICODE 3C in 1991". *"So, when recording programs, the commands are not read and written in the form of single byte units (tokens), but character by character". *Video [[http://www.youtube.com/watch?v=xZWifQbB3HM|YouTube "EN The world without Internet - Software broadcast on radio"]]. {{tag>"virtual machine" virtual machine "p-code interpeter" p-code "byte code interpeter" byte code interpeter virtualization}}