機械語:計算機との対話

機械語:計算機との対話

ITを学びたい

先生、「機械語」ってコンピューターに直接わかる言葉だっていうのは何となくわかるんですけど、私たちが普段使っている言葉とは全然違うんですよね?

IT専門家

そうだね。私たちが話す日本語や英語のような言葉は、コンピューターには直接理解できないんだ。コンピューターが理解できるのは、0と1の数字の組み合わせだけなんだよ。

ITを学びたい

0と1だけ?なんだか難しそうですね…。じゃあ、どうやって私たちが作ったプログラムをコンピューターにわかるようにするんですか?

IT専門家

いい質問だね!私たちが普段プログラムを作る時は、人間にもわかりやすい言葉を使う「高級言語」を使うことが多いんだ。そして、この高級言語で書かれたプログラムを、コンピューターが理解できる0と1の言葉である「機械語」に変換する特別な道具があるんだよ。これを「コンパイラー」などと言うんだ。

機械語とは。

コンピューターの頭脳である中央処理装置(CPU)が直接理解して実行できる命令を数字の列で表した言葉を「機械語」と言います。これは、人間には理解しづらい言葉です。そのため、機械語でプログラムを作る場合は、機械語の命令と一対一で対応する「アセンブリ言語」と呼ばれる言葉を使います。普段私たちが使うアプリケーションソフトを作る際は、より人間に分かりやすい高級言語を使うことが多いです。この場合、高級言語で書かれたプログラムを機械語に変換する必要があります。この変換作業は「コンパイラ」などと呼ばれる翻訳ソフトのようなものを使って行います。機械語は「マシン語」とも呼ばれます。

計算機の言葉

計算機の言葉

計算機は、私たちが日常で使っている言葉のように、日本語や英語をそのまま理解することはできません。計算機が理解できる言葉は、0と1の二つの数字だけを組み合わせたものです。この、0と1の羅列こそが、機械語と呼ばれる計算機の言葉です。

機械語は、計算機の頭脳とも言える中央処理装置(CPU)に直接命令を伝えるための言葉です。計算機を動かすためのあらゆる指示は、最終的にこの機械語に変換されて実行されます。まさに、計算機を動かすための最も基本的な命令の集まりと言えるでしょう。

この命令は、計算機内部にある様々な部品に対して、具体的な動作を指示します。例えば、記憶装置から必要な情報を一時的に保管する場所(レジスター)に読み込んだり、レジスターに保管された値同士を計算したり、ある条件が満たされたときには別の場所に処理を移したりといった指示です。これらの動作の一つ一つが、計算機の働きを支えているのです。

これらの命令はすべて、0と1の数字の組み合わせによって表現されます。そのため、私たち人間にとっては、まるで暗号のように見えます。数字の羅列を見ても、それが何を意味するのか、すぐに理解することは難しいでしょう。しかし、計算機はこの0と1の組み合わせを正確に理解し、高速で処理することで、様々な作業を行います。

機械語は、人間と計算機をつなぐための、最も原始的でありながら、最も重要な言葉と言えるでしょう。私たちが普段使っている様々な道具や機械も、最終的にはこの機械語によって制御されているのです。

項目 説明
機械語 計算機が理解できる言葉。0と1の二つの数字だけを組み合わせたもの。CPUに直接命令を伝える。
CPU(中央処理装置) 計算機の頭脳。機械語によって命令を受け、実行する。
命令の種類 記憶装置からレジスターへのデータ読み込み、レジスター内の値同士の計算、条件分岐など
機械語の表現 0と1の数字の組み合わせ。人間には暗号のように見える。

人間との隔たり

人間との隔たり

計算機が直接理解できる言葉である機械語は、0と1の並びでできています。これは計算機にとっては最適な言葉ですが、人間にとっては理解しづらいものです。0と1の長い列を直接読み書きするのは、とても難しい作業です。例えるなら、電流のオンとオフだけで複雑な小説を書こうとするようなものです。そのため、人間が計算機に指示を出すためには、工夫が必要になります。

そこで登場するのが、アセンブリ言語です。アセンブリ言語は、機械語の命令一つ一つに、人間にもわかりやすい記号を割り当てたものです。「足し算」や「記憶」といった命令を、短い言葉で表現できるので、機械語を直接扱うよりは、プログラムを作りやすく、修正もしやすくなります。しかし、アセンブリ言語は、まだ機械語と一対一で対応しているため、複雑な処理を記述しようとすると、多くの手間と時間がかかります。たとえば、簡単な計算をするだけでも、いくつもの命令を組み合わせる必要があるのです。

このような不便さを解消するために、人間にとってより使いやすい高級言語が開発されました。高級言語は、より人間の言葉に近い表現でプログラムを書くことができます。例えば、数学の公式のような形式で計算を記述したり、文章のような形式で処理の流れを記述したりすることができます。そのため、複雑な処理を簡潔に書くことができ、プログラムを作る時間を大幅に短縮できます。さらに、高級言語を使うと、プログラムの構造を整理しやすいため、他の人が書いたプログラムも理解しやすくなります。これは、大人数で一つの大きなプログラムを作る際に、とても重要な利点となります。現在では、様々な種類の高級言語があり、目的に合わせて使い分けられています。これにより、より効率的に、より複雑なプログラムを開発することが可能になっています。

言語 特徴 メリット デメリット
機械語 0と1の並び 計算機にとって最適 人間にとって理解しづらい、読み書きが難しい
アセンブリ言語 機械語の命令に記号を割り当て 機械語よりプログラムを作りやすい、修正しやすい 複雑な処理を記述するのに手間と時間がかかる
高級言語 人間に近い表現で記述 複雑な処理を簡潔に書ける、プログラム作成時間を短縮、構造を整理しやすい、他人が書いたプログラムも理解しやすい

