オブジェクトコード:機械語への翻訳

オブジェクトコード:機械語への翻訳

ITの初心者

『目的プログラム』って、何ですか?

ITアドバイザー

人間が書いたプログラムを、コンピューターが理解できる言葉に翻訳したものを指します。コンピューターは0と1しか理解できないので、人が書いたプログラムをそのままでは実行できません。そこで、翻訳が必要になるのです。

ITの初心者

翻訳って、具体的にどういうことですか?

ITアドバイザー

例えば、人間が『こんにちは』と書いたとします。これをコンピューターが理解できる0と1の言葉、例えば『01101000 01101001』のような形に変換するのです。この変換されたものが目的プログラムで、コンピューターはこの0と1の指示に従って動きます。

object codeとは。

コンピューターに関連する言葉である「目的プログラム」について説明します。人間が理解しやすい言葉で書かれたプログラムを、コンピューターが直接理解し、実行できる言葉(機械語)に変換したもののことです。この変換作業をする道具は、コンパイラーやアセンブラーなどです。元の、人間が書いたプログラムのことを「ソースコード」と言います。目的プログラムは、「オブジェクトプログラム」「機械語プログラム」「実行可能プログラム」などとも呼ばれます。

プログラムの形式変換

プログラムの形式変換

皆さんが日々パソコンや携帯電話で使う様々な道具は、作り手によって特別な言葉を使って作られています。しかし、機械はこれらの言葉をそのままでは理解できません。機械が分かるのは、0と1の組み合わせだけなのです。ちょうど電気が通っているかいないかのような単純な信号で、複雑な命令を表しているのです。

ですから、特別な言葉で書かれた指示を機械に実行させるには、まず0と1の組み合わせに変換する必要があります。この変換されたものを、例えるなら設計図から組み立てられた部品のようなものだと考えてください。この部品こそが、機械が直接理解し、動かせる形なのです。

変換作業には、大きく分けて二つの方法があります。一つは、プログラム全体を一括して変換する方法です。これは、まるで料理のレシピ全体を一度に調理手順に変換するようなものです。もう一つは、プログラムを少しずつ変換しながら実行する方法です。こちらは、レシピを見ながら一品ずつ料理を作るようなものです。

それぞれに利点と欠点があります。一括変換方式は、一度変換すれば後で速く実行できますが、変換に時間がかかります。少しずつ変換する方式は、すぐに実行開始できますが、全体としては時間がかかる場合があります。

どちらの方法が良いかは、プログラムの種類や使い方によって異なります。例えば、ゲームのように素早い動作が求められる場合は、一括変換方式が選ばれることが多いでしょう。一方、大きな表計算ソフトのように、使いたい部分だけをすぐに動かしたい場合は、少しずつ変換する方式が適しています。

このように、目に見えないところで、様々な工夫が凝らされていることで、私たちは快適に道具を使うことができるのです。

変換方式 説明 利点 欠点 適した用途
一括変換 プログラム全体を一度に0と1に変換 変換後の実行速度が速い 変換に時間がかかる ゲームなど、素早い動作が求められるもの
逐次変換 プログラムを少しずつ変換しながら実行 すぐに実行開始できる 全体の実行時間が長くなる場合がある 表計算ソフトなど、使いたい部分だけをすぐに動かしたいもの

翻訳の役割

翻訳の役割

計算機は、人が日常的に使う言葉は理解できません。計算機が理解できるのは、機械語と呼ばれる特殊な言葉だけです。この機械語は、0と1の数字の羅列でできています。人が計算機に何か仕事をさせたいときは、この機械語で指示を出さなくてはなりません。しかし、機械語は複雑で、人が直接扱うのはとても大変です。そこで、人が理解しやすい言葉で指示を書き、それを機械語に翻訳するという方法が考えられました。この、人が理解しやすい言葉で書かれた指示が、プログラムと呼ばれるものです。

プログラムを書くための言葉は、様々な種類があり、それぞれプログラム言語と呼ばれています。プログラム言語には、計算の手順を分かりやすく表現できるものや、図形を描くのに適したものなど、様々な種類があります。まるで、世界には日本語や英語など、様々な国の言葉があるのと同じです。そして、プログラム言語で書かれたプログラムを、機械語に翻訳する特別な道具があります。それが、翻訳者と呼ばれるプログラムです。

