ロゴ
ユニオンペディア
コミュニケーション
Google Play で手に入れよう
新しい! あなたのAndroid™デバイスでユニオンペディアをダウンロードしてください!
インストール
ブラウザよりも高速アクセス!
 

静的単一代入

索引 静的単一代入

静的単一代入(せいてきたんいつだいにゅう、Static Single Assignment form, SSA)形式は、コンパイラ設計における 中間表現 (IR) のひとつで、各変数が一度のみ代入されるよう定義されたものである。もともとの中間表現における変数は「バージョン」に分割され、全ての変数の定義がバージョンを表現できるよう、通例新たな変数は元の名前に添え字を付けて表現される。SSA ではuse-def 連鎖が明示的であり、連鎖は要素を一つだけ持つ。 SSA はRon Cytron、Jeanne Ferrante、Barry Rosen、Mark Wegman、Ken Zadeck および IBM の研究者たちにより1980年代に開発された。 Scheme、ML、Haskell などの関数型言語のコンパイラでは、Fortran や C などのコンパイラで SSA の利用が期待される箇所で継続渡しスタイル (CPS) を用いるのが一般的である。SSA と CPS は形式的に等価であり、最適化やコードの変換などがいずれかに施された場合、もう片方にも同様に適用することができる。.

37 関係: 基本ブロック大域値番号付け定数畳み込み中間表現ライス大学レジスタ割り付けデッドコード削除フロントエンド到達不能コード制御フローグラフアセンブリ言語コンパイラコンパイラ最適化サン・マイクロシステムズC言語継続渡しスタイル疎な条件分岐を考慮した定数伝播関数型言語配列逆コンパイラFORTRANGNUコンパイラコレクションHaskellHotSpotIBMJavaJava仮想マシンJavaバイトコードJavaクラスファイルLLVMML (プログラミング言語)Oberon-2Scheme演算子強度低減1980年代1998年2006年

基本ブロック

基本ブロック(きほんブロック、Basic block)は、コンピュータにおいて、一つの入り口(すなわち、内部のコードが他のコードの分岐先になっていない)と一つの出口を持ち、内部に分岐を含まないコードを指す。基本ブロックの開始点には、他のコードからジャンプすることができる。基本ブロックの終了点は、他のコードへのジャンプ命令(あるいは、ジャンプの一つ前の命令)である。 基本ブロックは通例コンパイラ最適化を行う最小単位であり、制御フローグラフにおけるノードや頂点である。 基本ブロックにおけるコードとは、ソースコードでもアセンブリ言語でも、またその他の命令列であっても良い。.

新しい!!: 静的単一代入と基本ブロック · 続きを見る »

大域値番号付け

大域的値番号付け(英: Global value numbering, GVN) とは、静的単一代入中間表現に基づくコンパイラ最適化手法の一つである。 GVN は共通部分式除去 (CSE) によっても取り除くことができない冗長なコードを取り除くことができる。一方、CSE は GVN で除去できないコードを取り除くことができ、両者はいずれも現代的なコンパイラに採用されている。大域的値番号付けは、値と番号の関連付けをブロックの境界を越えて行うことができ、また関連付けのアルゴリズムを計算する方法が異なるという点で局所的値番号付けとは区別される。 大域的値番号付けは、値番号を変数や式に割り当てることで動作する。等価な変数や式には同じ値番号を割り当てる。例えば下記のコードでは、 優秀な GVN のルーチンはw 、 x と y 、z にそれぞれ 同じ値番号を割り当てる。たとえば、 の割り当てはこのブロックに関して最適な値と番号の対応関係である。この情報を用いることで、上のコードは下記のコードに安全に変換できる。 これ以降のコードしだいで、コピーの伝播によって x および z に対する割り当てを除去できる可能性がある。 GVN が CSE より強力なのは、CSE は字句的に同一な式をマッチさせるのに対して GVN はその背後の等価性を特定しようとする点である。例えば、 というコードで、CSE は f に割り当てられた再計算のコードを除去しないが、GVN はごく初歩的なアルゴリズムでもこれを発見し、冗長性を除去することができる。 GVN を実行するためには、変数名と値名の間に偽の対応関係が作られないよう、静的単一代入形式が必要である。.

新しい!!: 静的単一代入と大域値番号付け · 続きを見る »

定数畳み込み

定数畳み込み(ていすうたたみこみ、constant folding)および定数伝播(ていすうでんぱ、constant propagation)は、多くのコンパイラで使われている最適化技法である。定数伝播の進化したものを疎な条件分岐を考慮した定数伝播と呼び、定数伝播と同時にデッドコード削除も行って、より正確な伝播を行う。.

