facebookhiphopphpvm兑现概述
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了facebookhiphopphpvm兑现概述,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1839字,纯文字阅读大概需要3分钟。
内容图文
![facebookhiphopphpvm兑现概述](/upload/InfoBanner/zyjiaocheng/215/25f5e51e2f084b5ba2efdfe6ea163bf2.jpg)
facebook hiphop php vm 实现概述
一、src目录概述:
compiler:编译器
expression:php的expression所对应的ast node使用的数据结构
statement:对应php的语句
parser:生成出来ast
analysis:静态语义分析(变量类型、作用域、常量表、变量表、函数表……)
ffi:多语言交互层(大概是实现胶水的接口)
hphp:入口
idl:接口定义
system:php这一层的系统环境
third_party:借用的第三方包
util:工具类
runtime:整个转换器的运行时系统
tmp:生成的文件
ext:包装给php使用的外部函数,即php中使用的一些基础功能需要有对应的c++实现(因为此runtime是用c++实 现 的,所以这些函数也只能用c++来写),当然在实现时可以使用第三方包
base:运行时中要使用的基础数据结构和功能(ext中的外部函数的功能需要此处的支持)
eval:核心的runtime环境
可以看出这些代码中大家最关心的应该是compiler和runtime模块。
二、入口
hphp/main.cpp
三、compiler概述
1、分析的层次关系从大到小是 package----class---funtion---variable---constant。
2、scanner和parser的实现和一般的编译器的实现是一样的,scanner的出口int getNextToken(ScannerToken &t, Location &l);,parser的出口Parser::ParseString()
3、静态分析;采用遍历者模式,分析结果封装在analusis_result这个数据结构中,即此数据结构存储此阶段的结果。具体的代码中主要分析了类中的函数情况、函数中表达式情况、控制流图(ControlFlowGraph)、表达式字典、数据流(如检查赋值语句的左值是否合法)、符号表等
四、runtime概述
1、入口 eval.cpp
2、RequestEvalState 管理符号表信息
今天就先写这些,如果有人感兴趣的话,我再往细里写吧!
1 楼 lj3362569 2011-12-19
可以再讲具体点么?还有现有的hiphop不支持哪些功能?2 楼 eric_weitm 2011-12-21
lj3362569 写道可以再讲具体点么?还有现有的hiphop不支持哪些功能?写博客只是业余爱好,因为时间有限,我是尽量用最少的字表达最多的信息。也不知道是否有人对虚拟机的实现感兴趣,如果有人看的话,我会继续写的。hiphop 还不支持什么我现在还不知道,建议你去他们的官网去看看,应该会有介绍吧!
内容总结
以上是互联网集市为您收集整理的facebookhiphopphpvm兑现概述全部内容,希望文章能够帮你解决facebookhiphopphpvm兑现概述所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。
来源:【匿名】