P-code机
维基百科,自由的 encyclopedia
在计算机科学中,P-code机(英语:P-code machine)是一种被设计来执行P-code的虚拟机。P-code是一种被设计来运行在虚拟CPU上的汇编语言,即是我们现代所称Bytecode的前身。P-code机这个词可用于形容所有这类机器(例如Java虚拟机和MATLAB预编译的代码),或者特指最有名的P-code机,来自于Pascal语言,特别是UCSD Pascal实现。
虽然这个概念在1966左右年就已首次实现(于BCPL的O-code与Euler语言的P - a code),[1]但P-code这个词直到70年代初才首次出现。 1973年Nori, Ammann, Jensen, Hageli和Jacobi编写的Pascal-P编译器[2] 和1975年尼克劳斯·维尔特写的Pascal-S编译器是早期的两个生成P-code的编译器。
P-code可以是一种与特定硬件平台无关的中间码,一种虚拟机器代码。程序源代码会先被转换成P-code;转换成P-code的程序,之后会由一个软件来进行直译。这个软件可以模拟出一个假想的CPU来读取p-code,之后将p-code转换成实体机器代码来执行。但如果有足够的商业利益,可能可以实现做出该规格CPU的硬件实现(例如Pascal MicroEngine和Java处理器)。