何故かアルゴリズム 6 宣言or定義? 「EachLanguage_Program_3」
プログラムでは、”あるもの”を示すときに、「宣言」をします。また、それが何か表すときに「定義」をします。宣言や定義の意味はこうなっています。
「宣言」
個人や団体が,その意見や方針を外部に対して広く表明すること。また,その言葉。
(by 大辞林)
「定義」
ある言葉の正確な意味や用法について、
人々の間で共通認識を抱くために行われる作業
(by Wikipedia)
となっています。
宣言で、”個人や団体”をプログラムとすると、
『プログラムで、その意見や方針(つまり処理内容)を外部に対して広く表明すること』
”外部”とありますが、これはプログラム自体です。ただ、その中で処理する際に、”これは何だ?”とならないようにするために宣言するのです。
つまり、ある処理をする際に、プログラム内で、存在を表すために宣言をするのです。
また、定義で、”人々”をプログラムとし、”言葉”をプログラムが持つ処理だとすると、
『ある処理の正確な意味や用法(つまり処理内容)について、プログラムのあいだで共通認識を抱くために行われる作業』
ですね。
つまり、ある処理をする際に、プログラム内で区別をつけるために定義をするのです。
宣言や定義をする際に、必要な要素があります。(各言語で有り無しがあるので、必要度順で)
- 名前...区別するための名前。宣言や定義には絶対必要。数でもいい(と思う)
- 内容 ...物の実質(実体)を表す。定義するときは絶対必要。
- 修飾子...区別するときに必要。色々な種類がある。
- 宣言(定義)位置 ...それぞれがどの範囲で有効かを決める。
などです。
とりあえず言っても分かりづらいので、宣言と、定義のプログラム例を出します。
中では、「Xという数を宣言して、その数が20(Int,数値)であることを定義して」います。
BASIC
10 X 20 LET X = 20
C
public int X; X = 20;
C#
int X; X = 20;
Go
var X int = 20
Java
int X; X = 20;
Perl
int $X; $X = 20;
Prolog
X = 20.
Python
X
X = 20
Ruby
X X = 20
VB.NET
X As Integer X = 20
解説
違ったら教えて下さい。
とりあえず、Prolog以外は、"X"という数を置いて、それに20をつけている感じですね。ちなみに、言語ごとで文の区切りが違います。
CやJavaは";"を最後につけることで一文が終わったことにしており、その他は改行をすれば文の終わりを認識します。
また、Prologは変わった形をしています。(よくわからないのですが)Prologは「論理型」のプログラミング言語だそうで、他のやつとは違っています。(詳しくは、論理プログラミング - Wikipedia
で)。
そのPrologでは、nanikaという()に挟んで宣言&定義をしています。Prologで宣言をするには、「事実」という形にしなくてはいけません(なので、Prologは「宣言的」と言われます)。それがこの形で、"."で終わることで事実であると表しています。(ここでは、nanikaという事実の中で、Xというのが20であることを宣言しています)
また、Perlでは宣言をするときに、"$"という記号を使います。これを名前の前に置くことで宣言(&定義)できます。
次は、その宣言した"物"についてと、「修飾子」を解説します。