コンパイラー【compiler】
コンパイラ
何らかのプログラミング言語で記述されたプログラムをコンピュータが実行可能なコードに変換し、その後実行するする言語システムを一般にコンパイラ言語と呼ぶ。コンパイラは、その中でコード変換を行う中核部分もしくは、その技術の名称である。
一般に人間が理解しやすい表現形式を持つ言語を「高級言語」と呼ぶが、この高級言語をコンピュータが実行するには、大きくコンパイラ方式とインタープリタ方式の2つがある。前者は、ソースプログラムを読みこみ、実行可能な機械語からなるバイナリプログラムを出力し、その後実行を行う。インタープリタ方式では、ソースプログラムを読みこみながら、解釈を行い、直接実行を行う。一般にコンパイラ言語のほうが実行効率がよいとされているが、中間言語方式など、両者の方法を取り入れたものなどもあれば、言語仕様によってはインタープリタでも高速な実行が可能な場合もある。
コンパイラ
コンパイラとは、特定のプログラミング言語で記述されたソースコードを読み込み、ターゲットとなるコンピュータ、あるいは、バーチャルマシンが直接実行できる命令語に変換するソフトウェアのことである。
ソフトウェア開発に用いられるプログラミング言語には、アセンブラ言語のような低水準のもの(低級言語)から、より人間に近い表現が可能であるFortran、COBOL、C言語、C++、Pascal、Java、C#といった高水準の言語(高級言語)まで多種である。高級言語でプログラムを作成した場合、そのソースコードは、計算機で直接実行することはできない。コンピュータに実行を指示するためには、CPUが解釈できる機械語で記述された実行プログラムを、あらかじめ記憶装置に格納しておいてから計算機の動作を開始させる必要がある。コンパイラは、あらかじめ高級言語のソースコードを読み込み、実行対象となる計算機のCPUが解釈可能な機械語へと変換するために用いられる。
コンパイラを用いてソースコードを機械語に変換する処理そのものは、コンパイルと呼ばれる。
コンパイラが、最終ターゲットであるCPU固有の機械語を出力する場合、そのコンパイラは特にネイティブコンパイラと呼ばれ、その処理はネイティブコンパイルと呼ばれる。対して、Java仮想マシンのような仮想的な論理計算機をターゲットにしてコンパイルを行うようなコンパイラは、中間言語コンパイラと呼ばれる。中間言語コンパイラにより出力された、中間言語のプログラムを実行するのは、ネイティブな計算機ではなく、Java仮想マシンのようなインタープリタということになる。インタープリタが実行時に、中間言語の一部を部分的にネイティブの機械語に変換してから実行する場合は、動的コンパイル、あるいはジャストインタイムコンパイルと呼ばれる。動的コンパイルに対して、通常のコンパイルは、実行に先立ってあらかじめコンパイルしておくという意味で、事前コンパイル(プリコンパイル)と呼ばれる。
プログラミング言語のうち、高級言語を用いて作成されたプログラムは、特定のターゲットCPUに依存しない。コンパイル時にターゲットCPU向けのコンパイラを用いることにより、特定CPU向けの実行コードを得ることができるため、最終的に任意の計算機で実行できることになる。なお、中間言語方式のコンパイラの場合、コンパイル作業自体は1回だけ行えば、同じ中間言語プログラムをさまざまな計算機上で実行することができる。この場合、コンパイラは1種類で済むものの、コンパイル結果の中間言語プログラムを解釈実行するインタープリタ、あるいは仮想計算機が、ターゲットとなる計算機の種類の分だけ用意する必要がある。
ソフトウェアの規模がある程度以上となる場合、ソフトウェアをモジュールに分割して、モジュールごとにコンパイルを行うこともある。この作業は、特に分割コンパイルと呼ばれる。分割コンパイルを行った場合、その出力としてオブジェクトコードと呼ばれるモジュール単位の出力が得られる。実行に際しては、出力されたオブジェクトコードを一つにまとめ上げ、実行形式のファイルを作成する必要がある。このような操作がリンクと呼ばれる。リンクにより、モジュールごとに記述されている変数やコードが相互に参照できるように相対アドレスの解決を行う。
なお、世界で最初に実用化されたコンパイラは、1957年に開発されたFortranコンパイラである。1960年には、複数のアーキテクチャに対応したCOBOLコンパイラが開発された。1962年には、LISP言語で記述されたLISPコンパイラで自分自身をコンパイルするセルフホスティングコンパイラが初めて開発されている。
Compiler クラス
アセンブリ: cscompmgd (cscompmgd.dll 内)
構文
<ObsoleteAttribute("The recommended alternative is Microsoft.CSharp.CSharpCodeProvider and System.CodeDom.Compiler.ICodeCompiler. The CSharpCodeProvider and CodeDom ICodeCompiler provide a much richer set of functionality for specifying how to launch the compiler.")> _ Public Class Compiler
[ObsoleteAttribute("The recommended alternative is Microsoft.CSharp.CSharpCodeProvider and System.CodeDom.Compiler.ICodeCompiler. The CSharpCodeProvider and CodeDom ICodeCompiler provide a much richer set of functionality for specifying how to launch the compiler.")] public class Compiler
[ObsoleteAttribute(L"The recommended alternative is Microsoft.CSharp.CSharpCodeProvider and System.CodeDom.Compiler.ICodeCompiler. The CSharpCodeProvider and CodeDom ICodeCompiler provide a much richer set of functionality for specifying how to launch the compiler.")] public ref class Compiler
/** @attribute ObsoleteAttribute("The recommended alternative is Microsoft.CSharp.CSharpCodeProvider and System.CodeDom.Compiler.ICodeCompiler. The CSharpCodeProvider and CodeDom ICodeCompiler provide a much richer set of functionality for specifying how to launch the compiler.") */ public class Compiler
ObsoleteAttribute("The recommended alternative is Microsoft.CSharp.CSharpCodeProvider and System.CodeDom.Compiler.ICodeCompiler. The CSharpCodeProvider and CodeDom ICodeCompiler provide a much richer set of functionality for specifying how to launch the compiler.") public class Compiler
Microsoft.CSharp.Compiler
プラットフォーム
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
Compiler クラス
アセンブリ: System.Web (system.web.dll 内)
構文
解説
使用例
継承階層
System.Configuration.ConfigurationElement
System.Web.Configuration.Compiler
プラットフォーム
Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
Compiler コンストラクタ
アセンブリ: cscompmgd (cscompmgd.dll 内)
構文
.NET Framework のセキュリティ
プラットフォーム
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
Compiler コンストラクタ
アセンブリ: System.Web (system.web.dll 内)
構文
Public Sub New ( _ compilerOptions As String, _ extension As String, _ language As String, _ type As String, _ warningLevel As Integer _ )
Dim compilerOptions As String Dim extension As String Dim language As String Dim type As String Dim warningLevel As Integer Dim instance As New Compiler(compilerOptions, extension, language, type, warningLevel)
public Compiler ( string compilerOptions, string extension, string language, string type, int warningLevel )
public: Compiler ( String^ compilerOptions, String^ extension, String^ language, String^ type, int warningLevel )
public Compiler ( String compilerOptions, String extension, String language, String type, int warningLevel )
public function Compiler ( compilerOptions : String, extension : String, language : String, type : String, warningLevel : int )
Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
Compiler プロパティ
パブリック プロパティ
名前 | 説明 | |
---|---|---|
CompilerOptions | コンパイル時に使用されるコンパイラ固有のオプションのリストを取得します。 | |
ElementInformation | ConfigurationElement オブジェクトのカスタマイズできない情報と機能を格納する ElementInformation オブジェクトを取得します。 ( ConfigurationElement から継承されます。) | |
Extension | 動的分離コード ファイルで使用されるファイル名の拡張子のリストを指定します。 | |
Language | 動的コンパイル ファイルで使用されるプログラミング言語のリストを取得します。 | |
LockAllAttributesExcept | ロックされている属性のコレクションを取得します。 ( ConfigurationElement から継承されます。) | |
LockAllElementsExcept | ロックされている要素のコレクションを取得します。 ( ConfigurationElement から継承されます。) | |
LockAttributes | ロックされている属性のコレクションを取得します。 ( ConfigurationElement から継承されます。) | |
LockElements | ロックされている要素のコレクションを取得します。 ( ConfigurationElement から継承されます。) | |
LockItem | 要素がロックされているかどうかを示す値を取得または設定します。 ( ConfigurationElement から継承されます。) | |
Type | 動的コンパイル ファイルの言語プロバイダのコンパイラの種類を示す名前を取得します。 | |
WarningLevel | コンパイラの警告レベルを取得します。 |
名前 | 説明 | |
---|---|---|
ElementProperty | ConfigurationElement オブジェクト自体を表す ConfigurationElementProperty オブジェクトを取得します。 ( ConfigurationElement から継承されます。) | |
EvaluationContext | ConfigurationElement オブジェクトの ContextInformation オブジェクトを取得します。 ( ConfigurationElement から継承されます。) | |
Item | オーバーロードされます。 この ConfigurationElement オブジェクトのプロパティ、属性、または子要素を取得または設定します。 ( ConfigurationElement から継承されます。) | |
Properties | プロパティのコレクションを取得します。 ( ConfigurationElement から継承されます。) |
Compiler メソッド
パブリック メソッド
名前 | 説明 | |
---|---|---|
Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。) | |
GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。) | |
GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) | |
ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) | |
ToString | 現在の Object を表す String を返します。 ( Object から継承されます。) |
名前 | 説明 | |
---|---|---|
Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) | |
MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |
Compiler メソッド
パブリック メソッド
名前 | 説明 | |
---|---|---|
Equals | オーバーロードされます。 現在の ConfigurationElement インスタンスを、指定したオブジェクトと比較します。 ( ConfigurationElement から継承されます。) | |
GetHashCode | 現在の ConfigurationElement インスタンスを表す一意の値を取得します。 ( ConfigurationElement から継承されます。) | |
GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) | |
IsReadOnly | ConfigurationElement オブジェクトが読み取り専用かどうかを示す値を取得します。 ( ConfigurationElement から継承されます。) | |
ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) | |
ToString | 現在の Object を表す String を返します。 ( Object から継承されます。) |
名前 | 説明 | |
---|---|---|
DeserializeElement | 構成ファイルから XML を読み取ります。 ( ConfigurationElement から継承されます。) | |
Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) | |
Init | ConfigurationElement オブジェクトを初期状態に設定します。 ( ConfigurationElement から継承されます。) | |
InitializeDefault | ConfigurationElement オブジェクトの既定の値セットを初期化するために使用します。 ( ConfigurationElement から継承されます。) | |
IsModified | 派生クラスに実装された場合、この構成要素が最後の保存または読み込み以降に変更されたかどうかを示します。 ( ConfigurationElement から継承されます。) | |
ListErrors | この ConfigurationElement オブジェクトおよびすべてのサブ要素の無効なプロパティのエラーを、渡されたリストに追加します。 ( ConfigurationElement から継承されます。) | |
MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) | |
OnDeserializeUnrecognizedAttribute | 逆シリカル化中に不明な属性が発生したかどうかを示す値を取得します。 ( ConfigurationElement から継承されます。) | |
OnDeserializeUnrecognizedElement | 逆シリカル化中に不明な要素が発生したかどうかを示す値を取得します。 ( ConfigurationElement から継承されます。) | |
OnRequiredPropertyNotFound | 必須プロパティが見つからなかったかどうかを示す値を取得します。 ( ConfigurationElement から継承されます。) | |
PostDeserialize | 逆シリアル化後に呼び出されます。 ( ConfigurationElement から継承されます。) | |
PreSerialize | シリアル化前に呼び出されます。 ( ConfigurationElement から継承されます。) | |
Reset | ConfigurationElement オブジェクトの内部状態 (ロックやプロパティ コレクションなど) をリセットします。 ( ConfigurationElement から継承されます。) | |
ResetModified | 派生クラスに実装された場合、IsModified メソッドの値を false にリセットします。 ( ConfigurationElement から継承されます。) | |
SerializeElement | 派生クラスに実装されている場合、この構成要素の内容を構成ファイルに書き込みます。 ( ConfigurationElement から継承されます。) | |
SerializeToXmlElement | 派生クラスに実装されている場合、この構成要素の外側のタグを構成ファイルに書き込みます。 ( ConfigurationElement から継承されます。) | |
SetPropertyValue | プロパティを指定した値に設定します。 ( ConfigurationElement から継承されます。) | |
SetReadOnly | ConfigurationElement オブジェクトおよびすべてのサブ要素に IsReadOnly プロパティを設定します。 ( ConfigurationElement から継承されます。) | |
Unmerge | 保存しないすべての値を削除するには、ConfigurationElement オブジェクトを変更します。 ( ConfigurationElement から継承されます。) |
Compiler メンバ
Compiler データ型で公開されるメンバを以下の表に示します。
パブリック コンストラクタ
名前 | 説明 | |
---|---|---|
Compiler |
名前 | 説明 | |
---|---|---|
Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。) | |
GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。) | |
GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) | |
ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) | |
ToString | 現在の Object を表す String を返します。 (Object から継承されます。) |
名前 | 説明 | |
---|---|---|
Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) | |
MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |
Compiler メンバ
Web アプリケーションのコンパイル インフラストラクチャをサポートするために使用されるコンパイラを定義します。このクラスは継承できません。
Compiler データ型で公開されるメンバを以下の表に示します。
パブリック コンストラクタ
パブリック プロパティ
名前 | 説明 | |
---|---|---|
CompilerOptions | コンパイル時に使用されるコンパイラ固有のオプションのリストを取得します。 | |
ElementInformation | ConfigurationElement オブジェクトのカスタマイズできない情報と機能を格納する ElementInformation オブジェクトを取得します。 (ConfigurationElement から継承されます。) | |
Extension | 動的分離コード ファイルで使用されるファイル名の拡張子のリストを指定します。 | |
Language | 動的コンパイル ファイルで使用されるプログラミング言語のリストを取得します。 | |
LockAllAttributesExcept | ロックされている属性のコレクションを取得します。(ConfigurationElement から継承されます。) | |
LockAllElementsExcept | ロックされている要素のコレクションを取得します。(ConfigurationElement から継承されます。) | |
LockAttributes | ロックされている属性のコレクションを取得します。 (ConfigurationElement から継承されます。) | |
LockElements | ロックされている要素のコレクションを取得します。(ConfigurationElement から継承されます。) | |
LockItem | 要素がロックされているかどうかを示す値を取得または設定します。(ConfigurationElement から継承されます。) | |
Type | 動的コンパイル ファイルの言語プロバイダのコンパイラの種類を示す名前を取得します。 | |
WarningLevel | コンパイラの警告レベルを取得します。 |
名前 | 説明 | |
---|---|---|
ElementProperty | ConfigurationElement オブジェクト自体を表す ConfigurationElementProperty オブジェクトを取得します。(ConfigurationElement から継承されます。) | |
EvaluationContext | ConfigurationElement オブジェクトの ContextInformation オブジェクトを取得します。(ConfigurationElement から継承されます。) | |
Item | オーバーロードされます。 この ConfigurationElement オブジェクトのプロパティ、属性、または子要素を取得または設定します。(ConfigurationElement から継承されます。) | |
Properties | プロパティのコレクションを取得します。(ConfigurationElement から継承されます。) |
名前 | 説明 | |
---|---|---|
Equals | オーバーロードされます。 現在の ConfigurationElement インスタンスを、指定したオブジェクトと比較します。 (ConfigurationElement から継承されます。) | |
GetHashCode | 現在の ConfigurationElement インスタンスを表す一意の値を取得します。 (ConfigurationElement から継承されます。) | |
GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) | |
IsReadOnly | ConfigurationElement オブジェクトが読み取り専用かどうかを示す値を取得します。 (ConfigurationElement から継承されます。) | |
ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) | |
ToString | 現在の Object を表す String を返します。 (Object から継承されます。) |
名前 | 説明 | |
---|---|---|
DeserializeElement | 構成ファイルから XML を読み取ります。 (ConfigurationElement から継承されます。) | |
Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) | |
Init | ConfigurationElement オブジェクトを初期状態に設定します。 (ConfigurationElement から継承されます。) | |
InitializeDefault | ConfigurationElement オブジェクトの既定の値セットを初期化するために使用します。 (ConfigurationElement から継承されます。) | |
IsModified | 派生クラスに実装された場合、この構成要素が最後の保存または読み込み以降に変更されたかどうかを示します。 (ConfigurationElement から継承されます。) | |
ListErrors | この ConfigurationElement オブジェクトおよびすべてのサブ要素の無効なプロパティのエラーを、渡されたリストに追加します。 (ConfigurationElement から継承されます。) | |
MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) | |
OnDeserializeUnrecognizedAttribute | 逆シリカル化中に不明な属性が発生したかどうかを示す値を取得します。 (ConfigurationElement から継承されます。) | |
OnDeserializeUnrecognizedElement | 逆シリカル化中に不明な要素が発生したかどうかを示す値を取得します。 (ConfigurationElement から継承されます。) | |
OnRequiredPropertyNotFound | 必須プロパティが見つからなかったかどうかを示す値を取得します。 (ConfigurationElement から継承されます。) | |
PostDeserialize | 逆シリアル化後に呼び出されます。 (ConfigurationElement から継承されます。) | |
PreSerialize | シリアル化前に呼び出されます。 (ConfigurationElement から継承されます。) | |
Reset | ConfigurationElement オブジェクトの内部状態 (ロックやプロパティ コレクションなど) をリセットします。 (ConfigurationElement から継承されます。) | |
ResetModified | 派生クラスに実装された場合、IsModified メソッドの値を false にリセットします。 (ConfigurationElement から継承されます。) | |
SerializeElement | 派生クラスに実装されている場合、この構成要素の内容を構成ファイルに書き込みます。 (ConfigurationElement から継承されます。) | |
SerializeToXmlElement | 派生クラスに実装されている場合、この構成要素の外側のタグを構成ファイルに書き込みます。 (ConfigurationElement から継承されます。) | |
SetPropertyValue | プロパティを指定した値に設定します。 (ConfigurationElement から継承されます。) | |
SetReadOnly | ConfigurationElement オブジェクトおよびすべてのサブ要素に IsReadOnly プロパティを設定します。 (ConfigurationElement から継承されます。) | |
Unmerge | 保存しないすべての値を削除するには、ConfigurationElement オブジェクトを変更します。 (ConfigurationElement から継承されます。) |
Compiler
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/08/11 19:11 UTC 版)
『Compiler』(コンパイラ)は、麻宮騎亜による日本の漫画。『月刊アフタヌーン』(講談社)に連載されていた。続編に、『アセンブラ0X』(アセンブラゼロエックス)と、読切の『Compiler FINAL(検討中)』があるほか、『ヤングキングアワーズ(少年画報社)にて『元祖コンパイラ』が2021年11月号から連載中。
- 1 Compilerとは
- 2 Compilerの概要
固有名詞の分類
- Compilerのページへのリンク