プログラミング言語とは何なのか

プログラミング言語とは、英語や日本語と同じような言語なのでしょうか。

実は、プログラミング言語は、私達が普段つかう言語とは、まったく異なる性質をもっています。

CPUの仕様

プログラミング言語とは何か、という話をする前に、まず、CPUという電子回路の”仕様”についてお話しましょう。

「仕様」とは、”こうしたらこうなる”という内容のことです。
例えば、ある機械について、このスィッチをONにしたらランプが付きます、といったような事です。

CPUは、複雑な電子回路の塊で、最近の製品では、端子(ピン)が1,000個以上ついています。

CPUの仕様は、CPUにたくさん付いているピンのどれに、どのような電圧をかけると、出力端子からどのような電圧が出力されるのか、といったようなものです。

 

CPUの仕様を簡単に書き表すための工夫

CPUは、端子の数が非常に多いので、その仕様も複雑になります。

端子に電圧がかかっていれば1、電圧なしなら0(ゼロ)というように表す事にすれば、0100100…などのように書く事が出来ます。

さらに、このゼロと1の羅列8個分を1文字に置き換えるルール(01000001はA、01000010はB…というように)を作れば、ゼロと1をズラズラと羅列しなくても、よくなります。このゼロと1の羅列を文字に置き換えるルールには色々な種類があって、有名なものの1つにASCII(アスキー)というルールがあります。

ASCIIでは、「01000001 01000100 01000100」は「ADD」ということになります。

ADDというのは英語で「足す」「加える」といった意味です。その名前の通り、足し算の計算をするためにどのような電圧をかけるのか、という仕様を3文字で表せるようになっているわけです。

 

機械語

このようにCPUの各端子にどのように電圧をかければ、どのような処理をさせることが出来るのか、という仕様を、ゼロと1の羅列で書き表したものを、さらにASCIIで文字列に置き換えたものを、機械語(アセンブリ)といいます。

この機械語が、もっとも原始的なプログラミング言語です。

したがって、プログラミング言語とは、日本語や英語というような”コトバ”ではなく「CPUを操作するためのルールの集まり」なのです。

 

機械語とその他のプログラミング言語

機械語は、足し算・割り算・掛け算など、単純なことしかできません。

そのため、何か実用的な機能を作ろうと思っても、たくさんの命令が必要になるので、プログラムを書くのが大変です。

そこで、より少ない単語で、より高度な命令ができるようにしたプログラミング言語が、たくさん発明されました。

そのようなプログラミング言語(C, Java, Ruby, PHP, …)で書いたプログラムは、すべて、機械語に翻訳してからCPUで実行するようになっています。

プログラマーはそれらのプログラミング言語で短く書くだけで、本来必要な膨大な機械語を書くこと無く、楽に、CPUを操ることができるのです。

 

「プログラムを書く」とは?

機械語以外のプログラミング言語も、CPUの仕様である機械語に翻訳されます。

プログラムを書くというのは、本質的にはCPUの仕様にそって各端子にかける電圧をどのようにするのかを書いているのと同じなのです。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

%d人のブロガーが「いいね」をつけました。