新しい!!: 静的単一代入と定数畳み込み · 続きを見る »

中間表現

中間表現(ちゅうかんひょうげん、Intermediate Representation、IR)は、コンピュータがデータをクロスプラットフォームで扱うために使用するデータ構造の表現である。 中間表現を用いたデータの抽象化はコンピューティング分野では一般的な手法である。異なるプラットフォームで同等の情報を保持するデータを異なるフォーマットで扱う場合に、データを中間表現で表現することで複数フォーマットへの変換処理を効率化することを手助けする。これは自然言語の翻訳に中間言語を用いるのと同等のメリットがある。.

新しい!!: 静的単一代入と中間表現 · 続きを見る »

ライス大学

ライス大学(Rice University)は、アメリカ合衆国テキサス州ヒューストン市のダウンタウンの南、ミュージアム・ディストリクトに隣接するエリアにキャンパスを構える名門私立総合大学、最難関校の一つである。 学生数は6,000人強(学部4,000人弱、大学院2,500人程度)の中規模大学であり、トップ大学の中ではカリフォルニア工科大学につぐ少なさである。教授1人あたりが受け持つ学生の数も少なく(1:6)、少数精鋭制のクラスで質の高い教育を行う同学の評価は非常に高い。USニューズ&ワールド・レポート誌のランキングでは常に総合大学の上位20位以内にランクされる。US news 2018 National Universities 14位(ブラウン大学、コーネル大学、バンダービルド大学とタイ)。US News, Best Global Universities Rankings 61位。Time誌world universities rankingで86位。また、キプリンガー・パーソナル・ファイナンス誌では、アメリカで最も価値ある大学教育を行う大学として選ばれた。Nitche社のランキングでは、アメリカBest Colleges 5位 (建築学1位、運動学1位、アート3位、化学5位、工学5位、心理学6位、コンピューター科学7位、ビジネス10位、数学10位、生物学14位)、学生生活ランキング1位を飾っている。大学入試において最も競争率の高い大学の一つである(2015年16%)。 ノーベル賞受賞者を含む国際的に活躍する教授陣を誇る。人工心臓、ニューロ・バイオエンジニアリング、構造化学解析、信号処理、宇宙科学そしてナノテクノロジーの分野の研究で著名である。 アメリカ最大の医療研究施設の集まるテキサス医療センターに隣接し、活発な共同研究、ベイラー医科大学とのRice/Baylor Medical Scholars program等でも知られている。 また、経済学分野においては2014年から民間のコンサルティング会社や投資会社などの大企業からのファンディングを基盤としたRISE Projectを開始した。このプロジェクトは、 world-leading institution for structural empirical microeconomics. The structural approach to empirical economics emphasizes the importance of a rigorous combination of economic theory, econometrics and data analysis to address substantively important issues in all areas of economicsとあるように、ミクロ経済学理論と計量経済学理論を融合させた実証手法である「構造推定」に力を入れている。このプロジェクト発足後、トップ大学から関連分野のファカルティを10人以上引き抜くことに成功している。 同学と同じくトップ25に入るテネシー州ナッシュビルのヴァンダービルト大学やアトランタのエモリー大学などと並んで、「南のハーバード」という異名を持つ。ヒドゥン・アイビーに数えられる。.

新しい!!: 静的単一代入とライス大学 · 続きを見る »

レジスタ割り付け

レジスタ割り付け(レジスタわりつけ、Register allocation)は、プログラム内の多数の変数を少数のCPUレジスタに多重化するコンパイラ最適化技法のひとつである。その目標は、プログラムの実行速度を最大化すべく、なるべく多くのオペランドをレジスタに保持するようにすることである。レジスタ割り付けは基本的なブロックについて行う場合(ローカルレジスタ割り付け)と関数やプロシージャ全体について行う場合(グローバルレジスタ割り付け)がある。レジスタ割り当てとも呼ぶ。 プログラムは、多数の様々なデータを処理することが多い。しかし、CPUの多くはデータを保持するのに使えるレジスタ数は限られている。機械語のオペランドとしてメモリを指定できる場合でも、なるべくレジスタを使った方が高速化される。従って、処理に必要なデータを RAMとレジスタの間で入れ替えてやる必要がある。この操作を spill(スピル、あふれ)と呼ぶ。 レジスタの spill は、マシンが持っているレジスタ数以上の変数が同時に必要とされる場合に発生する。一般にメモリはレジスタよりも遅いため、spill にはコストがかかる。.

