Microsoft Phoenixは、コンパイラの作成、コードの最適化、コード分析を行うためのMicrosoft Connectから入手できるSDKでした。Microsoftは2008年7月1日に過去形でこれを説明しました。[1]
元の説明
[これは] Microsoftの将来のコンパイラ技術のバックエンドとして使用される予定でした。[8]また、Phoenixフレームワークを使用してコンパイラやコード分析ツールを作成するためのSDKとしても利用可能であり、そのプレリリースビルドが利用可能になっています。
概要
Microsoft Phoenixは、 AST、制御フローグラフ、例外処理モデルを使用して、プログラムの中間表現(IR)を定義します。Phoenixで処理されるプログラムは、この表現に変換する必要があります。Phoenixの用語ではファイルリーダーと呼ばれる、これらのファイルタイプ固有のコンバーターの仕様も指定されています。Phoenixには、 Portable Executableバイナリファイル、CIL 、およびVisual C++フロントエンドの出力用のリーダーが含まれています。 [9] Phoenix SDKを使用して他の言語のリーダーを作成できますが、 lexerとparserをそれぞれ記述するには、 lexやyaccなどの別のツールを使用する必要があります。
プログラムがIRに変換されると、分析および最適化ツールはその形式で動作できるようになります。 Phoenixには、ブロックカウント、メモリ分析、コードカバレッジ、コード分析および最適化などのツールが含まれています。[10] Phoenix SDKを使用して、他のツールを記述およびプラグインすることもできます。コード生成は、アーキテクチャ固有(プロセッサの物理アーキテクチャまたは仮想マシンアーキテクチャ)のファイルライターを提供することで処理されます。 Phoenixは、x86c2.dllアーキテクチャの分析、最適化、およびコード生成を処理するために、Visual C++と共有するコンパイラバックエンドを提供します。他のアーキテクチャのライターは別途提供する必要があります。
モジュール アーキテクチャのおかげで、システムの他の部分に影響を与えることなく、任意のコンポーネントを置き換えることができます。たとえば、コンパイラを別のアーキテクチャにターゲットするには、そのアーキテクチャに固有のファイル ライターのみを変更すればよく、スタックの残りの部分は変更する必要はありません。新しい言語用のコンパイラを作成するには、リーダーのみを用意する必要があります。
製品化
Phoenixコンポーネント(phx.dll)は、Visual Studio 2010の静的解析(FxCop )の一部に使用されます。 [11](ほとんどのインストルメンテーション挿入を機能させるために必要なPhoenixコンパイラ自体は、Visual Studioに含まれていません。)
参照
参考文献
- ^ 「Microsoft Phoenix SDK (2008-07-01)」。
- ^ 「Phoenix Academic Program」。2007年12月13日時点のオリジナルよりアーカイブ。2007年11月16日閲覧。
- ^ Safonov, Vladimir O. (2010)。「Microsoft Phoenix、Phoenix をターゲットにしたツール、および Phoenix プロジェクト」。信頼できるコンパイラ。ニュージャージー州ホーボーケン: John Wiley & Sons。pp. 239– 276。ISBN 9780470593349. 2019年5月8日閲覧。
- ^ Tairas , Robert; Gray, Jeff (2006 年 3 月 10 日)。「サフィックス ツリーを使用した Phoenix ベースのクローン検出」(PDF)。第 44 回南東部地域会議の議事録。Association for Computing Machinery: 679–684。2019年5 月 8 日閲覧。
- ^ Safonov, Vladimir; Gratchev, Mikhail; Grigoryev, Dmitry; Maslennikov, Alexander (2006 年 5 月 29 日 – 6 月 1 日)。「Aspect.NET — Phoenix および Whidbey に基づく Microsoft.NET 用のアスペクト指向ツールキット」( PDF)。. NET テクノロジ 2006。西ボヘミア大学: 19–30。2019年5 月 8 日閲覧。
- ^ Ueng, Sain-Zee; Lathara, Melvin; Baghsorkhi, Sara S.; Hwu, Wen-mei W. 「CUDA-Lite: GPUプログラミングの複雑さの軽減」。並列コンピューティングのための言語とコンパイラ。イリノイ大学アーバナシャンペーン校: Springer: 1– 15。2019年5月8日閲覧。
- ^ Castro, Miguel; Costa, Manuel; Harris, Tim (2006 年 11 月 6 日)。「データフロー整合性の強化によるソフトウェアのセキュリティ保護」(PDF)。第 7回オペレーティングシステムの設計と実装に関するシンポジウムの議事録。USENIX 協会: 147–160。2019年5 月 8 日閲覧。
- ^ [2] [3] [4] [5] [6] [7]
- ^ 「Phoenix Compiler Backend」。2010年12月26日時点のオリジナルよりアーカイブ。2007年11月16日閲覧。
- ^ 「Phoenix ベースのツール」。2010 年 12 月 26 日時点のオリジナルよりアーカイブ。2007 年11 月 16 日閲覧。
- ^ 「VS 2010 Beta 2 コード分析の詳細初見」。2010 年 1 月 6 日時点のオリジナルよりアーカイブ。2010年3 月 30 日閲覧。
外部リンク
- フェニックス公式サイト
- Phoenix SDK 2008 年 6 月 CTP リリース (執筆時点での最新リリース)
