May
18
HipHop本身并不是一个编辑器,更确切的说,它是一个源代码转换器。将PHP代码转换为高度优化的C++代码,然后再使用g++编译器编译。它可以保持语义等效地执行源代码,但牺牲了一些很少会使用到的功能,比如eval()。为了进一步的提升性能,HipHop包含一个code transformer,一个重新实现的PHP runtime系统,并利用这些性能的优化的优势,对许多共同的PHP扩展进行了重写。
转换中的主要步骤:
1. 静态分析:收集声明和依赖的相关信息
2. 类型推断(Type inference):选出最合适的类型,是C++ scalar,String, Array, classes, Object还是Variant等…
3. 代码生成。大部分是直接将PHP的语句和表达式对应为 C++的语句和表达式。
与此同时,开发者还提供了—HPHPi,一个实验性的解释器。使用HPHPi,在运行之前也不必编译PHP源代码。
HipHop在保持了PHP优点的同时,也兼得了C++的性能优势。项目总共有30万行代码,5000多个单元测试。所有这些都将以PHP开源许可证形式发布到GitHub。
点击访问HipHop wiki:http://github.com/facebook/hiphop-php/wikis
转换中的主要步骤:
1. 静态分析:收集声明和依赖的相关信息
2. 类型推断(Type inference):选出最合适的类型,是C++ scalar,String, Array, classes, Object还是Variant等…
3. 代码生成。大部分是直接将PHP的语句和表达式对应为 C++的语句和表达式。
与此同时,开发者还提供了—HPHPi,一个实验性的解释器。使用HPHPi,在运行之前也不必编译PHP源代码。
HipHop在保持了PHP优点的同时,也兼得了C++的性能优势。项目总共有30万行代码,5000多个单元测试。所有这些都将以PHP开源许可证形式发布到GitHub。
点击访问HipHop wiki:http://github.com/facebook/hiphop-php/wikis