• ベストアンサー

.NET frameworkについて

.NET frameworkとはJVMとほとんど同じような気がするのですが、いろんな言語が使えること以外に何かメリットあるのでしょうか? それと、たとえば、VC.NETで作ったプログラムはコンパイラで中間コードになって、実行時に.NET frameworkでインタプリタみたいに機械語に直して実行しているのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • ara_ara
  • ベストアンサー率35% (124/348)
回答No.3

>.NET frameworkとはJVMとほとんど同じような気がするのですが、 非常に近いとは思います。 http://www.atmarkit.co.jp/fdotnet/basics/msdotnet/msdotnet_02.html >たとえば、VC.NETで作ったプログラムはコンパイラで中間コードになって、 そうですね。コンパイラによってIL(Intermediate Language)と呼ばれる中間コードに変換されるようです。 >実行時に.NET frameworkでインタプリタみたいに機械語に直して実行しているのでしょうか? これを「インタープリタ」とは言いませんが、実行時にCPUのネイティブコードに変換して実行します。 http://www.atmarkit.co.jp/fdotnet/basics/msdotnet/msdotnet_04.html .NET frameworkについてはこちらのサイトが、情報が豊富で何かと役立つと思います。 http://www.atmarkit.co.jp/fdotnet/index/all/category.html

参考URL:
http://www.atmarkit.co.jp/fdotnet/index/all/category.html

その他の回答 (2)

  • abayama
  • ベストアンサー率48% (38/79)
回答No.2

ほとんどNo1さんが答えてしまったので、他のメリットについてざっと紹介します。 ・VC6やMFCで開発するよりは、クラスが強力。 ・VC6やMFCで開発するよりは、セキュリティに配慮している(バッファの破壊が起きにくいとか、アクセス権限管理がしやすいとか) ・WindowsアプリケーションとASP.NETアプリケーションの開発方法が、あまり違わない。

  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.1

>NET frameworkとはJVMとほとんど同じような気がする 同じ概念です。一度バイトコードにするところは一緒です。 MSがjavaに対抗してだしたものと思って間違いないでしょう。 VC.NETで開発する場合 あまり.NET frameworkを使うことはないと思います。 最初から.NET frameworkを使うつもりならC#やVB.netで 作成した方が効率が良いですし。 >インタプリタみたいに機械語に直して実行 最終的に機械語に翻訳されることは、どんな言語であろうとかわりませんが、 バイトコードをバッファリングしておいて、実行コード化しています。 そのためjavaもそうですが、 最初の起動に多少時間がかるのとメモリを食います。

hourensou2003
質問者

お礼

え?インタプリタと解釈してもいいということですか?