新しい!!: 静的単一代入とレジスタ割り付け · 続きを見る »

デッドコード削除

デッドコード削除(デッドコードさくじょ。英: dead code elimination(デッドコード取り除き))は、コンピュータ・プログラムの最適化などの目的で行われるプログラムの変形のひとつで、到達不能コードや冗長なコードなどといった「デッドコード」を削除する操作である。効果としては、最適化として見た場合、コードサイズの削減(いわゆるフットプリントの縮小)や、それに伴うキャッシュの利用効率の向上などによる高速化も期待できるかもしれない。.

新しい!!: 静的単一代入とデッドコード削除 · 続きを見る »

フロントエンド

フロントエンド(front-end)とバックエンド(back-end)は、プロセスの最初と最後の工程を指す一般的用語である。フロントエンドは各種入力をユーザーから収集し、バックエンドが使える仕様に合うようにそれを加工する。フロントエンドとバックエンドの結合部はインタフェースと呼ばれる。.

新しい!!: 静的単一代入とフロントエンド · 続きを見る »

到達不能コード

到達不能コード(とうたつふのうコード、unreachable code)は、コンピュータ・プログラムの一部として存在するが、決して実行されないコードのことである。たとえば機械語プログラムであれば、プログラムカウンタ(インストラクションポインタ)が、そのアドレスに到達することは、決してない(到達不能である)。 以下のような理由から好ましくない。.

新しい!!: 静的単一代入と到達不能コード · 続きを見る »

制御フローグラフ

制御フローグラフ(せいぎょフローグラフ、Control Flow Graph, CFG)は、プログラムを実行したときに通る可能性のある全経路をグラフで表したものである。この場合、ノードは基本ブロック(すなわち、分岐を全く含まない逐次的コード列であって、途中に分岐先もない)を表し、ノードとノードをつなぐ有向エッジは、あるブロックから別ブロックへのジャンプを意味する。一般に、グラフ全体の入口となる入口ブロックと、出口となる出口ブロックがある。 CFGはコンパイラ最適化や静的コード解析ツールでよく使われる。 最適化において利用されるグラフの属性として、到達可能性(reachability)がある。あるブロックまたは部分グラフが、入口ブロックを含む部分グラフと連結していない場合、そのブロックは決して実行されることはなく、いわゆる到達不能コードであって、容易に削除可能である。出口ブロックが入口ブロックから到達不能な場合、無限ループとなっている(あらゆる無限ループを検出できるわけではない。停止性問題を参照のこと)。プログラマが明示的に到達できないコードや無限ループを書かなくても、そのような状況になることはある。例えば、定数伝播や定数畳み込みといった最適化を行った後に分岐スレッディングを行うと、元々は別々だった基本ブロックが1つにまとめられることがあり、エッジがCFGから除去され、グラフの一部が連結されなくなることがある。.

新しい!!: 静的単一代入と制御フローグラフ · 続きを見る »

アセンブリ言語

モトローラ MC6800 のアセンブリ言語のソースコード アセンブリ言語(アセンブリげんご、英: assembly language)とは、コンピュータ、マイクロコントローラ、その他のプログラム可能な機器を動作させるための機械語を人間にわかりやすい形で記述する、代表的な低水準言語である。なお、英語の assembly とは「組立」という意味である。.

新しい!!: 静的単一代入とアセンブリ言語 · 続きを見る »

コンパイラ

ンパイラ(英:compiler)とは、コンピュータ・プログラミング言語の処理系(言語処理系)の一種で、高水準言語によるソースコードから、機械語に(あるいは、元のプログラムよりも低い水準のコードに)変換するプログラムである。.

新しい!!: 静的単一代入とコンパイラ · 続きを見る »

コンパイラ最適化

ンパイラ最適化(こんぱいらさいてきか、Compiler optimization)の記事では、コンピュータ・プログラムの最適化に関する話題のうち、もっぱらコンパイラに関係するものに関して説明する。最も一般的な要求はプログラムの実行時間を最小化することであり、その次に使用するメモリ量を最小化することである。また、携帯可能なコンピュータが増えるにつれて、消費電力を最小化するという最適化も生まれてきた。 一部のコード最適化問題はNP完全問題であることが示されている。実際には、プログラマがコンパイラによる最適化の完了を待てる時間の上限なども考慮してコンパイラ最適化を実装する(最適化はCPU時間とメモリを多大に使用する)。かつては、コンピュータのメモリ実装量も実行できる最適化を制限する要因だった。 コンパイラメーカによっては、「コンパイラの最適化の能力が売り上げや評判に大きく影響する」と信じている場合があり、そういう信念に従って「最適化コンパイラ」と銘打つことがある。少なくとも、同程度にバグが無いコンパイラ同士であれば、という前提の範囲内なら、最適化の能力が高いほうが魅力的と言えるであろう。.

