質問

いASTから、AOETOOLSのパーサジェネレータJava.いきたいと思いは何らかの構築の制御フローグラフのソースコードを、それぞれの算式は独自のノードです。私は理解できることはあるとrecursivenessこの識別ますがご了承くださいこのオプションの場合AOETOOLSは、パワフルなツールセット使用できます。声で クリス


編集私の主要な関心事ですが、この制御フローグラフ(CFG)からのAST.このようにできますツリーを取得し表現のソースです。解明には、ソースコードの実装言語のJava.

役に立ちましたか?

解決

通常CFGs算の低いレベルの表現などJVM bytecode).誰かった 論文 を行います。がある場合がございますあるい方で表現。

からのソースと対象言語は、あのコード生成ステップ--だ。しかし、現在まで歩のAST.各ノードのASTは、自分自身に尋ね:この"ジャンプ"の指導はありませんか?メソッドの呼び出した場合の記述例で飛びください。でループを構築します( forwhile).指示などの加算はジャンピング

第准各java算書のノードに対しては、入り口と出口ノードです。第一近似として考えて、徒歩、木:

  1. 現在の声明は、メソッドの呼び出し、フィギュアのノードの入力に対応する身体のメソッドの呼び出しで、端からの電流を決める入力ノードです。合算する方法、列挙のときのように追加エッジと変わらないことが分かった。
  2. 以外の各ジャンプの計算書、エッジの間で、次のです。

このま 一部の種類 のCFG.手続きは少し毛ステップ2では、という手法が宣言された図書室、他の項に該当するもののAST--その場合、どちらかを作成するのではありませんの先端はエッジに特殊なノードを表すのに入る図書館。

こしょう?

他のヒント

を制作する制御フローグラフをとことん考慮すべての言語 問題はどのようにも見えます。ないるん れの"基本ブロックできる機能通話 (並べ替えやすいものを識別する 対象 がく), が背景に、業務などのクラスinitializersることにもなりかねません。やる気のポイントが例外が発生 び制御の場合、例外は発生します。

ご検討のほとんどの言語を厳ていかなければなりません 明らかに秩序の評価計算に表現 この事項につい二つの側面の効果を表;の制御フローを反映したものにすべきである、注文(又は非注 場合で定義されていない).

これによっていただく抽象化の制御フロー 基本ブロックに条件分岐.ことになる 明らかに少し楽になります。

いずれの場合(単CFGまたは全CFG)が必要で徒歩、AST、 各ポイントで有への参照を可能に制御フロー目標 例えば、ほとんどの場合、などが明が流目標そして、その他の国における節).各ノードのリンクは、そのノードの 適切な制御の流れの目標が交換の流目標 (例えば、ときに出会いる場合).

このためには、言語の意味Java(C)あ 大変なんですよ。がありますので使用のツールを計算するこ の種類があります。見 http://www.semanticdesigns.com/Products/DMS/FlowAnalysis.html 何本かのように見え切にしているのです。

に基づくコメント、音声などのOPんでい コード生成 --に変換するASTの低レベルの配列の指示に基づく基本的なブロックの飛びます。

コード生成が非常に言語、多くの作品のこれまでこの話題です。先日ご寄付頂いたコード生成に必要なものをお知ら 対象言語 --からアセンブラなどの高レベルの言語です。一度確認する必要があるだけで徒歩ASTを生成する手順を実装するコードのAST.どうしてもと言うならばこれは簡単なものすることは難しいことができますのgeneraliseでの配慮にここかの言語、特に設計されています。)

の表現を選ぶためのコード生成の制御フローグラフ、暗黙的または明示的に場合は対象言語はかなり低レベル(アセンブラ)、その制御フローグラフは比較的容易に抽出してください。

(西村:ありがとうございまいをより明確にして頂きたい。)

やっtryed AOETOOLSスタジオ?りませんの穴ASTグラフが見てもかなり参考になります。

私が行ったこと過去に使用した graphviz, 特に、ドットツールのグラフで表示します。作成したドットの入力ファイルを実際に走行し、制御フローグラフコンパイルす。

グラフレイアウトが ハード問題, は、graphvizは優れた。で出力することができ、ps、pdfなど、さまざまなイメージの形式のレイアウトは通常の写直感的なのです。私のおすすめします。

ないと思いますのでお答えるだろを探してんのうAOETOOLSをCFGでも、無AST.しかし、短いものを使用AOETOOLSの生産を独立して生成するためにJavaプログラムをCFG.うに活用し、AOETOOLSを生成構文ツリーとして入力を生成するCFG別Javaプログラムの作成.この時点で、本質的に、コンパイラです。との差額で"コンパイラ"、JVMは、その出力を視覚的に表現(CFGのどのようにプログラムの支店の様々な実行経路およびJVM/Javaコンパイラ生成のためのコード実行実機(CPU).

の例であれば座りこみ込書(英文)は、個人で使用される用語の文章のトークンのコンピュータ言語の文章を形成し、同様の方法を文脈自由文法表現の有効なコンピュータコード、パ&全体小説の物語も同様にその意味解析/コンパイラ/CFGsが生成/表現論理的に有効なプログラムも何かと便利です以下無料のロジックさせてしまいます。つまり、そこを過ぎの問題に有効な構文の正解文書構造)で、誰でも書きのバスに文章のページのみが一定の組み合わせの文章をテキストと実際には見えによる説明が現れます!

うまいているユーザーインター-どのように行く機関として、以下の素質を備える構文ツリーの形や通訳のAST実際には論理的にもちろんありますの構築"のコンパイラ"の各言語でいます。有する正しい文法がない プログラムというプログラムが正しいから文法の視点です。

Lintersおよび構文highlightersとIdeですべてを念頭に設立されさせることなどによって、ここでユーザーインターのパズルや、より効率的な課題は人です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top