関連するQ&A

  • C言語やC++、VC++について

    C言語やC++、VC++について C言語やC++、VC++などはIL コードと呼ばれる中間言語が作成されるのでしょうか?それともコンパイラーがネイティブコードに変換されるのでしょうか?でもネイティブコードに変換すると機械語なので互換性がないのではないのでしょうか?それなのになぜ他のwindowsのパソコンで実行できるのはなぜなのでしょうか?そこら辺はどうなっているのでしょうか?

  • フレームワーク(?)について

    フレームワーク(?)について疑問があります。 数年前にでてきた.NETフレームワークを含めて、 J2RE、VBランタイム、Adobe AIRなどのフレームワーク(?)上で 動作するアプリケーションは、 ・起動が遅い ・操作反応が遅い など、感じることがあります。 (PCのスペックにもよると思いますが) (1)将来的に重さは解消されるのか? ハードウェアの進歩は速く、数年前のものの倍以上の性能をもつ ものが日々開発されてきました。そのようなハードウェアがあったからこそ フレームワークのような大規模なソフトウェアが生まれてこれたと思いますが、 フレームワークは、ハードウェアの許容する能力を超えるようなソフトウェアに なってしまっているのが、現状だと思います。 「~~の法則は(名前は忘れました) 近いうちに収束するだろう」というような文章も目にしたことがあります。 近い将来のハードウェアでは、ネイティブアプリと同等、もしくは比較的 近いレベルの使い勝手(起動時間、操作反応)になるのでしょうか? 工学系には疎いので、そのような流れはあるのかを、知りたいです。 また、現在使い始めて、将来役立つような開発環境選択の参考に したいです。 (2)「重い」原因は? # 基本的なことだろうとは思いますが、、、 フレームワークを用いたアプリケーションが重いのは、中間言語を 実行時に機械語に翻訳していることが、主たる原因でしょうか? CPUの使用率が高い→中間言語を機械語に翻訳しているから。 メモリの使用率が高い→フレークワークを実行するから。 とか思っているのですが、当たっていますでしょうか?

  • コンパイラ、インタプリタ、クロスコンパイラについて

    インタプリタについて質問があります。 色々と調べたところ、perl、php、rubyなど、ソースをインタプリタで実行する言語の利点は以下なのだと思います。 ソフトを作っている環境と実行環境の間でcpuやos等が異なる場合は、 ソースは互いに異なる機械語に翻訳されるので、翻訳は実行環境で行わなければならない。 その際、コンパイラの場合はわざわざ手動で翻訳を実行しなければならないが、 インタプリタの場合は勝手に実行時に翻訳してくれるので楽。 1.それで質問なのですが、 コンパイラは環境に対応した機械語を出すらしいですが、 何故そんな事ができるのでしょうか。 コンパイラが、自身が置かれた環境を分析して、それに対応した機械語を出すのでしょうか? それとも、そもそも環境毎に対応したコンパイラを使うという事でしょうか? 2.また、世の中にはクロスコンパイラというものがあると聞きました。 クロスコンパイラがあれば、ソフトを作っている環境でそのままコンパイルできるので、 インタプリタはいらないのではないでしょうか? クロスコンパイラの短所や長所などを教えてほしいです。 3.翻訳後の話として、機械語はcpuやosによって違うという話ですよね。 つまり、機械語にコンパイル済みのソフトを配布する際は環境毎に対応したソフトを それぞれ配布しなければならないのですよね。 しかし、ネット上でダウンロードできるフリーのソフトなんかは、 特定のOS向け、あるいはOS別に違うファイルを配布、というのはよく見かけますが、 cpuやその他の環境毎に配布物を分けているのは見たことがありません。 機械語は、本当にos以外にも依存するものなのでしょうか?

  • インタプリタはロードモジュールを作成する?

    情報システムを勉強し始めた初心者です。 私の持っているテキストには以下のように書いてあります。 ・「ソースプログラム」を「ロードモジュール」に変換するプログラムが「言語プロセッサ」。 ・「言語プロセッサ」には「コンパイラ」や「インタプリタ」が使われる。 つまり、コンパイラもインタプリタもロードモジュールを作成するものだと思っていました。 しかし、以下のような問題がありました。 問題: インタプリとは、高水準言語で書かれた原子プログラムを、機械語のプログラムに翻訳してロードモジュールを作成するプログラムである。 答え: 間違い。インタプリタではなく、コンパイラの説明になっている。 つまり、インタプリタはロードモジュールを作成しないということなのでしょうか? どなたかご教授お願いいたします。

  • コンパイラとインタプリタとアセンブラの違いって何?

    言語プロセッサの説明で「コンパイラ、インタプリタ、アセンブラ」などがあると書かれていたのですが、 コンパイラもインタプリタもアセンブラもどれも説明が「機械語に翻訳する」と書かれていました。 何が違うのでしょうか? 違いをわかりやすく教えてください。 いろいろなプログラミング言語があるというところまでは理解できましたが、プログラミングはわかりません。(涙) これから勉強します。

  • プログラム言語って何があるの?

    私、プログラム言語について調べています。 ウィキペディアをみてもたくさんあって、そこからまたリンクがたくさんあってどこでどのように区切っていいのか分かりません。そこで皆さんに質問したいのですが、プログラム言語はどのようなものがありますか? 大まかにプログラム言語の総称があってその次に (1)機械語(マシン語) (2)アセンブラ言語 高水準言語これの中に (3)インタプリタ言語 (4)コンパイラ言語がありますが、 (1)~(4)のそれぞれの詳細を教えてください。例:BASIC、C等 またこの枠に入らないプログラム言語がありましたら教えてください。 とってもマイナーなものでも構いません。出来ればURL欲しいです。 お願いします。m(_ _)m

  • .net frameworkについて

    .net framework上で動くアプリケーションって沢山あります。 言語もどんどん進化していく中で、どの言語(のバージョン)が.net framework上で動くのか曖昧なのでお聞きします。 visual c++、visual basicの後継のvisual c++.NET、visual basic.NETで開発されたプログラムは.net framework上で動くのはわかりますが、前のvisual c++、visual basicで開発されたプログラムは.net framework上で動かすことはできるのでしょうか? 基礎的なことをお聞きして申し訳ないです、よろしくお願いします。

  • Java言語の実行について平易におしえてください。

    IT勉強超初心者です。教科書に 「java言語の実行はソースプログラムをコンパイラによって生成された中間言語を 仮想マシン上でインタプリタにより実行する」と書いてあるのですが まったくイメージがわきません。JAVAを使ってシステム開発をしている人は どのように上記のことを具体的に行っているのでしょうか。簡単な具体例で おしえていただけますと幸いです。

    • ベストアンサー
    • Java
  • PHPの中間コード

    中間コードは、Java等だと配布先でもVMで実行可能になるようなメリットはあると思います。 ただ、PHPなどは中間コードの配布がまず無い言語だと思うのですが、なぜ生成するのでしょうか。 実行までのステップが無駄に増えるだけの気がしています。 単純に考えると、中間コード無しで実行可能な機械語を生成するのが効率的なように思えてしまいます。 きっと理由があると思うのですが・・。 わかる方がいらっしゃいましたら教えてください。

    • ベストアンサー
    • PHP
  • .NET Framework 1.1を使う方法

    .NET Framework 1.1がインストールされていないと動かないプログラムがあるのですが、 windows7では.NET Framework 1.1をインストールしようとしても 互換性がないと言われてインストールすることができません。 検索してみると http://msdn.microsoft.com/ja-jp/library/vstudio/ff962563.aspx <configuration> <startup> <supportedRuntime version="v4.0"/> </startup> </configuration> を実行することで.NET Framework 4.0でも実行できるだろうということが分かりました。 しかしながら、このコードでどうやって使うのでしょうか? もしかしてvisual studioでプログラムを書き換える必要があるのでしょうか? プログラムのソースがない場合には動かすことができないのでしょうか?

専門家に質問してみよう