新しい!!: 静的単一代入とコンパイラ最適化 · 続きを見る »

サン・マイクロシステムズ

ン・マイクロシステムズ本社 サン・マイクロシステムズ(Sun Microsystems)は、アメリカ合衆国カリフォルニア州サンタクララに本社を置いていたコンピュータの製造・ソフトウェア開発・ITサービス企業である。2010年1月27日にオラクルにより吸収合併され、独立企業・法人としては消滅した。.

新しい!!: 静的単一代入とサン・マイクロシステムズ · 続きを見る »

C言語

C言語(シーげんご)は、1972年にAT&Tベル研究所のデニス・リッチーが主体となって開発したプログラミング言語である。英語圏では単に C と呼んでおり、日本でも文書や文脈によっては同様に C と呼ぶことがある。.

新しい!!: 静的単一代入とC言語 · 続きを見る »

継続渡しスタイル

継続渡しスタイル (CPS: Continuation-passing style) とは、プログラムの制御を継続を用いて陽に表すプログラミングスタイルのことである。この用語は、Gerald Jay Sussman とガイ・スティール・ジュニアにより、Scheme言語に関する初期の論文において導入された。 継続渡しスタイルで書かれた関数は、通常の直接スタイル (direct style) のように値を「返す」かわりに、「継続」を引数として陽に受け取り、その継続に計算結果を渡す。継続とは、関数の計算結果を受け取るための(一般には元の関数とは別の)関数のことである。継続渡しスタイルの関数を呼び出すときは、呼び出し側の関数が、呼び出される関数の「戻り値」を受け取るための継続を与える必要がある。この形でコードを書くと、直接スタイルにおいて暗黙に仮定されていた様々な動作が、陽に表される。例えば、手続きからの復帰が継続の呼び出しとして表される、計算の途中の値がすべて陽に名前を与えられる、引数の評価順序が陽に表される、末尾呼び出しは呼び出される手続きに呼び出し側と同じ継続を渡すことにあたる、等である。 直接スタイルのプログラムはCPSに自動変換することが可能である。関数型言語や論理型言語のコンパイラはCPSを中間表現として用いることがある。命令型言語ないし手続き型言語のコンパイラはしばしば静的単一代入(SSA)形式を用いるが、SSAとCPSはある意味で等価であることが知られている* 。また、やはり関数型言語のコンパイラの中間表現として用いられることがあるA正規形(A-normal form)も、CPSとの対応関係が(当初から)知られている。.

新しい!!: 静的単一代入と継続渡しスタイル · 続きを見る »

疎な条件分岐を考慮した定数伝播

な条件分岐を考慮した定数伝播(英: Sparse conditional constant propagation)とは、計算機科学におけるコンパイラ最適化手法の一つで、静的単一代入(SSA)形式に変換した後に適用されることが多い。 この手法は、プログラム全体に対してある種のデッドコードの除去と、定数畳み込みを同時に実施する。重複の回数によらず、単純なデッドコード削除と定数畳み込みより強力な方法である。 アルゴリズムはSSA形式のコードに抽象解釈を実施することにより働く。抽象解釈を実施する間、典型的には、値に対応する定数の値と定数のフラットな束と、束に対する大域的な SSA 変数と値の割り当てを用いる。アルゴリズムの最重要な点は分岐命令をどのように扱うかにある。分岐命令に遭遇すると、抽象化された値を、可能な限り正確に条件の変数に割り当てるようにする。 値が完全に正確で、抽象解釈で分岐のどちらに進むかが決定できる場合もある。値が定数ではない場合、あるいは条件文における変数が未定義の場合、保守的にいずれの分岐方向も残される。 抽象解釈が完了すると、到達しない命令はデッドコードとされる。定数であることが判明した SSA 変数は使用される箇所でインライン展開(伝播)される。.

新しい!!: 静的単一代入と疎な条件分岐を考慮した定数伝播 · 続きを見る »

関数型言語

関数型言語(かんすうがたげんご、functional language)は、以下に述べる関数型プログラミングを基本スタイルとして推奨する機能を持つプログラミング言語、関数型プログラミング言語の略称である。.

