• ベストアンサー

マシン語について

まったくの素人がこのカテゴリーで質問するのも どうかなと思ったのですがお許し下さい。 コンピューターが理解できるのはマシン語なんですよね。 このマシン語っていうのは世界共通ですか? 例えて言えばAという処理をする場合どんなプログラミング言語で 書いてもひとつのマシン語にいきつくということなのかという事 なんですが・・・。もうひとついえば炊飯器だろうがNASAの ロケットだろうがコンピューターが理解してるのは同じマシン語 なのかということなんですが 言ってる事わかりますでしょうか? わけわからなかったら無視してください。すみません。 変な質問?ですみません。

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

  • ベストアンサー
  • vaio09
  • ベストアンサー率37% (756/2018)
回答No.2

同じマシン語ではありません。 総じてアセンブラ(アセンブリ言語)と呼ばれるものです。 今の方々はご存じないかもしれませんね。 「人間には理解しづらいが、機械にはとっても理解しやすい言語」と言えます。 BASICとかC言語とか、英単語に近いので、人間が理解するのはたやすいのですが、これを機械に処理させるときは、いったん「人間語から機械語に翻訳する」という作業が入ります。そのため、実行速度が(相対的に)とっても遅くなるのです。 アセンブラなら、最初から機械が理解しやすい構造で書かれていますので、処理速度がとても速いです。 大昔に8ビットマイコンの組み立てを行った経験のある方の多くは、アセンブラを勉強したものです。(それ以外なかったので) 今ではコンピュータの処理速度の進化がめざましいため、高級言語で組んでもマクロ的には大差ないのでしょうね。 CPUが16ビット、32ビット、64ビットと進化していったため、ほぼ絶滅したようです。 尚、このアセンブラ言語は、方言がたくさんあって、あまり汎用性は高くありません。8ビットのころは、メーカー毎にハード仕様が異なっていました。なのでソフトであるアセンブラにも全く互換性がありません。NECと富士通とIBMでは、全く互換性が無かったのです。 だからこそ、メーカー毎に個性があり、コアなユーザーも生まれました。 私大昔にインテルやモトローラのアセンブラ(やニーモニックと呼ばれる数字の羅列)を覚えましたけど、今でも処理系の設計には、当時の勉強が役に立ってますよ。だから、機会が有れば勉強されても良いでしょう。

b-mamoru
質問者

お礼

マシン語にもいろいろあるんですね。 アセンブラは聞いたことがあります。 こういうのでプログラムを組めればすごいですよね。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • dekopa-
  • ベストアンサー率42% (161/378)
回答No.3

マシン語は、CPUによって異なります。 しかし全てのCPUで互換性がないと困るので、より上位のCPUは下位のCPUの命令も含んでいる場合が殆どです。この「命令群が共通のCPU」を「ファミリ」「シリーズ」などと呼んでひとくくりにします。 例えば、Windowsが動作するのは「Intel x86」命令をサポートしたIntel社のPentium, Celeron, Core2Duo等がファミリ扱いされます。 あるいは別会社であるAMDが作ったAthron64, Opteron, Sempron等も含まれます。(あまり「ファミリ」とは言わず、「互換CPU」と言われますが) 他にも、ARM系、SH系、Power系(XBOX360やPS3のCELL(の一部))など、同じ命令セットをサポートするCPUがあります。 まあ、世界中で別々の民族が、それぞれ独自の言語で会話している様子をCPUの当てはめれば、だいたい似たような物かと。

b-mamoru
質問者

お礼

いろいろあるんですね。 いまだに私にとっては不思議な世界です。 プログラムを組める人ってほんと尊敬します。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
noname#69788
noname#69788
回答No.1

>このマシン語っていうのは世界共通ですか? 機種やCPUに依存します。世界共通の言語を使いたいのであれば、JAVAを使ってください。

b-mamoru
質問者

お礼

どうもありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • コンパイルしたらマシン語になる?

    基本的な質問かもしれないのですが: ●プログラミング言語をコンパイルしたらマシン語になるのでしょうか? ●マシン語になるとしたら、なぜ、Windowsのgccでコンパイルした実行ファイルはUnix上で動かないのでしょうか? C言語などのプログラミング言語は人間が理解できる言葉で書かれていて、これをマシン(例えばIntelのCPU)が理解できる言葉に変換するのが「コンパイル」だと今まで私は理解していました。だから、IntelのCPU上でコンパイルした場合、他のCPUでは動かないのだと納得していました。 しかし、IntelのCPUが理解する言葉になるのであれば、WindowsでコンパイルしてもUnixでコンパイルしても IntelのCPUの言葉になっている点で変わりがないような気がします。しかし、Windowsでコンパイルした実行ファイルはUnixでは動かないですよね。私は根本的な勘違いをしていると思うのですが、それが何かを教えて頂けると幸いです。

  • 今はマシン語は使わないんですか?

    15年位前に、MSX2という機種で、 BASICとマシン語のプログラミングを 趣味でやってたんですが、 そのころからC言語はありましたが、 久々に趣味でまたやり始めようと思うんですが、 本屋を見ると、CやJAVAという言葉が 多いみたいです。 昔がんばってマシン語のニーモックを 覚えたりしてたので、今はマシン語って 使わなくなったんでしょうか? あとベーシックも、ビジュアルベーシックというのしか ないのですが、昔のベーシックはコンパイルしなくても 走るやつだったんですが、そういう言語はなくなったんでしょうか? 使ってるパソコンは、windowsMEです。 ブランクが10年ほどありますのでさっぱりわかりません。 詳しい方教えてください。

  • 『BASIC』は今はどうなっているのでしょうか?

    幼少の時に家にあるコンピューターを 殆ど理解していないながら色々触ってました 確か…コンピュータ用の言葉であるマシン語というのがあって それだと人間は分かりにくいから『BASIC』という言葉を使って コンピューターに指示を出すみたいなそんな事を教えて貰ったような… 左に10とか20とか1030とか番号が並んでいて 何故か『GO TO ~~~』で好きな番号の所に飛べる、というのだけ妙に覚えてます この『BASIC』っていうプログラム言語は やはり今ではもう全く使われていないのでしょうか? 大型書店のプログラミングの所で成書を探し回りましたが全く見つからないので もう過去のものという事でしょうか? ここのカテゴリでもないですし(^^; (使われていないとしたら、何か理由もあるのでしょうね) プログラミング(の歴史?)にお詳しい方 宜しくお願い致します

  • マシン言語をC言語に変換することってできるんでしょうか??

    プログラミング系はまったくもって初心者です。 単純に興味からなのですが C言語→コンパイル→マシン言語 これは理解できたのですが この逆についてはできるのでしょうか?? もしできるのならやり方など教えていただければなと思います。 よろしくお願いします。

  • この質問はどこのカテゴリーに?

    すみません。 言語学は、どこのカテゴリーで、お聞きするのがよいのでしょう。 (日本語だけでなく、世界の言語に共通する)母国語習得に関する質問です。 どなたか教えてください。

  • 英語よりラテン語???

    ほかのカテゴリーで、「世界のことをよりよく知るには」という趣旨の質問に、「英語を勉強するより、聖書とシェークスピアをよんで、ラテン語を勉強するほうがいい」という回答を頂きました。 聖書とシェークスピアを読むというのは理解できるんですが、ラテン語を英語よりも重要といっているところが理解できません。どういうことなのでしょう?誰か教えてください。 ちなみに、もし、これがラテン語から派生した言語の習得が早まるということなら、それはやっぱり、一つ一つの言語を覚えていったほうが早いのではと思います。

  • ”÷”とか”×”は日本語?

    このカテゴリで質問する内容かわからないのですが、 ”÷”とか”×”の記号は、日本語なのでしょうか? 世界共通の記号なのでしょうか? 世界共通だとしたら、英語版のワープロソフトなどでは、”÷”とか”×”をどうやって表示しているのでしょうか? よろしくお願いします。

  • IPアドレスは低レベル言語それともマシン語ですか。

    単純素朴な質問ですが、 IPアドレスは低レベル言語ですか、それともマシン語(ネイティブ言語)ですか。 わかる方よろしくお願いします。

  • なぜプログラミングは英語なのでしょうか?

    プログラミングはなぜ英語なのでしょうか? 日本語のプログラミングもあるそうですが、用途が限られているみたいです。 英語以外のコンピュータ言語の場合、オブジェクトコードに変換するために数段階の変換-つまり英語に-がなされるので複雑になり、処理速度も遅くなるようです。 コンピュータ言語は英語つまりラテン語・ギリシャ語系列の表音文字が適しているのでしょうか。アセンブリ言語がローマ字、アラビア数字になじみやすいからでしょうか?コンピュータ=白人文化・・・ASCIIが世界標準になっているせいもあると思いますが、まるでコーカソイドの独占ですね。 プログラムのことをよく理解していない上での質問かもしれませんが、教えていただければ助かります。よろしくお願い致します。 【疑問点】 1.コンピュータ言語は、なぜ英語なのでしょうか? 2.ローマ字、アラビア数字は機械語に直すとき、処理しやすいのでしょうか? 3.漢字など表意文字は、コンピュータ言語としてあり得ないのでしょうか?(補足:コンパイルしにくい?)

  • 外国語を使わずに外国人とわかりあえるもの

    外国人とコミュニケーションをとるにはまずその国の言語を学ぶほうが良いと思っていましたが、必ずしもそうではない場合があります。 数字や数学の公式は世界共通ですね。化学の元素記号も世界共通だと思います。 長さ・重さ・量などの単位は?音符はどうなんでしょう? スポーツを通してわかりあえる人もいれば、音楽を通してわかりあえる人もいます。 外国語を使わずに外国人とコミュニケーションがとれる共通言語や記号または手段など、ほかに何があるのでしょうか?