プログラミングとは | Programming Place Plus 新C++編

トップページ新C++編

このページの概要

このページでは、「そもそも、何をどこになぜ書くのだろうか」を取り上げます。

以下は目次です。



なにを書くのか?

プログラミングのことを、「プログラムを書く」とも表現します。「プログラムを書く」とは、一体なにを書くということなのでしょうか?

プログラムとは、「コンピュータに与える指示を言葉でまとめたもの」です。ですから、「なにを書くのか?」と問われれば、「コンピュータへの指示書を書く」ということになります。

ここでいう「言葉」とは、C++ などのプログラミング言語のことです。ですから、プログラミング言語の文法や単語については、先にある程度知っておかないと、プログラムは書きようがありません。

プログラムとプログラミング

プログラムとプログラミングという2つの用語は、わりと適当に使われることがありますが、用語はきちんと理解し、使い分けるようにしたほうがいいです。当サイトは、日々、用語集の整備を進めていますので、こちらもご利用ください。

たとえば、質問サイトで質問するとき、適当に用語を使うと理解してもらえません。Google などで調べようと思っても、正しい検索ワードを入力できず、適切な情報にたどりつけません。

さきほど、“プログラミングのことを、「プログラムを書く」とも表現します。” と書きましたが、プログラミングという用語が、プログラムを書くという1点だけを指しているというのも少し不正確な見方です。何を解決したいのかを自分自身で理解し、どう書くのか考え、プログラミング言語の知識を使って書き下してみて、実際にコンピュータを使って動かしてみて、おかしいところは直す、といった多くの段階をすべて含んでいると考えるのが適切です。プログラマー (programmer)(=プログラムを書く人)は、こういったすべての過程をこなさなければなりません。

なぜ書くのか?

では、なぜプログラムを書くのでしょうか?

この答えは、コンピュータは人間が指示を与えなければ動かないからです。コンピュータがみずから考えて動くことはありません。

では、どうしてコンピュータに指示を与えたいのでしょうか?

コンピュータの能力のうち、人間よりも優れている部分を活用したいからです。コンピュータのほうが優れている部分とは、たとえば次のような点です。

  1. プログラムで指示したことを、間違えることなく遂行できる
  2. 疲れることなく、いつでも何度でも同じ仕事を繰り返せる(かつ間違えない)
  3. 指示を取り替えても、対応できる(同じコンピュータでも、プログラムを変更すれば、違う仕事をさせられる)
  4. 同じ仕事を、別のコンピュータにさせることができる(3の逆。同じ仕事を、異なるコンピュータにもさせられる)
  5. ほとんどの仕事は人間よりも速い(特に計算)
  6. 大量の情報を確実に覚えておける

1に関しては、プログラム(指示書)のほうが間違っている可能性があることに注意しなければなりません。そこは、人間の側が頑張らなければならない部分です。

アプリケーション

購入してきた PC には最初からいくつか機能が入っています。Windows には、Edge という Webブラウザや、電卓などがあります。スマートフォンも同様に、最初からさまざまなアプリ (appli) が入っています。

アプリという言葉が出ました。最近はこうして略して呼ぶことが多いですが、正式にはアプリケーション (application)、あるいは、アプリケーションソフトウェア (application software) といいます。

アプリケーションは、ある目的を達成するためにつくられたソフトウェア (software) のことです。Webブラウザなら、インターネット上の情報を見ることが主目的ですし、電卓なら計算することが目的です。

アプリケーションの正体はプログラムです。世の中の誰かがプログラミングをして、アプリケーションを作ったのです。われわれは、誰かがつくったプログラムを使わせてもらっているわけです。プログラミングができるようになると、使ってもらう側に回れます。

どこに書くのか?

プログラムはファイルに書きます。ここでいうファイルはもちろん、コンピュータの世界でのファイルのことです。

C++ をはじめとして、ほとんどのプログラミング言語は文字を使って書きます。ですから、テキスト形式のファイル(テキストファイル (text file))に書くことになります。

プログラムが書き込まれたテキストファイルのことを、ソースファイル (source file) と呼びます。また、そこに書かれているプログラムのことをソースコード (source code) と呼びます。

ソースファイルはプログラマーが作ります。つまり、あなたが自分で作ります。プログラミング作業用に、自分が管理しやすい場所にフォルダを用意して、その中に作成します。ファイルやフォルダの名前にも気をつかいましょう。これからたくさんのプログラムを書いていくことになるので、分かりやすく管理しましょう。1つのプログラムごとに、フォルダを分けていくのが良いでしょう。

プログラマーにとって、“名前” はとても大切です。理由はプログラミングを続けていくと分かるようになるでしょう。きちんと考えて名前を付けることを意識するようにしていきましょう。

書いたものがどうやって動くのか?

ソースファイルを用意しても、それそのものがプログラムとして動くわけではありません。

C++ などのプログラミング言語は、人間が読み書きしやすいようにルールが決められています。いわば人間のための言語です。意外にも、コンピュータが理解できる言語ではないのです。コンピュータが理解できる言語は、機械語 (machine language。マシン語) と呼ばれる言語だけです。

機械語はひどく難解です。機械語のルールを学べば、人間でも読み書きできるのですが、そんな困難な道を通る意味はまったくありません。プログラミング言語だけを理解すればいいです。なぜなら、プログラミング言語を機械語に変換する便利な道具があるからです。それが、「学習環境を準備する」のページで登場したコンパイラ (complier) です。

まず、ソースファイルに、プログラミング言語を使ってプログラムを書きます。そして、これをコンパイラに渡してあげると、機械語に変換されたファイルを作り出してくれます。この変換作業のことをコンパイル (compile) と呼びます。

「変換」という表現をしますが、元になったソースファイルはそのまま残され、別のファイルが作り出されます。せっかく書いたソースファイルが上書きされて、消えてしまうわけではありませんからご心配なく。

1度書いたら終わりなのか?

自分の意図したとおりに動くプログラムを正確に作り出せれば、プログラミングは終わりです。しかし、「正確に」作るまでには何度も「修正」が必要です。

そもそも、何をもって「正確」に作れたといえるでしょう。少なくとも、書いてみた指示書(=プログラム)をコンピュータに渡して、実際に仕事をしてみてもらうしかありません。コンピュータがプログラムの指示どおりに仕事を行うことを、「プログラムを実行する (execution)」と表現します。

実行してみた結果、自分が意図したとおりの結果になれば成功。ならなければ失敗です。失敗していたら、指示書の中の何が問題なのか探して、修正します。指示書の中に誤字脱字があるのかも知れないし、コンピュータにとって曖昧な表現になっているのかも知れません。指示の順番が矛盾している可能性もあります。

というわけで、プログラミングでは、次の部分を何度も繰り返すことになります。

  1. プログラムを書く
  2. コンパイルする
  3. 実行して確認する

動作が意図したとおりになっていなければ、1 に戻ります。ゼロから書き直さなければならないわけではなくて、何が間違っているのかを考えて、間違っている部分だけを修正します。

なお、プログラムの動作が意図どおりになっていないことを、バグ (bug) があるといいます。そしてバグの原因を探して、正しくなおすことをデバッグ (debug) といいます。正しいプログラムを書き上げるまでがプログラマーの仕事です。

本格的な開発では、バグがないかどうか検証する部分には、バグ探しの専門家(デバッガやテスターと呼ばれる)も登場します。

参考リンク



更新履歴




はてなブックマーク に保存 Pocket に保存 Facebook でシェア
X で ポストフォロー LINE で送る noteで書く
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー
先頭へ戻る