翻訳者には、大きく分けて二つの種類があります。一つは、文章全体を一度に翻訳する翻訳者です。この翻訳者は、プログラム全体を一度に機械語に変換します。もう一つは、少しだけ機械語に近い言葉に翻訳する翻訳者です。この翻訳者は、組み立て言葉と呼ばれる、機械語に近い言葉に翻訳します。そして、組み立て言葉を機械語に翻訳する別の翻訳者を使って、最終的に機械語に変換します。

このように、人が書いたプログラムを、計算機が理解できる機械語に変換することは、人と計算機がうまく共同作業をするために、とても重要な役割を果たしています。まるで、異なる国の言葉を使う人々が、翻訳者を通して意思疎通を図るように、プログラム言語と翻訳者のおかげで、私たちは計算機に複雑な仕事をさせることができるのです。

項目 説明
機械語 計算機が理解できる0と1の数字の羅列
プログラム 人が理解しやすい言葉で書かれた計算機への指示
プログラム言語 プログラムを書くための様々な種類の言葉
翻訳者 プログラム言語で書かれたプログラムを機械語に翻訳するプログラム
翻訳者の種類1 プログラム全体を一度に機械語に翻訳
翻訳者の種類2 プログラムを組み立て言葉に翻訳し、別の翻訳者で機械語に変換
組み立て言葉 機械語に近い言葉

目的プログラム

目的プログラム

目的プログラムとは、いわゆる機械語で書かれたプログラムのことを指します。人間が理解しやすいプログラミング言語で書かれたプログラムは、そのままでは計算機は理解できません。そこで、人間が書いたプログラムを計算機が理解できる言葉に変換する必要があります。この変換されたものが目的プログラムと呼ばれ、計算機上で直接実行できる形式になっています。

もう少し詳しく説明すると、私たちが普段プログラムを作る際には、人間にとって分かりやすいプログラミング言語(例えば、シー言語やじゃばなど)を使います。これをソースコードと呼びます。しかし、計算機はこのソースコードを直接理解することはできません。計算機が理解できるのは、0と1の並びで表現される機械語だけです。そこで、ソースコードを機械語に変換するための特別な道具が必要になります。それが、翻訳機のような役割を果たす「編訳器」や「組み立て器」と呼ばれるものです。

編訳器または組み立て器がソースコードを読み込み、それを機械語に変換します。この変換された機械語のプログラムこそが、目的プログラムなのです。目的プログラムは、計算機が直接実行できる命令の集まりであり、私たちがプログラムとして利用できる形になっています。

つまり、目的プログラムは、人間と計算機の間の橋渡しをしていると言えます。人間が書いたプログラムを計算機が理解できる形に変換し、計算機上で実行できるようにすることで、様々な便利な機能を実現することを可能にしています。

また、目的プログラムは「対象プログラム」と呼ばれることもあります。これは、目的プログラムが最終的に計算機上で実行されることを目的としているためです。つまり、計算機の動作対象となるプログラムという意味で、対象プログラムとも呼ばれるわけです。

他の呼び方

他の呼び方

プログラムを作る際、人間が理解しやすい言葉で書かれた命令を、コンピューターが直接理解できる言葉に変換する必要があります。この変換された命令のことを、「目的コード」と呼びます。目的コードは、コンピューターの種類によって異なる機械語で表現されます。

この目的コードには、他にもいくつかの呼び方があります。「目的プログラム」と呼ばれることもありますが、これは目的コードがプログラム全体を構成していることを強調した呼び方です。また、「生まれたままの言葉」を意味する「ネイティブ」という言葉を用いて、「ネイティブコード」または「ネイティブプログラム」と呼ばれることもあります。これは、特定の種類のコンピューターのために作られた機械語であることを示しています。

これらの呼び方は、話す場面や状況によって使い分けられますが、どれも基本的には同じものを指しています。つまり、人間が書いたプログラムを、コンピューターが実行できる形に変換したものを意味しています。

目的コード、目的プログラム、ネイティブコード、ネイティブプログラム、これらの言葉はどれも、コンピューターがどのようにプログラムを理解し、実行するのかを学ぶ上で重要な言葉です。それぞれの言葉が持つ微妙なニュアンスを理解することで、コンピューターの仕組みへの理解を深めることができます。

少し複雑に感じるかもしれませんが、これらの用語はすべて、プログラムを機械語に変換したものを指していることを覚えておけば大丈夫です。今後、これらの言葉に出会ったときも、落ち着いて意味を理解することができます。

