目的プログラム:機械が理解する言葉
ITを学びたい
先生、『目的プログラム』って、何のことですか?
IT専門家
簡単に言うと、コンピュータが直接理解して実行できる命令の列のことだよ。人間が書いたプログラムを、コンピュータがわかる言葉に変換したものなんだ。
ITを学びたい
人間が書いたプログラム…というと、例えばどんなものでしょうか?
IT専門家
例えば、C言語やJavaのようなプログラミング言語で書かれたプログラムだね。これらを『コンパイラ』という翻訳ソフトを使って、コンピュータが実行できる『目的プログラム』に変換するんだよ。
目的プログラムとは。
『目的プログラム』とは、コンピュータが直接理解し、実行できる命令の集まりのことです。人間が書いたプログラムをコンピュータが実行できる形に変換したもののことです。
プログラムの翻訳
私たちが日々パソコンや携帯電話で利用する様々な便利な道具、例えば表計算や文書作成、絵を描く道具、ゲームなどは、全てプログラムと呼ばれる指示の集まりによって動いています。これらのプログラムは、人間が見て理解しやすい言葉で書かれています。この言葉をプログラミング言語と言います。プログラミング言語には様々な種類があり、それぞれ得意な分野や書き方が違います。まるで、日本語や英語、フランス語など、様々な国の言葉があるようなものです。
しかし、コンピュータはこれらのプログラミング言語を直接理解することはできません。コンピュータが理解できるのは、機械語と呼ばれる言葉だけです。機械語は、0と1の組み合わせで表現された、いわばコンピュータ専用の言葉です。人間には理解しにくい言葉ですが、コンピュータにとっては唯一理解できる言葉なのです。
そのため、人間が書いたプログラムをコンピュータが実行するためには、プログラミング言語で書かれたプログラムを機械語に翻訳する必要があります。この翻訳の作業を担うのが、翻訳道具と呼ばれる特別なプログラムです。翻訳道具には、大きく分けて二つの種類があります。一つは、プログラム全体を一度に機械語に翻訳する道具です。もう一つは、プログラムを一行ずつ機械語に翻訳しながら実行する道具です。
こうして翻訳されたものが、目的プログラム、またはオブジェクトコードと呼ばれるものです。目的プログラムは、コンピュータが直接実行できる命令の列であり、いわばコンピュータにとっての設計図のような役割を果たします。設計図に基づいて、コンピュータは様々な計算を行い、私たちが望む結果を表示したり、データを保存したり、様々な動作を行います。この目的プログラムのおかげで、私たちは複雑な処理をコンピュータに任せ、便利な生活を送ることができるのです。
翻訳の仕組み
人間が書いたプログラムを計算機が理解できる形に変換する手順は、翻訳と呼ばれる作業を通して行われます。この翻訳作業を担うのが、翻訳機と呼ばれる特別な道具です。翻訳機には、大きく分けて二つの種類があります。一つは全体翻訳機、もう一つは逐次翻訳機です。全体翻訳機は、高級言語と呼ばれる人間にとって分かりやすい言葉で書かれたプログラム全体を一度に機械語に変換します。この機械語は、計算機が直接理解できる言葉です。全体翻訳機を使うことで、一度にプログラム全体を翻訳できるため、翻訳にかかる時間を短縮できます。まるで、専門家が長文を一気に翻訳するかのようです。もう一方の逐次翻訳機は、アセンブリ言語と呼ばれる機械語に近い言葉で書かれたプログラムを機械語に変換します。アセンブリ言語は、機械語と一対一で対応しているため、人間にもある程度理解しやすい言葉です。逐次翻訳機は、一行ずつ丁寧に翻訳を進めていくため、全体翻訳機に比べて翻訳に時間がかかります。これは、通訳者が逐一言葉を訳していく作業に似ています。どちらの翻訳機も、プログラムの文法規則に基づいて翻訳を行います。文法規則とは、言葉の並び方や意味などの規則のことです。人間が書いたプログラムがこれらの規則に従っているかどうかを翻訳機は確認しながら、計算機が理解できる形に変換していきます。翻訳されたプログラムは、実行できる形に変換され、計算機上で動かすことができるようになります。まるで、翻訳された本が読めるようになるのと同じです。このように、翻訳機は人間と計算機の間をつなぐ重要な役割を担っています。翻訳機のおかげで、私たちは計算機に複雑な指示を与えることができ、様々な作業を自動化することができるのです。
翻訳機の種類 | 入力言語 | 出力言語 | 翻訳方法 | 翻訳速度 |
---|---|---|---|---|
全体翻訳機 | 高級言語 | 機械語 | プログラム全体を一度に変換 | 速い |
逐次翻訳機 | アセンブリ言語 | 機械語 | 一行ずつ変換 | 遅い |
目的プログラムの種類
計算機が直接理解し実行できる形になった命令の集まりを、目的プログラムと呼びます。この目的プログラムには、大きく分けて二つの種類があります。一つは、そのまま計算機で実行できる形のものです。この種類のプログラムは、例えば、皆さんが普段使っている表計算ソフトや、絵を描くソフトなど、様々な応用ソフトが該当します。これらのプログラムは、目的プログラムの形で配布され、利用者はそれを計算機に読み込ませることで、すぐに目的の作業を行うことができます。
もう一つは、そのままでは実行できない形の目的プログラムです。これは、例えるなら、色々な料理に使える、下ごしらえ済みの材料のようなものです。例えば、様々な料理に使えるように細かく切った野菜や、味付け済みの肉などが用意されているとします。これらの材料は、そのままでは料理として完成していませんが、他の材料と組み合わせ、調理することで、最終的に完成した料理になります。これと同じように、そのままでは実行できない目的プログラムは、部品のような役割を果たします。これらの部品は、よく使う機能をまとめて提供するもので、専門用語では「ライブラリ」と呼ばれます。
例えば、画面に文字を表示する機能や、複雑な計算を行う機能などは、多くのプログラムで共通して必要とされます。このような機能を毎回一から作るのは大変な手間です。そのため、よく使われる機能はライブラリとしてまとめて提供されています。プログラムを作る人は、これらのライブラリを組み合わせることで、必要な機能を簡単に実現できます。
このように、目的プログラムには、すぐに実行できる完成品のようなものと、他のプログラムと組み合わせて使う部品のようなものがあります。どちらも、計算機のプログラムを作る上で重要な役割を果たし、開発の効率化や、プログラムの再利用性を高める上で欠かせないものとなっています。
目的プログラムの種類 | 説明 | 例 |
---|---|---|
そのまま実行できる形式 | 計算機に読み込ませるだけで、すぐに目的の作業を行うことができるプログラム。 | 表計算ソフト、絵を描くソフトなどの応用ソフト |
そのままでは実行できない形式 | 他のプログラムと組み合わせて使う、部品のような役割を果たすプログラム。ライブラリとも呼ばれる。 | 画面に文字を表示する機能、複雑な計算を行う機能などを提供するライブラリ |
実行までの流れ
書いた順番で処理される命令の集まりであるプログラムは、コンピュータの中でどのように動き出すのでしょうか。それは、幾つかの段階を経て実現されます。まず、私たちが作ったプログラムは、人間が理解しやすい言葉で書かれていますが、コンピュータはこれを直接理解できません。そこで、「翻訳機」のような役割を持つ「翻訳処理ソフト」を使って、コンピュータが理解できる言葉である機械語に変換します。この機械語に変換されたものが「目的プログラム」と呼ばれます。
次に、この目的プログラムをコンピュータの作業机である「主記憶装置」に読み込む必要があります。目的プログラムは、主記憶装置の中の決められた場所に配置されます。この場所は、コンピュータ全体の動作を管理する「基本処理ソフト」によって決められ、管理されます。この基本処理ソフトは「OS」とも呼ばれ、様々な役割を担っています。
目的プログラムが主記憶装置に読み込まれると、いよいよ実行が始まります。基本処理ソフトは、目的プログラムに書かれた命令を一つずつ、順番に取り出して実行していきます。この時、基本処理ソフトは、目的プログラムが計算に必要な数値や文字などの情報を記憶しておく場所を主記憶装置の中に確保したり、画面に結果を表示したり、キーボードやマウスからの入力を受け付けたりといった、様々な補助的な処理も行います。
このように、基本処理ソフトの助けを借りて、目的プログラムはコンピュータ上で動き、私たちが期待する結果を作り出します。基本処理ソフトは、限られたコンピュータの資源をうまく管理し、複数のプログラムを同時に実行できるようにしたり、コンピュータの様々な装置を制御したりすることで、目的プログラムがスムーズに動作できる環境を提供しています。まるでオーケストラの指揮者のように、全体をまとめ上げ、調和のとれた演奏を可能にしているのです。
まとめ
私たちが日々、パソコンや携帯端末で様々な作業を行う際、実は裏側で目的プログラムと呼ばれるものが活躍しています。この目的プログラムとは、人が書いたプログラムを機械が理解できる言葉に変換したもので、機械が動くために欠かせない指示書のようなものです。
この指示書を作る役割を担うのが、翻訳者のような役割を持つコンパイラやアセンブラと呼ばれるものです。人が書いたプログラムは、そのままでは機械には理解できません。そこで、コンパイラやアセンブラが、人の言葉で書かれたプログラムを機械語と呼ばれる機械が理解できる言葉に変換し、目的プログラムを作成するのです。そして、この目的プログラムは、実行ファイルという形で保存されます。実行ファイルは、まさに名前の通り、機械が実行できる状態になったファイルのことです。
目的プログラムには、大きく分けて二つの種類があります。一つは、そのまま実行できる形式のものです。これは、私たちが普段利用する多くの応用の基礎となっています。もう一つは、部品のように利用される形式のものです。複数のプログラムで共通して使われる機能をまとめておき、必要な時に呼び出して使うことができます。この部品のような目的プログラムは、効率的にプログラムを開発する上で大変役立ちます。
これらの目的プログラムは、基本と呼ばれる制御の仕組みの中で実行されます。基本は、機械全体の動きを管理し、様々なプログラムを適切に動かす役割を担っています。私たちが普段意識することなく様々な応用を同時に利用できるのは、この基本のおかげです。
普段何気なく使っている携帯端末やパソコンの中の応用は、すべてこの目的プログラムの形で動いているのです。この目的プログラムを理解することは、機械の仕組みを理解する上で非常に大切な一歩となります。
用語 | 説明 |
---|---|
目的プログラム | 人が書いたプログラムを機械が理解できる言葉に変換したもの。機械が動くための指示書。実行ファイルとして保存される。 |
コンパイラ/アセンブラ | 人の言葉で書かれたプログラムを機械語に変換し、目的プログラムを作成する翻訳者のような役割。 |
実行ファイル | 機械が実行できる状態になったファイル。 |
目的プログラムの種類(1) | そのまま実行できる形式。応用の基礎。 |
目的プログラムの種類(2) | 部品のように利用される形式。複数のプログラムで共通して使われる機能をまとめておき、必要な時に呼び出して使う。効率的な開発に役立つ。 |
基本/制御 | 機械全体の動きを管理し、様々なプログラムを適切に動かす仕組み。 |
今後の展望
計算機の処理速度の向上や、プログラムを作るための言葉の進化とともに、目的とするプログラムを作る技術も進歩し続けています。より少ない時間で多くの計算をこなせるようにしたり、複雑な手順をうまく実行できるようにするために、様々な工夫が凝らされています。計算を速くする工夫の一つとして、プログラムの命令の順番を入れ替えたり、無駄な計算を省いたりする方法があります。また、複数の計算機で作業を分担することで、全体の処理時間を短縮する工夫もされています。
プログラムを作るための言葉も進化しており、以前は専門家しか理解できなかった複雑な命令も、今ではより分かりやすく簡単に記述できるようになっています。これにより、より多くの人がプログラム作りに参加できるようになり、様々な新しいプログラムが生まれています。
さらに、人工知能技術の進歩により、将来は人がプログラムを書かなくても、計算機が自動的に目的のプログラムを作る時代が来るかもしれません。人工知能は、大量のデータから規則性やパターンを学習することができます。この能力を利用して、人工知能は与えられた条件に基づいて、最適なプログラムを自動的に生成することができるようになるでしょう。例えば、ある特定の計算を最も速く行うためのプログラムや、特定の条件を満たすデータを抽出するためのプログラムなどを、人が指示しなくても人工知能が自動的に生成できるようになる可能性があります。
目的とするプログラムを作る技術は、計算機技術の進歩を支える重要な要素であり、今後の更なる発展が期待されます。人工知能によるプログラムの自動生成技術が確立されれば、プログラム開発の効率が飛躍的に向上し、今まで以上に複雑で大規模なプログラムを開発することが可能になるでしょう。これは、科学技術の発展や社会の進歩に大きく貢献するものと期待されます。
項目 | 内容 |
---|---|
計算速度向上 | 命令の順序入れ替え、無駄な計算の省略、複数計算機による作業分担 |
プログラミング言語の進化 | 複雑な命令の簡素化、より多くの人がプログラム作成に参加可能に |
人工知能技術 | データから規則性やパターンを学習し、自動的にプログラムを生成(例:高速計算プログラム、データ抽出プログラム) |
将来の展望 | プログラム開発の効率向上、複雑で大規模なプログラム開発が可能に、科学技術・社会の進歩に貢献 |