プログラミング入門-2 プログラミング言語

初期の計算機は、処理内容を決めるときに配線を変更することで行なっていました。これは「プログラマブルコンピューター」ではないので、それはここでは除外します。プログラマブルコンピューターとは、プログラムというデータを読み込むことで機能を変更することができるものを指し、フォン・ノイマンがメンバーであったチームが最初に発表したことから「ノイマン式コンピューター」と呼ばれています。今日のコンピューターは、みなこの仲間です。

プログラムはデータです。

2進数と16進数

コンピューターのデータは0と1の組み合わせだけで作られているものです。これを2進数(バイナリー:binary)と呼びます。

101001010010100100100101010000010101111010100101010110101

これは人間が読みにくすぎるので、0-9とA-Fで表す、16進数(ヘキサデシマル:Hexa decimal)というもので表現することが多いです。これは2進数を4桁あつめたものが16進数に変換しやすいからです。

0000=0, 0001=1, 0010=2, 0011=3,
0100=4, 0101=5, 0110=6, 0111=7,
1000=8, 1001=9, 1010=a, 1011=b,
1100=c, 1101=d, 1110=e, 1111=f

024f5b682ca895e8b..

プログラム

プログラムできる計算装置(Programmable Computer)が発明された直後、プログラムは16進数で作るようになっていました。たとえば、メモリーの0番地にある数字を計算用のメモリー(レジスターといいます)の0番にコピーし、4番地にある数字をそれに足し、8番地に保存するとします。メモリーからレジスターにコピーする命令をL(Load)、足し算するのをA(Add)、レジスターの内容をメモリーにコピーする命令をS(Store)とします。すると、以下のようなプログラムを書くことになります。(IBM System/360のコード)

プログラム
5800000 5A000004 5B000008

記号
L 0,0(0,0)
A 0,4(0,0)
S 0,8(0,0)

プログラムの正体は0と1の配列(2進数)で、16進数で表記します。これだけだとわかりにくいので、記号で表します。この記号をニーモニックと呼び、アセンブラ言語ともいいます。

アセンブラ言語

プログラマブルコンピューターが生まれた初期のころは、プログラムをニーモニックで書き、16進数を手で作っていました。その後、ニーモニックを入力にして16進数プログラムを自動生成するソフトウェアが作られました。このように、ニーモニックをバイナリーに変換することを「アセンブル:assemble(する)」といい、それを行うためのプログラムを「アセンブラー(assembler)」といいます。また、ニーモニックで書いたプログラムを「アセンブリ言語」とか「アセンブラー言語:assembler language」と言います。

高級言語(High Level Language / HLL)

コンピューターの配線やニーモニックとアセンブラーによるプログラミングは、特殊技能であり、とても苦痛の多いものでした。そこで、米国海軍に所属していた数学者グレース・ホッパー女史が、「こんなのやってられっかい、私は英語の文法でプログラムを書きたい!」といって、ニーモニックではなく、数学表現と英文法でプログラムを書く方法を開発しました。Flow-Maticというプログラミング言語で、世界初のものとなります。このように英文法でプログラムを書く言語を「高級言語」と言います。(逆にアセンブラ言語は低級言語と呼ばれるようになりました)現代のプログラミング言語は、すべて高級言語です。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中