用語 説明
目的コード 人間が書いたプログラムをコンピュータが実行できる形に変換したもの
目的プログラム 目的コードがプログラム全体を構成していることを強調した呼び方
ネイティブコード 特定の種類のコンピュータのために作られた機械語
ネイティブプログラム ネイティブコードと同じ意味で、プログラム全体を指す場合に使われる

ソースコードとの関係

ソースコードとの関係

人間が書いた指示書である原始計画書と、機械が直接読み取る実行計画書のような関係が、原始計画書と目的計画書の間にはあります。原始計画書は、人間が理解しやすい言葉で書かれています。例えるなら、料理のレシピのように、材料や手順が分かりやすく記述されています。しかし、機械はこの原始計画書を直接理解することはできません。機械は、自分専用の言葉で書かれた指示書が必要です。これが、目的計画書です。目的計画書は、機械が直接実行できる形式で記述されています。まるで、機械の内部回路に直接送られる電気信号のようです。人間には理解しにくい複雑な記号の羅列ですが、機械にとっては明確な指示となります。

原始計画書と目的計画書は、もの作りにおいて表裏一体の関係にあります。どちらも欠かせない要素です。料理人は、まずレシピ(原始計画書)に基づいて料理を構想します。そして、そのレシピを基に、実際に調理を行います。この時、料理人は頭の中でレシピを解釈し、具体的な手順に落とし込んでいます。この手順こそが、目的計画書に相当します。

もの作りの現場では、原始計画書の修正と目的計画書への変換を繰り返すことで、製品の完成度を高めていきます。例えば、新しい試作品を作る際には、まず原始計画書を作成します。そして、その原始計画書を基に試作品を製作します。試作品を評価し、問題点が見つかれば、原始計画書を修正します。そして、修正した原始計画書に基づいて、再度試作品を製作します。この繰り返しによって、より完成度の高い製品が作られていきます。原始計画書と目的計画書は、まるで車の両輪のように、もの作りを支える重要な役割を担っています。

項目 説明
原始計画書 人間が理解しやすい言葉で書かれた指示書 料理のレシピ
目的計画書 機械が直接実行できる形式で記述された指示書 機械の内部回路に送られる電気信号
関係性 表裏一体、どちらももの作りに不可欠 料理人はレシピ(原始計画書)を基に、頭の中で手順(目的計画書)に落とし込んで調理を行う
もの作りにおける役割 原始計画書の修正と目的計画書への変換を繰り返すことで、製品の完成度を高める 試作品作成→評価→原始計画書修正→試作品作成…

まとめ

まとめ

プログラムを作る際には、人間が理解しやすい言葉で書かれた命令の集まり、いわゆる原始プログラムを作成します。しかし、コンピューターはこの原始プログラムを直接理解することはできません。コンピューターが理解できるのは、0と1の数字の羅列、すなわち機械語だけです。そこで、原始プログラムを機械語へと変換する作業が必要となります。この変換作業を担うのが、翻訳者のような役割を果たす翻訳処理系と呼ばれるものです。この翻訳処理系には、組み合わせ翻訳系と解釈実行系の二種類があります。

組み合わせ翻訳系は、原始プログラム全体を一度に機械語に変換します。こうして生成された機械語の塊が、目的プログラムと呼ばれるものです。目的プログラムは、実行可能なプログラムファイルとして、コンピューター上で直接実行することができます。目的プログラムは、機械語で記述されているため、実行速度が速いという利点があります。

一方、解釈実行系は、原始プログラムを一行ずつ機械語に変換しながら実行します。そのため、実行のたびに逐次変換を行う必要があるため、組み合わせ翻訳系に比べて実行速度は遅くなります。しかし、プログラムの修正が容易であるという利点があります。

この目的プログラムは、固有のプログラム、あるいは本来のプログラムといった別名で呼ばれることもあります。これらの呼び名は、機械語で記述された、コンピューターに直接実行されるプログラムであることを強調した表現です。これらの知識は、プログラムがどのようにしてコンピューター上で実行されるのかを理解する上で非常に重要です。そして、この理解は、より効率的で効果的なプログラム作成に繋がります。

翻訳処理系 変換方式 実行速度 修正容易性 別名
組み合わせ翻訳系 原始プログラム全体を一度に機械語に変換 速い 低い 目的プログラム、固有のプログラム、本来のプログラム
解釈実行系 原始プログラムを一行ずつ機械語に変換しながら実行 遅い 高い