コンパイラとデータフロー解析間の類似点
コンパイラとデータフロー解析は(ユニオンペディアに)共通で3ものを持っています: 制御フローグラフ、コンパイラ最適化、木構造 (データ構造)。
制御フローグラフ
制御フローグラフ(せいぎょフローグラフ、Control Flow Graph, CFG)は、プログラムを実行したときに通る可能性のある全経路をグラフで表したものである。この場合、ノードは基本ブロック(すなわち、分岐を全く含まない逐次的コード列であって、途中に分岐先もない)を表し、ノードとノードをつなぐ有向エッジは、あるブロックから別ブロックへのジャンプを意味する。一般に、グラフ全体の入口となる入口ブロックと、出口となる出口ブロックがある。 CFGはコンパイラ最適化や静的コード解析ツールでよく使われる。 最適化において利用されるグラフの属性として、到達可能性(reachability)がある。あるブロックまたは部分グラフが、入口ブロックを含む部分グラフと連結していない場合、そのブロックは決して実行されることはなく、いわゆる到達不能コードであって、容易に削除可能である。出口ブロックが入口ブロックから到達不能な場合、無限ループとなっている(あらゆる無限ループを検出できるわけではない。停止性問題を参照のこと)。プログラマが明示的に到達できないコードや無限ループを書かなくても、そのような状況になることはある。例えば、定数伝播や定数畳み込みといった最適化を行った後に分岐スレッディングを行うと、元々は別々だった基本ブロックが1つにまとめられることがあり、エッジがCFGから除去され、グラフの一部が連結されなくなることがある。.
コンパイラと制御フローグラフ · データフロー解析と制御フローグラフ ·
コンパイラ最適化
ンパイラ最適化(こんぱいらさいてきか、Compiler optimization)の記事では、コンピュータ・プログラムの最適化に関する話題のうち、もっぱらコンパイラに関係するものに関して説明する。最も一般的な要求はプログラムの実行時間を最小化することであり、その次に使用するメモリ量を最小化することである。また、携帯可能なコンピュータが増えるにつれて、消費電力を最小化するという最適化も生まれてきた。 一部のコード最適化問題はNP完全問題であることが示されている。実際には、プログラマがコンパイラによる最適化の完了を待てる時間の上限なども考慮してコンパイラ最適化を実装する(最適化はCPU時間とメモリを多大に使用する)。かつては、コンピュータのメモリ実装量も実行できる最適化を制限する要因だった。 コンパイラメーカによっては、「コンパイラの最適化の能力が売り上げや評判に大きく影響する」と信じている場合があり、そういう信念に従って「最適化コンパイラ」と銘打つことがある。少なくとも、同程度にバグが無いコンパイラ同士であれば、という前提の範囲内なら、最適化の能力が高いほうが魅力的と言えるであろう。.
コンパイラとコンパイラ最適化 · コンパイラ最適化とデータフロー解析 ·
木構造 (データ構造)
親子構造 木構造(きこうぞう)とは、グラフ理論の木の構造をしたデータ構造のこと。.
上記のリストは以下の質問に答えます
- 何コンパイラとデータフロー解析ことは共通しています
- 何がコンパイラとデータフロー解析間の類似点があります
コンパイラとデータフロー解析の間の比較
データフロー解析が7を有しているコンパイラは、118の関係を有しています。 彼らは一般的な3で持っているように、ジャカード指数は2.40%です = 3 / (118 + 7)。
参考文献
この記事では、コンパイラとデータフロー解析との関係を示しています。情報が抽出された各記事にアクセスするには、次のURLをご覧ください: