欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

facebook hiphop php vm 兑现概述

程序员文章站 2024-02-12 15:25:10
...
facebook hiphop php vm 实现概述
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 还不支持什么我现在还不知道,建议你去他们的官网去看看,应该会有介绍吧!
facebook hiphop php vm 兑现概述

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频


    网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论
  • facebook hiphop php vm 兑现概述
  • 专题推荐

    作者信息
    facebook hiphop php vm 兑现概述

    认证0级讲师

    推荐视频教程
  • facebook hiphop php vm 兑现概述javascript初级视频教程
  • facebook hiphop php vm 兑现概述jquery 基础视频教程
  • 视频教程分类