Jediman Blog

熊本に住む日曜プログラマーJedimanがプログラむ日々を綴ります

プログラム・プログラミングとは?

僕らは日々

意識しながら、あるいは無意識に

コンピュータを使っている

そしてコンピュータの中では

大きいのや小さいの

様々なプログラムが動いている

そのプログラムは人が書いたもので

プログラムはコンピュータにインストールされる

 

ここで疑問がわかないだろうか?

  • プログラムは動く
  • プログラムは書かれる
  • プログラムは保存される

しかしてその実態は!?

 

答えは簡単で

プログラムは意味がいくつもある言葉なのだ

 

「動くプログラム」は

「プロセス」とか「スレッド」という「動作の単位」ことで

「書かれるプログラム」は

ソースコード」という「データ(テキストデータ)」のことで

「保存されるプログラム」は

「実行ファイル」という「データ(バイナリデータ)」のことだ

(メモリ上のデータはなんと呼ぶか不明)

 

また「プログラムする」といった行為をいう場合は

ソースコードを書く」「コーディング」と言ったりする

 

この行為を指して「プログラミング」と言ったりもするけど

実際の「プログラミング」はコーディング以外のこともする

 

プログラミングの流れ

  1. プログラム(ソースコード)を書く・修正する
  2. プログラム(ソースコード)を実行ファイルにする(しなくてもいい時もある※・実行ファイルにできない時もある※)
  3. プログラム(プロセス)を実行する(実行できないこともある※)
  4. メモリにプログラム(実行ファイル・ソースコード)の内容が読み込まれ、それに基づきコンピュータが処理を行う
  5. プログラム(プロセス)が終了する
  6. 結果に不満があれば1に戻りプログラム(ソースコード)を修正する

※の部分は後日書く予定

 

1は「コーディング」とも呼ばれ、人がする行為だ(今のところは)

 

2はソフトウェアが自動でやるのだが

最初に人が「やれ」と命令だけする必要がある

 

3は人の場合もあるし別のプログラム(プロセス)がすることもある

 

4はコンピュータがする

 

5の操作は

処理の内容によって自動で終了したり

人の手で終了させたり

別のプログラム(プロセス)が終了させたりする

 

3~5まではプログラミング以外での普通のコンピュータの使われ方だ

これは

3「実行」または「起動」

4「処理」

5「終了」

と言われる

 

つまり1と2と6がプログラミング特有の行為となる

1「コーディング」

2「コンパイル」「ビルド」

6の名前はない

だが6を行わなければプログラミングとは言えないと思う

名前をつけるとすれば「リトライ(再挑戦)」だろうか?

 

下でこれらの用語を使いつつおさらいしてみる

 

用語を使ったプログラミングの流れ

  1. (人が)「コーディング」
  2. (人が命令する)→(ソフトウェアが)「コンパイル
  3. (人が・別のプロセスが)「起動」または「実行」
  4. (コンピュータが)「処理」
  5. (自動・人が・別のプロセスが)「終了」
  6. 「リトライ(再挑戦)」

 

6「リトライ(再挑戦)」の必要がないと感じた時

プログラムは完成しプログラミングは終了する

 

つまり自分の作り出したプログラムに不満がある限り

真の意味でのプログラミングは続いていくのだ

 

不満が残りつつもリトライ(再挑戦)しない場合は

妥協的中断と言えるだろう

 

世に溢れるプログラムのほとんどが

この妥協的中断の産物なのだと思う

 

しかし妥協的中断であるが故に

プログラムは進化を続け

僕らはその恩恵に預かることができる

 

妥協的中断を恐れず

プログラムを書き続けることが

プログラミングなのだと思う