• ベストアンサー

HTML,Java等はなぜOSに依存しないのか

neanderthalensisの回答

  • ベストアンサー
回答No.2

本質的な部分はすでに回答のあったとおりでよいと思い ますが、もう少し易しい説明を試みてみたいと思います。 「OSや機種依存のない」プログラミング言語やHTMLのよ うなものは、要するに機種やOSの違いを埋めるプログラ ムを介して用いらるものになっているということです。 HTMLであれば、ブラウザソフトが、Javaであればプログ ラムで組まれた仮想計算機が、いわばそれぞれの機種、 OS上で仮想的なマシンとして共通の命令を処理すると考 えていただければよいのではないでしょうか。したがっ て、いかなるOSであれ、コンピュータであれ、そのよう な中間的な処理をするプログラムがなければ、Javaなり HTMLなりが作動してくれはしません。 逆にいえば、Basicであれ、Cであれ、そのような処理を 行うプログラムが存在しさえすれば、機種やOSの壁を越 えて同じように使用できるわけです。現代がインターネッ トの普及期にあたるため、ネットで幅広く用いられてい るJavaとHTMLに脚光が浴びせられているためにこの2つ が目立つのでしょうが、考え方そのものはそれほど新し くはありません。 Common Lisp、Perl、あるいは新しいところでRubyのよ うなインタプリタで処理されるプログラム言語やスクリ プト言語なども、機種、OSを越えて使用されています。 こうしたプログラムは、インタプリタ=通訳という言葉 どおり、その都度、特定機種のための機械語にソースプ ログラムを解釈しなおさなければなりません。そのため、 実行速度が遅くなるといわれています。 先に回答のあったC言語のような場合は、言語そのもの の規格がANSIに準拠したものになっていれば、それぞれ の機種上で作動するコンパイラによって、その機種向き の機械語に翻訳されます。したがって、ソースは機種の 壁を越えますが、コンパイルされたプログラムはその機 種以外では作動しません。 Javaの場合は、両者の中間の道を選択しているというふ うに理解してよいと思います。昔々のPascalにもそのよ うなものがあったと思いますが、ソースプログラムを、 中間言語(ソースプログラムのような可読性はありませ ん)にコンパイルして、コンピュータ上に作られた仮想 機械(プログラムで作られたコンピュータだと思ってく ださい)上で作動させるわけです。インタプリタよりは 実行速度を上げることが可能ですし、どのようなプログ ラムの組み立てられ方がなされているかを秘匿しておく ことも可能になります。 ちょっと説明がごちゃごちゃしちゃいましたが、ポイン トは、プログラムと特定マシンの間で中間的な処理を行 うプログラムが存在しており、そのおかげで、機種やOS の壁を越えることができるのだ、ということです。

関連するQ&A

  • java HTML

    HTMLなどのWebデザイナー畑の人間が Javaなどのプログラミング言語をHTMLの癖がついちゃった後に覚えるのは無理がありますか?

    • ベストアンサー
    • Java
  • HTMLからJava

    HTMLのFORMタグから送信した情報を サーブレットを使わずローカルでJavaアプリに渡して 、処理内容を分けることは可能でしょうか? javaでFORMの内容をどうやって受けとるのかわからない ので。

    • ベストアンサー
    • HTML
  • JavaとHTMLについて

    Java初心者です。アプレットを使ってプログラムしています。HTMLには<applet> のタグをつかってclassファイルをHTMLの中に取り込みますが、他の方法もあるのでしょうか?<embed><object>とかも無理して使えるのでしょうか?Web上でJavaを扱う際に、アプレット以外の方法があれば知りたいのですが。また、そういったものを調べるのに適したサイトや書籍をお教え下さい。お願いします

  • JAVAはどんな事が出来ますか?

    javaの参考書を買ってきたのですが、いまいちjavaがどこまで出来るのか分からないんです。 プログラム言語と言うことはCとかと変わらない能力を持っているのですか? 参考書を買ってしてもまだ、javaをただの記述言語としか思っていません。お願いします。

  • javaアプリケーションをHTML上から実行する

    JAVAアプレットの場合は、HTML上で実行するときに 目的のクラスファイルを<applet>タグで囲んで実行しますが、 これがJavaアプリケーションの場合、HTML上から Javaアプリケーションを実行することは可能なのでしょうか? また可能な場合は、どのようにしてJavaアプリケーションを 実行すればよろしいのでしょうか?

    • ベストアンサー
    • Java
  • Integer型のサイズリミットはマシン又はコンパイラーに依存する?(C, Java, Pascal, Ada)

    学校の課題で困ってます。 整数型のサイズのリミットはマシンやコンパイラで依存する言語とそうでない言語がありますよね??CやC++は依存してJavaは依存しないと思うんですがAdaやPascalではどうなのですか?これらはあまり詳しくないのでわかりません。 詳しい方いたらお願いします。 もしCやJavaについても違うとかありましたら言ってください。

  • HTMLでPerlみたいに計算は出来ますか?

    HTMLだけで1+1やC言語の繰り返しforなどは出来るのでしょうか? また出来るのであればタグを教えてください。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • javaでhtmlを解析する方法

    Java言語を使ってhtmlのリンク切れチェックと任意のタグの中の文字列を抽出をするソースコードを具体的に知りたいです。 もし、知っている方がいらっしゃったら教えて下さい。お願いします<m(__)m>

  • OSによって自動で表示させるものを分ける

    HTMLタグについての質問です OSによって、自動的に文章を変えたいのですが、可能でしょうか。 または、同じリンクをクリックしてもリンク先が変わるでもいいです。 自分のレベルですが、中級程度です。C++は分かりませんが、Javaは分かります。

  • JavaからCへ

    僕は今までJavaを勉強していたのですが、 つい最近になって、C言語に手をつけ始めました。 Javaを知っていればC言語は結構とっつきやすいのではないかと思って始めたのですが、Javaに慣れすぎたせいか、C言語の文法がどうもしっくりきません。 特に関数あたりが・・・・。 C言語の関数って、Javaでいうところのメソッドですよね? 僕はそのように解釈しているのですが、あまり自信がないので、ご存知の方がいましたらどなたか教えてください。 あと、Javaを学習した人のためのC言語の本、もしくはC言語を学んだ人のためのJavaの本がありましたら教えてください。

    • ベストアンサー
    • Java