C#の構文をネイティブコード(または多分C++?)にコンパイルするオプションを探しています。私は公式に言語の一部であるすべてのライブラリを持つことに興味はありません。ちょうど私のC++プログラムを書くのと同じプログラムを書くことができますが、部分クラス、プロパティ、ラムダ、ジェネリックなどの言語構造を使用します。C#(言語のみ)コンパイラ
- このようなことはありますか?
- そういうことがあっても、あるいはC#の基本的なことを誤解していますか?
C#の構文をネイティブコード(または多分C++?)にコンパイルするオプションを探しています。私は公式に言語の一部であるすべてのライブラリを持つことに興味はありません。ちょうど私のC++プログラムを書くのと同じプログラムを書くことができますが、部分クラス、プロパティ、ラムダ、ジェネリックなどの言語構造を使用します。C#(言語のみ)コンパイラ
おそらくあなたが望むものに最も近いものはVala programming languageです。 これはC#に大きな影響を受け、Cにコンパイルされ、従来のCコンパイラによってコンパイルされます。
あなたが言っているように部分的なクラス、プロパティ、ラムダ、ジェネリックなどがありますが、C#ではありません。
また、ILをマシンコードに変換するIL2CPUもチェックしてください。おそらく、.NETアセンブリで使用できます。
Re:IL2CPUでは、モノラルランタイム( 'mkbundle'または' mono -aot')を使用して、CLRやランタイムに依存しないネイティブイメージにプリコンパイルすることができます。 – sehe
標準のcsc.exeコンパイラは、BCLを使用せずにコンパイルできます。 /nostdlib
スイッチのためのリファレンスを参照してください。一部でhttp://msdn.microsoft.com/en-us/library/fa13yay7.aspx
を、それは言う:
「あなた自身のSystem名前空間とオブジェクトを定義したり、作成したい場合は、このオプションを使用します。」
たとえば、Silverlightプロジェクトではこれが使用されます。
C#仕様を読んだ場合、一部の言語機能がBCLに関連付けられています。それらを完全に分離することはできません(例えば、 'IDisposable'と' using'ステートメント)。 – Oded
はどのプラットフォームですか? –
C#は中間言語にコンパイルされ、.NET仮想マシンによって実行されます。ライブラリの「言語の一部」はありません.Netによって提供されるライブラリはBCL/FCLの一部であり、ISOによって標準化されています。 – knittl