そもそも「プログラム」とは?「プログラミング言語」との違い

 今日さまざまなところで「プログラミング的思考」「プログラミング言語が云々」、もう少し詳しい人ですと「Hello,World!」といった言葉を聞いたことがあると思います。

 しかし、そもそも「プログラミング」、「プログラム」とは何かと考えると、多くの人は正確には答えられないのではないでしょうか。

 今回はそんな「プログラム」とはそもそも何か、そして「プログラミング言語」とは何か、というところについてお話します。

プログラムの大元の意味

 そもそもプログラムとは何かというお話ですが、まず辞書を引いてみます。

 **プログラム〔program〕
[一](名)
①番組。
②行事の予定(表)。
▽プロ。
[二](名・自他サ)
〘情〙コンピューターで処理ができるように、計算の手順・方法を、特定の記号〔=プログラム言語〕で くわしく指示したもの。また、そのように指示すること。

※三省堂国語辞典 第七版 (C) Sanseido Co.,Ltd. 2014

 国語辞典では、コンピュータに関する「プログラム」の意味のほかに、「番組」「行事の予定(表)」という意味も書かれています。英語のprogramを英和辞典(ジーニアス英和辞典第4版)で引きますと、「計画、構想、予定」という意味も表れます。

 この二つの意味を知ってから、国語辞典の「コンピューターで処理ができるように、計算の手順・方法を、特定の記号〔=プログラム言語〕で くわしく指示したもの。また、そのように指示すること。」という文を読むと、プログラムというものは「人間の計画、つまり人がこうしたいということをコンピュータにやらせるための手順をまとめた指示書、または指示をすること」と言い換えることができます。

 つまり「プログラム」とは、「コンピュータ向けの指示書または指示そのもの」だと分かります。具体的にどういうものを示すのか想像しづらい意味ですが、本来「コンピュータのプログラム」というものは「コンピュータ向けの指示書または指示そのもの」という意味しか持っていないのです。

 では、多くの人が「プログラム」といって思い浮かべるようなアルファベットや数字の羅列は何なのでしょうか。それは「プログラミング言語」と呼ばれるものなのです。

Hellow,World! から考える「プログラミング言語」

 冒頭でお話した「Hello,World!」というものは、プログラミング言語の歴史の中で出てくるエピソードが元になったキーワードみたいなものです。世界史が好きな人にとっての「バルト海のシュテッティンからアドリア海のトリエステまで……」というウィンストン・チャーチルの鉄のカーテン演説冒頭や、鉄道が好きな人にとっての「10時打ち」や「185」のような、一種の暗号です。

元になったエピソードなどを象徴する言葉でありながら、その言葉だけでは元のエピソードを知らない人にはサッパリ分からない、そういったものの、情報系における合い言葉がこの「Hello,World!」というものです。

 さて、この「Hello,World!」というもの。「元ネタ」は1978年に刊行された「プログラミング言語C」という本の以下の文です。

 #include

main( )
{
printf(“hello, world\n”);
}

 このプログラムをコンピュータで出力すると、画面に「Hello,World!」という言葉が表示されます。画面に広がるのはコンピュータという新しい世界であり、その新しい世界を冒険する始まりにプログラムがある。そんな風に解釈もできますが、この「Hellow,World!」というプログラムは、先述の本が刊行される前、それこそプログラミングができるコンピュータが開発されてから小さなテストプログラムとして存在してきたと言われています。

 前置きが長くなりましたが、この単語といくらかの記号の組み合わせで「コンピュータに指示を分からせる」のがプログラミング言語と呼ばれるものになります。

「プログラム」と「プログラミング言語」が分かってから生まれる疑問

 「プログラム」とは「コンピュータ向けの指示書または指示そのもの」のことで、その指示書を単語や記号で書き表すものが「プログラミング言語」であることがお分かり頂けたかと思います。

 ここで小学校~高校時代の、「情報」や「総合学習」といった名前の科目授業を思い出して頂きたいと思います。「コンピュータはデジタルで処理をしていて、0と1、この二つの数字だけで処理をしている」と習ったことと思います。

 プログラムとは「コンピュータ向けの指示書または指示そのもの」です。しかし、そのコンピュータに指示を与えるのであれば、コンピュータに分かる言葉、すなわち0と1で書くべきなのではないか? 実はこのコンピュータが分かる「0と1の世界」と、人間が分かる言語の世界をつなぎ合わせるものが「プログラミング言語」と呼ばれるものになります。そして、この「0と1の世界」と人間世界の言語を結びつけるための努力の痕跡がプログラミング言語の歴史として世界に足跡を残してきました。

 次回はそんなプログラミング言語の歴史を当時の「プログラム」を見ながらお話します。

各スクールレッスンで大好評!プログラミング脳を養う「西嶋式プログラミングパズル」

ステムアカデミーキッズ開発者の西嶋孝文氏によって考案されました。このパズルの対象者は小学校低学年~ご年配の方まで、幅広い方々が楽しめます。パズルを通してプログラミング思考を養い、プログラミングの考え方や記号の使い方を学ぶことはもちろん、考える力、論理的思考力、推理力、問題解決力、集中力などあらゆるスキルを身につけることができます。

ぜひ沢山の人に楽しく学んで頂き、これからプログラミングを学んでいくための素地となるパズルになっていけば幸いです。WEB上では毎週問題を掲載しますので、ぜひチャレンジしてみてください。

>プログラミングパズルの解き方
>西嶋式プログラミングパズルとは
>西嶋式プログラミングパズル問題一覧

※プログラミング脳を育てる「西嶋式プログラミングパズル」(c2019 StemAcademyKids Nishijima Takafumi)は、色・サイズ等を加工してご家庭や個人でご使用いただくことができます。但し、再販売・再配布を禁止致します。また著作権はステムアカデミーキッズ開発者に帰属します。商用利用をご希望の方は、ステムアカデミーキッズ事務局へお問い合わせくださいませ。