【#100DaysOfCode】補講:プレーンなWindowsに標準搭載されているもの [コンパイラがあった]
「Windowsにはコンパイラは入っておらず、gccなどを必要に合わせてインストール(環境構築)して、
プログラミング言語を扱う」と思っていた。
調べたことをメモ
- フレームワークとは
- .NET Frameworkとは
- Windowsでのコンパイル(アセンブラ→実行ファイル)までの流れ
- Linuxにおけるアセンブラ言語のコンパイル・実行までの流れ
- Linuxにおけるアセンブリ言語 GASとNASMの違い
- コンパイラについて 驚愕の事実:.NET Frameworkは標準でC#ソースをコンパイルする機能を持っている
catsforepaw
無理矢理ですが、PowerShellでMicrosoft.CSharpアセンブリをロードしてCSharpCodeProviderオブジェクトを作ってC#コンパイラーを準備すれば、C#が使えるようになります。
pngnshny
C#コンパイラを準備というのは、C#コンパイラをダウンロードしてこないといけないということでしょうか…?
catsforepaw
いえ、CSharpCodeProviderオブジェクトを作ったら、アセンブリ情報とかいろいろ設定してC#ソースをコンパイルして実行できるように準備するということです。.NET Frameworkで提供されている機能なので、別途ダウンロードとかはないです。
catsforepaw
ほとんど使うことのない機能なので改めてリファレンスを確認してみましたが、CompilerParametersオブジェクトに各種設定をして指定したファイルやソースコードをコンパイルするようです。コンパイルした結果はCompilerResultsオブジェクトに格納されて、クラスをインスタンス化したり、メソッドを呼び出したりできるようです。
YsMana
WSHでVBScriptとJScriptが使えますね
pngnshny
まさか標準のWindowsでJavaScriptに似た言語が使えるとは!しかも正規表現が使えるなんて…!いいことを知りました。ありがとうございました!
フレームワークとは
アプリケーションを開発するとき、その土台として機能させるソフトウェアのこと。「アプリケーションフレームワーク」とも呼ばれる。「枠組み」「骨組み」「構造」などといった意味があり、土台となるフレームワークに必要な機能を追加し、アプリケーションの開発を進めていくのが一般的。
フレームワークには、Webアプリケーションの作成に利用される「Webアプリケーションフレームワーク」、データのソートや文字列操作、数学関数、テストなどのアプリケーションの機能や性能、操作性を向上させるための「ユーティリティ系フレームワーク」などの種類がある。それぞれ汎用性が高く、機能が充実しているタイプや、軽量で機能が絞り込まれたタイプなど、多種多彩なフレームワークがある。
フレームワークの最大のメリットは、目的のアプリケーションをゼロから開発する必要がないので、開発工程を大幅に短縮できることにある。その反面、フレームワーク特有のコードがあるために、プログラミング言語に加え、そのコードを覚えなければならないという欠点もある。
- メリット
1.汎用的な機能があらかじめ用意されている
2.複数人で開発するときに、レベルを合わせやすい
- デメリット
1.オリジナリティの高い処理を行おうとすると、余計に大変
2.フレームワークを使わない場合に比べて、性能面で劣る(場合がある)
.NET Frameworkとは
Microsoft .NET Framework(マイクロソフト ドットネット フレームワーク)は、マイクロソフトが開発したアプリケーション開発・実行環境である。
Windowsアプリケーションだけでなく、XML WebサービスやウェブアプリケーションなどWebベースのアプリケーションなども包括した環境となっている。一般に.NETという場合、.NET全体の環境を指す。
.NET Framework - Wikipedia