新しい!!: 静的単一代入と関数型言語 · 続きを見る »

配列

この記事では、コンピュータ・プログラムにおいて配列(はいれつ、array)と呼ばれているデータ構造およびデータ型について説明する。計算科学方面ではベクトルという場合もある。また、リストも参照。一般に、添え字で個々の要素を区別する。.

新しい!!: 静的単一代入と配列 · 続きを見る »

逆コンパイラ

逆コンパイラ(ぎゃくこんぱいら、Decompiler)とは機械語で記述されたオブジェクトコードを解析し、人間にわかりやすいソースコードを作成するプログラムである。.

新しい!!: 静的単一代入と逆コンパイラ · 続きを見る »

FORTRAN

FORTRAN(フォートラン)は、1954年にIBMのジョン・バッカスによって考案された、コンピューターにおいて広く使われた世界最初の高級言語である。.

新しい!!: 静的単一代入とFORTRAN · 続きを見る »

GNUコンパイラコレクション

GNU Compiler Collection(グニューコンパイラコレクション)は、GNUのコンパイラ群である。略称は「GCC(ジーシーシー)」。GNUツールチェーンの中核コンポーネント。.

新しい!!: 静的単一代入とGNUコンパイラコレクション · 続きを見る »

Haskell

Haskell(ハスケル)は非正格な評価を特徴とする純粋関数型プログラミング言語である。名称は数学者であり論理学者であるハスケル・カリーに由来する。.

新しい!!: 静的単一代入とHaskell · 続きを見る »

HotSpot

HotSpot(ホットスポット)はオラクル(サン・マイクロシステムズ)が提供しているJava仮想マシンで使われている高速化のための技術の名称。デスクトップ向け・サーバ向け・携帯電話向け(Java ME)がある。性能を改善するためにジャストインタイムコンパイル方式、Adaptive optimization(適応性のある最適化)などの技術を使っている。.

新しい!!: 静的単一代入とHotSpot · 続きを見る »

IBM

IBM(アイビーエム、正式社名: International Business Machines Corporation)は、民間法人や公的機関を対象とするコンピュータ関連製品およびサービスを提供する企業である。本社はアメリカ合衆国ニューヨーク州アーモンクに所在する。世界170カ国以上で事業を展開している。.

新しい!!: 静的単一代入とIBM · 続きを見る »

Java

Java(ジャバ)は、狭義ではプログラミング言語Javaを指す。広義では言語仕様以外にも、仕様が与えられているJavaクラスライブラリやJava仮想マシン、さらにはJDKやJREなどの公式のものをはじめとする、場合によってはサードパーティのものなどを含め曖昧にJavaプラットフォームと総称されるようなものなどのエコシステムなどを指すこともある。構文についてはJavaの文法の記事を参照。.

新しい!!: 静的単一代入とJava · 続きを見る »

Java仮想マシン

ネイティブコードに変換されて実行される。Java APIとJVMの両者でJava実行環境 (JRE) を構成する。 Java仮想マシン (Java virtual machine、Java VM、JVM) は、Javaバイトコードとして定義された命令セットを実行するスタック型の仮想マシン。APIやいくつかのツールとセットでJava実行環境 (JRE) としてリリースされている。この環境を移植することで、さまざまな環境でJavaのプログラムを実行することができる。.

新しい!!: 静的単一代入とJava仮想マシン · 続きを見る »

Javaバイトコード

Javaバイトコードは、Java仮想マシンが実行する命令形式である。各バイトコードのオペコードは長さが1バイトであるが、引数を持つものもあるため、結果として複数バイトの命令となる。256個のオペコードの全てが使われているのではなく、51個が将来のために予約されている。その他について、Javaプラットフォームの開発元であるサン・マイクロシステムズは、3つのコードを永久に実装しないままにした。.

新しい!!: 静的単一代入とJavaバイトコード · 続きを見る »

Javaクラスファイル

Javaクラスファイルは、Java仮想マシン (JVM) 上で実行可能なJavaバイトコードを含む(.class拡張子付きの)ファイルである。Javaクラスファイルは、Javaクラスを含むJava言語ソースファイル(.javaファイル)からJavaコンパイラによって作成される。ソースファイルに2つ以上のクラスがある場合、各クラスは分割されたクラスファイルとしてコンパイルされる。 JVMは多くのプラットフォームで利用可能であり、あるプラットフォームでコンパイルされたクラスファイルは他のプラットフォームのJVMでも実行できる。これによりJavaはクロスプラットフォームである。.

