(en.wikipedia.org) P-code machine - Wikipedia

ROAM_REFS: https://en.wikipedia.org/wiki/P-code_machine

In computer programming, a P-code machine (portable code machine) is a virtual machine designed to execute P-code, the assembly language or machine code of a hypothetical central processing unit (CPU). The term P-code machine is applied generically to all such machines (such as the Java virtual machine (JVM) and MATLAB pre-compiled code), as well as specific implementations using those machines. One of the most notable uses of P-Code machines is the P-Machine of the Pascal-P system. The developers of the UCSD Pascal implementation within this system construed the P in P-code to mean pseudo more often than portable; they adopted a unique label for pseudo-code meaning instructions for a pseudo-machine.

Although the concept was first implemented circa 1966 as O-code for the Basic Combined Programming Language (BCPL) and P code for the language Euler, the term P-code first appeared in the early 1970s. Two early compilers generating P-code were the Pascal-P compiler in 1973, by Kesav V. Nori, Urs Ammann, Kathleen Jensen, Hans-Heinrich Nägeli, and Christian Jacobi, and the Pascal-S compiler in 1975, by Niklaus Wirth.

Programs that have been translated to P-code can either be interpreted by a software program that emulates the behaviour of the hypothetical CPU, or translated into the machine code of the CPU on which the program is to run and then executed. If there is sufficient commercial interest, a hardware implementation of the CPU specification may be built (e.g., the Pascal MicroEngine or a version of a Java processor).

Local Graph

org-roam 629f95d7-1153-4ef8-8154-04d5347c9d9d (en.wikipedia.org) P-code machine - W... //en.wikipedia.org/wiki/Computer_programming https://en.wikipedia.org/wiki/Computer_programming 629f95d7-1153-4ef8-8154-04d5347c9d9d->//en.wikipedia.org/wiki/Computer_programming //en.wikipedia.org/wiki/Virtual_machine https://en.wikipedia.org/wiki/Virtual_machine 629f95d7-1153-4ef8-8154-04d5347c9d9d->//en.wikipedia.org/wiki/Virtual_machine //en.wikipedia.org/wiki/Assembly_language https://en.wikipedia.org/wiki/Assembly_language 629f95d7-1153-4ef8-8154-04d5347c9d9d->//en.wikipedia.org/wiki/Assembly_language //en.wikipedia.org/wiki/Machine_code https://en.wikipedia.org/wiki/Machine_code 629f95d7-1153-4ef8-8154-04d5347c9d9d->//en.wikipedia.org/wiki/Machine_code //en.wikipedia.org/wiki/Central_processing_unit https://en.wikipedia.org/wiki/Central_processing_unit 629f95d7-1153-4ef8-8154-04d5347c9d9d->//en.wikipedia.org/wiki/Central_processing_unit //en.wikipedia.org/wiki/Java_virtual_machine https://en.wikipedia.org/wiki/Java_virtual_machine 629f95d7-1153-4ef8-8154-04d5347c9d9d->//en.wikipedia.org/wiki/Java_virtual_machine //en.wikipedia.org/wiki/MATLAB https://en.wikipedia.org/wiki/MATLAB 629f95d7-1153-4ef8-8154-04d5347c9d9d->//en.wikipedia.org/wiki/MATLAB //en.wikipedia.org/wiki/Bytecode https://en.wikipedia.org/wiki/Bytecode 629f95d7-1153-4ef8-8154-04d5347c9d9d->//en.wikipedia.org/wiki/Bytecode //en.wikipedia.org/wiki/Pascal-P https://en.wikipedia.org/wiki/Pascal-P 629f95d7-1153-4ef8-8154-04d5347c9d9d->//en.wikipedia.org/wiki/Pascal-P //en.wikipedia.org/wiki/UCSD_Pascal https://en.wikipedia.org/wiki/UCSD_Pascal 629f95d7-1153-4ef8-8154-04d5347c9d9d->//en.wikipedia.org/wiki/UCSD_Pascal //en.wikipedia.org/wiki/BCPL#Design https://en.wikipedia.org/wiki/BCPL#Design 629f95d7-1153-4ef8-8154-04d5347c9d9d->//en.wikipedia.org/wiki/BCPL#Design //en.wikipedia.org/wiki/BCPL https://en.wikipedia.org/wiki/BCPL 629f95d7-1153-4ef8-8154-04d5347c9d9d->//en.wikipedia.org/wiki/BCPL //en.wikipedia.org/wiki/Euler_(programming_language) https://en.wikipedia.org/wiki/Euler_(programming_language) 629f95d7-1153-4ef8-8154-04d5347c9d9d->//en.wikipedia.org/wiki/Euler_(programming_language) //en.wikipedia.org/wiki/Compiler https://en.wikipedia.org/wiki/Compiler 629f95d7-1153-4ef8-8154-04d5347c9d9d->//en.wikipedia.org/wiki/Compiler //en.wikipedia.org/wiki/Pascal-S https://en.wikipedia.org/wiki/Pascal-S 629f95d7-1153-4ef8-8154-04d5347c9d9d->//en.wikipedia.org/wiki/Pascal-S //en.wikipedia.org/wiki/Niklaus_Wirth https://en.wikipedia.org/wiki/Niklaus_Wirth 629f95d7-1153-4ef8-8154-04d5347c9d9d->//en.wikipedia.org/wiki/Niklaus_Wirth //en.wikipedia.org/wiki/Interpreter_(computing) https://en.wikipedia.org/wiki/Interpreter_(computing) 629f95d7-1153-4ef8-8154-04d5347c9d9d->//en.wikipedia.org/wiki/Interpreter_(computing) //en.wikipedia.org/wiki/Binary_translation https://en.wikipedia.org/wiki/Binary_translation 629f95d7-1153-4ef8-8154-04d5347c9d9d->//en.wikipedia.org/wiki/Binary_translation //en.wikipedia.org/wiki/Pascal_MicroEngine https://en.wikipedia.org/wiki/Pascal_MicroEngine 629f95d7-1153-4ef8-8154-04d5347c9d9d->//en.wikipedia.org/wiki/Pascal_MicroEngine //en.wikipedia.org/wiki/Java_processor https://en.wikipedia.org/wiki/Java_processor 629f95d7-1153-4ef8-8154-04d5347c9d9d->//en.wikipedia.org/wiki/Java_processor