ホームページ > バックエンド開発 > PHPチュートリアル > Facebook ヒップホップ php vm キャッシュアウトの概要

Facebook ヒップホップ php vm キャッシュアウトの概要

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-13 13:23:10
オリジナル
1091 人が閲覧しました

Facebook hiphop php vm 実装の概要
facebook hiphop php vm 実装概要
1. src ディレクトリの概要:
compiler: コンパイラ
式: php の式に対応する ast ノードが使用するデータ構造
ステートメント: php パーサー: ast の生成
分析: 静的意味分析 (変数の型、スコープ、定数テーブル、変数テーブル、関数テーブル...)
ffi: 多言語対話層 (おそらくグルーを実装するインターフェイス)
hphp: 入口
idl: インターフェース定義
system: PHP レベルのシステム環境
third_party: 借用したサードパーティのパッケージ
util: ツールクラス
runtime: コンバーター全体 ランタイムsystem
tmp: 生成されたファイル
ext: php で使用するためにパッケージ化された外部関数。つまり、php で使用される一部の基本関数には、対応する C++ 実装が必要です (このランタイムは C++ で実装されているため、これらの関数はC++)、もちろん、実装中にサードパーティのパッケージを使用できます。
Base: ランタイムで使用される基本的なデータ構造と関数 (ext の外部関数の関数はここでのサポートが必要です)
eval: コア ランタイム環境

これらのコードで誰もが最も懸念しているのはコンパイラとランタイム モジュールであることがわかります。
2. 入り口
hphp/main.cpp
3. コンパイラの概要
1. 大規模なものから小規模な分析までの階層関係は、パッケージ---クラス---関数---です。変数 -- 定数。
2. スキャナーとパーサーの実装は一般的なコンパイラーと同じです。スキャナーのエクスポートは int getNextToken(ScannerToken &t, Location &l);、パーサーのエクスポートは Parser::ParseString()
3. 静的分析; トラバーサー モードを使用すると、分析結果は anusis_result データ構造にカプセル化されます。つまり、このデータ構造にはこのステージの結果が保存されます。特定のコードは主に、クラス内の関数、関数内の式、制御フロー グラフ (ControlFlowGraph)、式辞書、データ フロー (代入文の左辺値が正当かどうかのチェックなど)、シンボル テーブルを分析します。 , など
4. ランタイムの概要
1. eval.cpp のエントリ
2. RequestEvalState 管理シンボルテーブル情報

今日はこれらを先に書きますので、興味のある方は書きます。それを詳しく!

1階 lj3362569 2011-12-19

もっと具体的に教えてもらえますか?既存のヒップホップがサポートしていない機能は何ですか?

2階 エリック・ウェイトム 2011-12-21

lj3362569 が
と書きました。もっと具体的に教えていただけますか?既存のヒップホップがサポートしていない機能は何ですか?
ブログは単なる趣味です。時間が限られているため、最小限の言葉で最大限の情報を表現するよう努めています。仮想マシンの実装に興味がある人がいるかどうかはわかりませんが、引き続き書きます。ヒップホップがまだサポートしていないものはわかりません。公式 Web サイトにアクセスして、紹介があるはずです。
関連ラベル:
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート