IT関連
低水準言語
- ・低水準言語(アセンブリ言語)について簡単にご説明します。
- ・データ分析・解析でITが関係するため記事にしております。
- ・ITの理解を深めたい方はご参照ください。
- ・不明点あれば問い合わせください。
- ※当サイトで掲載しているデータは適当に作成したものであり、実際のものではありません。
機械語からアセンブリ言語へ
話を元に戻しますが、何はともあれ、電流の流れを上手く制御することで、機械的に計算することができるようになります。
そうした制御をプログラムと言い、プログラムを作成することをプログラミングと言います。
コンピュータという構想が考え出された当初は、配電盤を手動で操作することでプログラミングしていました。
今のようにキーボードをタイピングしてプログラミングしていたわけではありません。
手動で配線を変更することで電流の流れを制御してコンピュータを動かす、という原始的なスタイルでした。
しかし、そうした配線作業はプログラマへの負担が大きく、何より明らかにミスしやすいものでした。
そのため、プログラムをコンピュータに内臓し、外部からの入力によりプログラミングして制御する仕組み、が考案されました。
このようにプログラムを内蔵する方式を、プログラム内蔵方式と言います。
アメリカの数学者ジョン・フォン・ノイマンによる発案とされています。
こうして、今日のようなキーボードをタイピングしてコンピュータを扱うスタイルになっていったのです。
とはいっても、
のような機械語に触れることはためらわれます。
そこで、そのような機械語を、記号(ニーモニック)で表現することが考えられました。
これは「特定のビット列のパターンを、人間にとって分かりやすい文字列に置き換えてしまおう!」という発想です。
例えば、01010010をaddのように表現します。
単純な変換ですが、数字の羅列が文字列となったことで、人間にとって扱いやすくなります。
このようにビット列に1対1で対応する文字列から構成される言語を、アセンブリ言語と言います。
以下はアセンブリ言語によるプログラムの例です。
これは、指定のアドレスに指定の数値を格納し、それらを取り出して加算・減算するというプログラムです。
意味のある記号で記述されているため、コードを概観することで処理の流れが大雑把に分かるはずです。
さきほどの機械語と比較すると、かなり見やすくなったのではないでしょうか。
ただし、このようなアセンブリ言語で書かれたコードは、コンピュータが直接解釈することはできません。
コンピュータが解釈できる言語はあくまで機械語のみです。
コンピュータが解釈できないということは、このままの形では実行できないということです。
したがって、アセンブリ言語で書かれたコードを実行させるためには、コードを機械語に変換しなければなりません。
この変換を行うプログラムをアセンブラと言います。
そして、アセンブリ言語で書かれたコードを機械語に変換(より正確には生成)することをアセンブルすると言います。
アセンブルされたファイルは当然ながら機械語で書かれており、コンピュータに実行させることができます。
このようなファイルを実行ファイルと言います。
対して、アセンブリ言語で書かれたファイルをソースファイルと言います。
まとめると、ソースファイルと実行ファイルは以下のような関係にあります。
アセンブラさえあれば、アセンブリ言語だけでプログラミングできるようになります。
それはつまり、機械語を意識しなくても、コンピュータを自由に扱えるようになるということです。
とは言っても、アセンブリ言語も扱いやすいとは言い切れません。
特にプログラムの規模が巨大化すればするほど、ソースコードは煩雑になり、可読性や保守性が著しく損なわれてしまうものです。
当初、コンピュータを利用するにあたって、その大半がプログラミングやデバッグ(プログラムにおける誤りを修正すること)に費やされていたものでした。
そこで、開発効率を改善すべく悩み抜いた末、当時の技術者がどのように対応したかというと…