收稿日期:2003 - 06 - 03 作者简介:朱 (1976 - ) ,男 ,江苏南京人 ,江苏广播电视大学现代教育技术中心助理工程师。 一种基于Java 技术的 PHP 编译器的设计与开发 朱 (江苏广播电视大学 ,江苏 南京 210036) 摘 要 :为提高 PHP 程序的运行效率、规模支持能力和跨平台性 ,可以设计一个基于 Java 技术的编译器 ,将 PHP 程序直接编译成Java 虚拟机的二进制字节代码。这个编译器采用经典的前端/ 后 端(fontend/ back2end)式结构 ,前端程序对源程序进行扫描、分析后生成抽象语法树 ,后端程序遍历 抽象语法树生成 Kawa IR 的表达式序列 ,并最终生成目标代码。 关键词 :Java ;PHP;编译器 中图分类号 : TP391. 2 文献标识码 :A 文章编号 :1008 - 4207(2003) 06 - 0028 - 03 PHP 是一种广泛使用的开放源码的 HTML 内嵌式脚本语言 ,它混合了 C、Perl 的语法 ,易于学习 ,是现在比较流行的服务器编程脚本语言。但是 ,PHP 本身存在的一些缺点 ,制约了 PHP 在更大范围内的应用。 首先 ,PHP 采用解释运行方式 ,同时在 HTTP 服务器上以进程方式被调用 ,所以 ,其运行效率较低 ;其次 ,PHP 缺乏规模支持、缺乏多层结构支持 ,这就使得它不适合运用在一些大型项目中 ,如电子商务的应用 ;最后 ,由于PHP的跨平台采用硬代码方式实现 ,所以 ,有一定的局限性。 要提高 PHP 脚本的运行效率、规模支持能力以及跨 平台性 ,我们可以引入Java 技术。 一、设计方案 我们常说的“Java 技术”一般包含两个不同的概念 , Java 语言本身和它的运行环境 ———Java 虚拟机(Java Vir2tual Machine) 。这里引入 Java 技术是指将 PHP 程序移植到Java 虚拟机上。现在 Java 技术的应用越来越广泛 ,尤其是在嵌入式系统中 ,如市场上已经出现了内嵌 Java 虚拟机的手机、PDA 等民用产品。如果将 PHP 移植到 Java 虚拟机上 ,那么 ,只要在 Java 虚拟机的机器上 ,就可以运 行 PHP 程序 ,这能极大地扩展 PHP 的应用范围。尽管Java 语言也是一种解释型程序 ,但 Java 虚拟机所解释运 行的是预编译过的二进制字节代码 ,其运行效益要高于普通的解释型程序 ,同时 ,在 HTTP 服务器上Java 程序是以线程方式被调用运行的 ,这样就可以解决 PHP 程序运行效率低的问题。最后 ,移植到Java 虚拟机之后 ,在 PHP 程序中就可以毫无障碍地调用大量的 Java 类库 ,与已有的Java 程序进行整合 ,甚至能成为 J2EE 平台的一部分 , 参与电子商务的平台构建。 一般来说 ,有三种方式可以将一种程序设计语言移植到Java 虚拟机上。 (1)用Java 专门为某程序设计语言写一个解释程序 (interpreter) 。因为解释程序可以对该语言独有的特性给予很好的支持 ,所以 ,这种方法方便、直接而且具备较好的针对性 ,同时 ,还可以让该语言充分利用 Java 虚拟机的垃圾收集机制和大量的 Java 类库。TCL 、ruby 和 Python 都采用这种方法进行移植。但是 ,由于这种方法是在Java 虚拟机上再构建一层解释程序 ,所以运行速度慢。 (2)将某语言编写的源程序直接翻译成 Java 源程序。这种方法的优点是可以解决
php是一种基于,一种基于Java技术的PHP编译器的设计与开发
最新推荐文章于 2024-01-22 16:07:07 发布