ActionData↑

IT関連

低水準言語

  • ・低水準言語(アセンブリ言語)について簡単にご説明します。
  • ・データ分析・解析でITが関係するため記事にしております。
  • ・ITの理解を深めたい方はご参照ください。
  • ・不明点あれば問い合わせください。
  • ※当サイトで掲載しているデータは適当に作成したものであり、実際のものではありません。

機械語からアセンブリ言語へ


 話を元に戻しますが、何はともあれ、電流の流れを上手く制御することで、機械的に計算することができるようになります。 そうした制御をプログラムと言い、プログラムを作成することをプログラミングと言います。 コンピュータという構想が考え出された当初は、配電盤を手動で操作することでプログラミングしていました。 今のようにキーボードをタイピングしてプログラミングしていたわけではありません。 手動で配線を変更することで電流の流れを制御してコンピュータを動かす、という原始的なスタイルでした。

 しかし、そうした配線作業はプログラマへの負担が大きく、何より明らかにミスしやすいものでした。 そのため、プログラムをコンピュータに内臓し、外部からの入力によりプログラミングして制御する仕組み、が考案されました。 このようにプログラムを内蔵する方式を、プログラム内蔵方式と言います。 アメリカの数学者ジョン・フォン・ノイマンによる発案とされています。 こうして、今日のようなキーボードをタイピングしてコンピュータを扱うスタイルになっていったのです。 とはいっても、

   

のような機械語に触れることはためらわれます。 そこで、そのような機械語を、記号(ニーモニック)で表現することが考えられました。 これは「特定のビット列のパターンを、人間にとって分かりやすい文字列に置き換えてしまおう!」という発想です。 例えば、01010010addのように表現します。 単純な変換ですが、数字の羅列が文字列となったことで、人間にとって扱いやすくなります。 このようにビット列に1対1で対応する文字列から構成される言語を、アセンブリ言語と言います。 以下はアセンブリ言語によるプログラムの例です。

   

 これは、指定のアドレスに指定の数値を格納し、それらを取り出して加算・減算するというプログラムです。 意味のある記号で記述されているため、コードを概観することで処理の流れが大雑把に分かるはずです。 さきほどの機械語と比較すると、かなり見やすくなったのではないでしょうか。 ただし、このようなアセンブリ言語で書かれたコードは、コンピュータが直接解釈することはできません。 コンピュータが解釈できる言語はあくまで機械語のみです。 コンピュータが解釈できないということは、このままの形では実行できないということです。

したがって、アセンブリ言語で書かれたコードを実行させるためには、コードを機械語に変換しなければなりません。 この変換を行うプログラムをアセンブラと言います。 そして、アセンブリ言語で書かれたコードを機械語に変換(より正確には生成)することをアセンブルすると言います。 アセンブルされたファイルは当然ながら機械語で書かれており、コンピュータに実行させることができます。 このようなファイルを実行ファイルと言います。 対して、アセンブリ言語で書かれたファイルをソースファイルと言います。 まとめると、ソースファイルと実行ファイルは以下のような関係にあります。

   

 アセンブラさえあれば、アセンブリ言語だけでプログラミングできるようになります。 それはつまり、機械語を意識しなくても、コンピュータを自由に扱えるようになるということです。 とは言っても、アセンブリ言語も扱いやすいとは言い切れません。 特にプログラムの規模が巨大化すればするほど、ソースコードは煩雑になり、可読性保守性が著しく損なわれてしまうものです。 当初、コンピュータを利用するにあたって、その大半がプログラミングやデバッグ(プログラムにおける誤りを修正すること)に費やされていたものでした。 そこで、開発効率を改善すべく悩み抜いた末、当時の技術者がどのように対応したかというと…