新しい!!: 静的単一代入とJavaクラスファイル · 続きを見る »

LLVM

LLVM とは、コンパイル時、リンク時、実行時などあらゆる時点でプログラムを最適化するよう設計された、任意のプログラミング言語に対応可能なコンパイラ基盤である。当初は、LLVM の名称の由来は、Low Level Virtual Machine (低水準仮想機械) の略であるとしていたが、現在は、何の頭文字でもないとしている。.

新しい!!: 静的単一代入とLLVM · 続きを見る »

ML (プログラミング言語)

ML(えむえる、Meta-Language)は、関数型言語のひとつである。現代風の関数型言語としては歴史が古いほうで、型推論機能などを持つが、デフォルトの評価戦略は遅延評価ではなく先行評価で、書き換えが可能なレコード型を持つなど、いわゆる「純粋関数型」でない特徴や機能を持つ。.

新しい!!: 静的単一代入とML (プログラミング言語) · 続きを見る »

Oberon-2

Oberon-2 とは、プログラミング言語 Oberon を拡張し、オブジェクト指向的なコンセプトを取り入れた言語である。 1991年、チューリッヒ工科大学のニクラウス・ヴィルトと (現システムソフトウェア研究所)が開発した。Oberon-2 は Oberon の上位互換である。Oberon-2 は Object Oberon(Oberon にオブジェクト指向のコンセプトを導入した最初の試み)の再設計でもあった。 Oberon-2 は Oberon から限定されたリフレクションとインタフェースなどを持たない単一継承(型拡張)を受け継いでいるが、効果的な仮想メソッド(型束縛プロシージャ)を追加している。メソッド呼び出しは、C++のような仮想メソッドテーブルを使って実行時に確定する。 Smalltalk などの完全なオブジェクト指向言語に比べると、Oberon-2 の基本データ型はオブジェクトになっておらず、クラスもオブジェクトではなく、多くの操作がメソッドではないし、メッセージパッシングの概念もなく、ポリモーフィズムも限定的である(SmalltalkやRubyのようなダックタイピングがなく、Javaのようなインタフェースも定義できない)。オブジェクト/クラスレベルでのカプセル化もサポートしていないが、モジュールをその目的で使用することができる。 Oberon-2 のリフレクションはを使わず、実行ファイル内に含まれる型記述子を単に読み、それが型やプロシージャを定義しているモジュールに渡される。その構造体の形式が言語レベルで渡されるなら(例えば Oberon System 3 がそうである)、ライブラリレベルでのリフレクションの実装が可能である。従って、言語コードを全く変えずにライブラリレベルでほとんど全てを実行することも可能である。実際、Oberon System 3 は言語レベルとライブラリレベルのリフレクションを多用している。.

新しい!!: 静的単一代入とOberon-2 · 続きを見る »

Scheme

Scheme(スキーム)はコンピュータ・プログラミング言語 Lispの方言のひとつで、静的スコープなどが特徴である。仕様(2017年現在、改7版まで存在する)を指すこともあれば、実装を指すこともある。Schemeにより、Lisp方言に静的スコープが広められた。.

新しい!!: 静的単一代入とScheme · 続きを見る »

演算子強度低減

演算子強度低減(英: Strength reduction)とはコンパイラ最適化手法の一つで、コストの高い演算式を等価でコストの低い演算式に置き換えるものである。 演算子強度低減では、数学的な同一性を用いて低速な演算式を高速な演算式で置換する。置換したことによるコストと利点は対象の CPU や、時には周辺のコード(CPU 内の機能ユニットが利用できるかどうか)に大きく依存する。.

新しい!!: 静的単一代入と演算子強度低減 · 続きを見る »

1980年代

1980年代(せんきゅうひゃくはちじゅうねんだい)は、西暦(グレゴリオ暦)1980年から1989年までの10年間を指す十年紀。この項目では、国際的な視点に基づいた1980年代について記載する。.

新しい!!: 静的単一代入と1980年代 · 続きを見る »

1998年

この項目では、国際的な視点に基づいた1998年について記載する。.

新しい!!: 静的単一代入と1998年 · 続きを見る »

2006年

この項目では、国際的な視点に基づいた2006年について記載する。.

新しい!!: 静的単一代入と2006年 · 続きを見る »

ここにリダイレクトされます:

静的単一代入形静的単一代入形式

出ていきます入ってきます
ヘイ!私たちは今、Facebook上です! »