高級言語との連携

高級言語との連携

私たちが日々使う表計算や文書作成、画像編集といった様々な応用ソフトの多くは、シー言語やジャバ、パイソンといった、人間にとって分かりやすい高級言語を使って作られています。高級言語は、英語のような形で命令を記述できるため、プログラムの作成や修正、管理が容易です。しかし、電子計算機は高級言語を直接理解することはできません。電子計算機が理解できるのは、0と1の組み合わせで表現される機械語だけです。

そこで、高級言語で書かれたプログラムを電子計算機で動かすためには、翻訳機の役割を果たす「編訳器」が必要になります。編訳器は、高級言語で書かれたプログラムを読み込み、それを電子計算機が理解できる機械語に変換します。この変換作業を「編訳」と呼びます。編訳によって生成された機械語のプログラムは、電子計算機が直接実行できる形式になります。こうして、私たちは高級言語で書いたプログラムを電子計算機上で動かすことができるのです。

編訳器には、大きく分けて二つの種類があります。一つは、プログラム全体を一度に機械語に変換する方式です。もう一つは、プログラムを一行ずつ機械語に変換しながら実行する方式です。前者は処理速度が速いという利点がありますが、後者はプログラムの修正が容易という利点があります。

このように、編訳器は、人間が理解しやすい高級言語と、電子計算機が理解できる機械語をつなぐ重要な役割を担っています。編訳器のおかげで、私たちは複雑なプログラムを比較的容易に作成し、様々な応用ソフトを開発することが可能になっているのです。

様々な種類

様々な種類

計算機を動かすための指示は、機械語と呼ばれる言葉で書かれています。この機械語は、数字の羅列で表現されており、人間には理解しにくいです。この機械語の種類は、計算機の心臓部である演算装置によって様々です。

例として、よく知られている演算装置製造会社であるインテル社とアーム社を挙げましょう。これらの会社が作る演算装置は、命令の体系が異なるため、使用する機械語も違います。同じインテル社製の演算装置でも、新しい型のものには、以前にはなかった命令が追加されていたり、命令の処理速度が向上していたりします。そのため、厳密に言うと、機械語は同じではありません。

特定の演算装置のために作られた機械語で書かれた手順書は、他の種類の演算装置では動かないことがほとんどです。これは、機械語が演算装置の構造と深く結びついているためです。異なる構造の演算装置では、命令を一時的に記憶しておく場所の数や種類、記憶装置への情報の読み書き方法などが異なるため、互いに理解し合うことができません。

このように、色々な種類の演算装置で同じ手順書を実行するためには、それぞれの演算装置に対応した機械語で書かれた手順書を用意する必要があります。これは、まるで異なる国の人々に同じ内容を伝えるために、それぞれの国の言葉で翻訳する必要があるのと同じです。翻訳作業なしに、異なる言語を理解することは難しいように、異なる機械語を理解するように演算装置を作るのは、非常に複雑で効率が悪いため、現実的ではありません。

項目 説明
機械語 計算機を動かすための指示。数字の羅列で人間には理解しにくい。
機械語の種類 演算装置(CPU)によって異なる。例:インテル、ARM
同一メーカーでも 新しいCPUには新しい命令が追加されたり、処理速度が向上したりするため、厳密には機械語は異なる。
異なるCPUでの実行 特定のCPU用機械語で書かれたプログラムは、他のCPUではほぼ動かない。CPUの構造(命令の記憶場所、記憶装置へのアクセス方法など)の違いによる。
複数のCPUで同じ処理をするには それぞれのCPUに対応した機械語でプログラムを用意する必要がある。

別名

別名

計算機が直接理解できる言葉は、よく「機械語」と呼ばれます。これは、計算機を「機械」と見なし、その機械専用の言葉という意味合いです。同じ意味で「マシン語」も使われます。こちらは英語の「machine language」をそのまま日本語の文字で書いたものです。つまり、「機械語」と「マシン語」は全く同じ意味で、どちらを使っても問題ありません。

この機械語、あるいはマシン語は、計算機を動かすための基本的な指示です。計算機は、この言葉によって様々な処理を行います。例えば、画面に文字を表示したり、数値を計算したり、データを記憶したりといった動作は、すべて機械語の指示によって行われます。

機械語は、0と1の数字の組み合わせで表現されます。この0と1は、計算機内部の電子回路のオンとオフの状態に対応しています。計算機は、この0と1の並びを解読することで、どのような動作をするべきかを理解します。

機械語は、人間にとっては理解しにくい言葉です。そのため、通常は人間が理解しやすいプログラミング言語を使ってプログラムを作成し、それを機械語に変換する特別な道具を使います。この道具を「翻訳機」のようなものと考えると分かりやすいでしょう。人間が書いたプログラムを、計算機が理解できる機械語に翻訳してくれるのです。

機械語は、計算機を理解する上で非常に重要な概念です。計算機がどのように動作するのか、その仕組みを理解するためには、機械語の存在とその役割を理解することが欠かせません。計算機の基礎を学ぶ上で、機械語は避けては通れない重要な知識と言えるでしょう。

用語 説明
機械語/マシン語 計算機が直接理解できる言葉。0と1の数字の組み合わせで表現される。
役割 計算機を動かすための基本的な指示。画面表示、数値計算、データ記憶など、全ての動作はこの指示によって行われる。
人間にとっての理解度 理解しにくい。そのため、通常はプログラミング言語を機械語に変換する道具を使用する。
重要性 計算機を理解する上で非常に重要な概念。