目的プログラムってなに?
ITの初心者
先生、「目的プログラム」って、どんなものですか?
ITアドバイザー
いい質問だね!コンピュータは、実は人間が普段使っている言葉は理解できないんだ。そこで、人間が書いたプログラムを、コンピュータが理解できる言葉、『機械語』に翻訳する必要があるんだよ。この翻訳された後のプログラムのことを『目的プログラム』って言うんだよ。
ITの初心者
へえー、そうなんですね!じゃあ、翻訳する前のプログラムは何て言うんですか?
ITアドバイザー
それは「ソースプログラム」って言うんだ。人間が理解しやすい言葉で書かれたプログラムのことだよ。まとめると、人間が書いた「ソースプログラム」をコンピュータが理解できる「目的プログラム」に翻訳することで、コンピュータは初めてプログラムを実行できるようになる、ということだね!
目的プログラムとは。
「コンピュータの世界で使われる言葉で、『目的プログラム』というものがあります。これは、人間にも分かりやすい言葉で書かれたプログラムを、コンピュータが直接理解できる言葉に変換したものです。この変換された言葉のことを『オブジェクトコード』とも言います。」
プログラムの種類
– プログラムの種類人間とコンピュータ、それぞれの理解コンピュータの世界では、プログラムは大きく分けて二つの種類に分けられます。一つは私たち人間が理解しやすいように作られたプログラム、もう一つはコンピュータが直接理解できる形のプログラムです。私たちが普段、プログラミング言語を使って書いているプログラムは、人間にとって理解しやすいように設計されたものです。これをソースプログラムと呼びます。ソースプログラムは、私たちが日常的に使う言葉に近い形で命令や処理手順を記述することで、プログラムの構造や動作を理解しやすくしています。しかし、コンピュータはソースプログラムをそのままの形では理解することができません。コンピュータが理解できるのは、機械語と呼ばれる特殊なコードのみです。そこで、ソースプログラムを機械語に変換する必要があります。この変換作業を行うのが、コンパイラやインタプリタと呼ばれる特別なプログラムです。コンパイラやインタプリタによってソースプログラムが機械語に変換されたものが、目的プログラムです。目的プログラムは、コンピュータが直接実行できる命令で構成されており、コンピュータはこれを読み込むことで、プログラムに書かれた処理を実行します。このように、私たちが書くプログラムとコンピュータが実行するプログラムは異なる形式をとっていますが、どちらもコンピュータを動かすために欠かせないものです。そして、これらのプログラムを使いこなすことで、私たちはコンピュータをより便利に活用していくことができるのです。
プログラムの種類 | 説明 | 理解しやすい対象 |
---|---|---|
ソースプログラム | 人間が理解しやすいようにプログラミング言語で書かれたプログラム | 人間 |
目的プログラム | コンピュータが直接理解できる機械語で書かれたプログラム | コンピュータ |
変換を行うプログラム | 説明 |
---|---|
コンパイラ / インタプリタ | ソースプログラムを目的プログラムに変換する |
翻訳の役割
– 翻訳の役割
人間が作ったプログラムをコンピュータが理解できるように変換する作業は、まるで外国語を翻訳する過程に似ており、「翻訳」と呼ばれています。この重要な役割を担うのが、「コンパイラ」と「インタープリタ」と呼ばれる専用のプログラムです。
コンパイラは、ソースプログラム全体を一度に解析し、コンピュータが理解できる言葉である機械語で書かれた目的プログラムを作成します。人間で例えるなら、分厚い本を一冊丸ごと翻訳し、別の言語で書かれた全く新しい本を作り出すようなものです。一方、インタープリタは、ソースプログラムを一行ずつ読み込みながら、その場で機械語に変換して実行します。これは、通訳者が話された言葉をその場で逐次翻訳していく様子に似ています。
どちらの方法にも利点と欠点があります。コンパイラは、一度目的プログラムを作成してしまえば、その後は何度でも高速に実行できます。しかし、プログラムを変更する場合は、再度翻訳作業が必要となります。一方、インタープリタは、プログラムの変更をすぐに反映して実行できますが、実行速度はコンパイラに比べて遅くなる傾向があります。
このように、プログラムをコンピュータが理解できる形に変換する「翻訳」は、プログラムを実行するために欠かせないプロセスであり、コンパイラとインタープリタはその重要な役割を担っています。
項目 | コンパイラ | インタープリタ |
---|---|---|
翻訳方式 | ソースプログラム全体を一度に機械語に変換 | ソースプログラムを一行ずつ機械語に変換して実行 |
実行速度 | 高速 | 低速 |
変更の反映 | 再翻訳が必要 | 即時反映 |
例え | 分厚い本を一冊丸ごと翻訳 | 通訳者が逐次翻訳 |
目的プログラムの中身
– 目的プログラムの中身
私たちが普段、パソコンやスマートフォンで利用しているアプリケーションは、実は複雑なプログラムの塊です。これらのプログラムは、人間が理解しやすいように設計されたプログラミング言語で書かれています。しかし、コンピュータは、これらのプログラミング言語を直接理解することはできません。
コンピュータが理解できるのは、機械語と呼ばれる0と1の数字の羅列のみです。この機械語で書かれたプログラムが、 -目的プログラム- と呼ばれるものです。
目的プログラムは、コンピュータの頭脳であるCPUに対して、一つ一つの動作を細かく指示します。 例えば、「データをメモリから読み込む」「計算を行う」「結果を表示する」といった指示を、すべて0と1の組み合わせで表現します。
私たち人間にとって、0と1の羅列は理解しにくいものです。しかし、コンピュータにとっては、この形式こそが最も効率的に処理できる形式なのです。 目的プログラムは、コンピュータと人間をつなぐ、重要な役割を担っていると言えるでしょう。
目的プログラムとオブジェクトコード
– 目的プログラムとオブジェクトコードコンピュータプログラムを作成する際、人間が理解しやすいプログラミング言語を使ってコードを書きます。しかし、コンピュータはこのままでは理解することができません。そこで、人間が書いたプログラムをコンピュータが理解できる言葉(機械語)に変換する必要があります。この変換されたものを「目的プログラム」と呼びます。目的プログラムは、しばしば「オブジェクトコード」と呼ばれることもあります。ただし、厳密に言うと両者は同じではありません。オブジェクトコードは目的プログラムの一部であり、プログラムの実行に必要な命令やデータが含まれています。オブジェクトコードだけでは、プログラムとして完成しているわけではありません。例えば、他のプログラムの一部を呼び出して利用する場合、その呼び出し先との関連付けがされていません。そこで、「リンカ」と呼ばれるプログラムが登場します。リンカは、複数のオブジェクトコードを結合し、それぞれの参照関係を解決することで、最終的にコンピュータが実行可能なプログラムを作成します。つまり、私たちが普段使っているソフトウェアは、複数のオブジェクトコードがリンカによって結合された結果であると言えます。
用語 | 説明 |
---|---|
プログラミング言語 | 人間がプログラムを作成するために使う、人間にとって理解しやすい言語。 |
機械語 | コンピュータが直接理解できる言語。 |
目的プログラム | プログラミング言語で書かれたプログラムを機械語に変換したもの。オブジェクトコードと呼ばれることもある。 |
オブジェクトコード | 目的プログラムの一部であり、プログラムの実行に必要な命令やデータが含まれる。他のプログラムとの関連付けはされていない。 |
リンカ | 複数のオブジェクトコードを結合し、それぞれの参照関係を解決して、実行可能なプログラムを作成するプログラム。 |
まとめ
– まとめ
私たちが普段、パソコンやスマートフォンで利用している様々なプログラム。これらのプログラムは、実はそのままの形ではコンピュータは理解することができません。コンピュータが理解できるのは、機械語と呼ばれる特殊な言葉で書かれた命令だけです。
そこで活躍するのが、「目的プログラム」です。私たちが作成したプログラムは、特別な翻訳機によってコンピュータにも理解できる機械語に変換されます。この翻訳されたプログラムこそが目的プログラムなのです。
目的プログラムは、コンピュータ内部で実行され、私たちが指示した通りの処理を行います。例えば、画面に文字を表示したり、計算を行ったり、インターネットに接続したりなど、あらゆる動作の背後には、この目的プログラムが活躍しています。
普段、私たちがコンピュータを使う上で、目的プログラムを意識することはほとんどありません。しかし、陰ながら私たちの生活を支えるコンピュータの動作を支える、無くてはならない存在と言えるでしょう。