プログラムの中にプログラム?(3)
(この記事は前のブログ記事の続きです)
当時、仕事でプログラムを書く時はFORTRAN(フォートラン)を使っていました。Pascal(パスカル)でプログラムを書くことはありません。
まあ、仕方ない。
こんにちは。ディーキャリアITエキスパート名古屋丸の内オフィスの志村です。
そうやって仕事をしていると、仕事場(当時は名古屋大学プラズマ研究所の計算機センターにいました)にUnixワークステーションが導入されました。
真新しいコンピュータです。しかも聞くと何百万円とかするようです。パソコンに比べたら、すごく高価です。
でも当時、プラズマ研究所の計算機センターにこれを使える人がいませんでした。
何故、このワークステーション買ったの?と思っていました。
ここでは、皆が富士通の大型計算機を使っていましたから、Unix(ユニックス)を知っている人がほとんどいません。
誰かが使えば良い・・・新しい技術を根付かせるために買った。買ってみた・・・ようです。
それで実はパソコンのMS-DOSはUnixに似せて作られたOSでしたから、ためらいがちにですが手を上げました。
使えそうな気がしたのです。
(結果的に、コマンドとファイルシステムは似ているので何とか使えました)
Unixワークステーションを使ってみます。
『まずはワークステーション上で何かプログラムを動かしてみなさい』という指示がありました。
めちゃくちゃ適当な指示ですね(笑)
結局、Unixワークステーションで、C言語でプログラムを書くことになりました。
C言語は当時、先進的なプログラミング言語でした。今から40年程前のことです。
Pascalは仕事の現場ではほとんど使われませんでした。使われたのはC言語です。
C言語も、Pascalと同じような構造化プログラミング言語です。
Cプログラミングは、最初、難しかった。リッチーという人の書いた「プログラミング言語C」という本がC言語のバイブルです。
読みましたが、よく分かりません。
特に配列とポインタ、構造体や共用体が分かりません(笑)
当時はよい教科書、参考書がほとんどありませんでした。
いろいろな参考書や雑誌を手当たり次第に読みあさって、自分なりにこれを習い覚えます。
その結果分かったことは、プログラミングの「考え方」を変えなくてはいけない、ということです。
C言語でプログラムを書き始めて、Cプログラムは「関数(function)」の塊であると理解しました。
function(関数)を組み上げてプログラムを作ります。
プログラムを考える時に、そのプログラムはどんな処理に「小分けにする」と良いかを考えます。
「処理(関数・function)」を組み上げてプログラムを作るという発想です。
それで・・・ああ、関数というのは(プログラムの)「部品」なんだな・・・と思いました。
部品をいくつか組み上げてプログラムはできています。
その部品も、さらに別の(小さな)部品を組み上げて作られている。
これが構造化プログラミングです。「構造化」とはそういうものです。
構造化プログラミングをするために、それまでの考え方と違う考え方が必要です。
ちょっとした発想の転換です。
「順番に処理を書き連ねればプログラムは出来る」・・・から、「プログラムは小さな処理に小分けにして、まとまりのある処理をいくつか組み上げて出来ている」・・・という発想に変える訳です。
さて、皆さん、最初の発想の転換を受け入れましょう。
プログラムの中に(いくつかの)プログラムがある。小分けにした(小さな)プログラムの中にも別の小さなプログラムがある。
「次は何をするか」を考えるのではなくて、「どういう部品(実際は関数ですが)があれば良いのか」・・・と考えます。
部品を考えると言いますが、最初、部品の中身がまだ分かっていないこともあります。
ちょっと面白いでしょ。中身はまだよく分からなくてもよい・・・でも、こういう部品があればプログラムは動作すると考えます。
部品が十分小さくなったら、ようやくその中に命令を書き連ねます。
小さくなっているので分かり易く、作り易いのです。
さて、この部品は再利用ができます。同じ機能が必要であれば、これをそのまま別のところに持って行っても使えます。
また、もし何か(仕様が)変更になる場合、関係する部品を見つけてその中で変更をすれば良いのです。
または「部品を取り換え」れば良い。
「構造化」することで品質も効率も大きく向上しました。プログラミングの革命だと思いました。
でも、この後、時代は「オブジェクト指向」になります。
「構造化」から「オブジェクト指向」へと移り変わっていきます。
それはまた別の記事で紹介しますね。
わたしはディーキャリアITエキスパート名古屋丸の内オフィスにいます。どうぞ、よろしく。
ディーキャリアITエキスパート名古屋丸の内オフィス
・電話052-218-4877
・メール it-nagoyamarunouchi@dd-career.com
・所在地:〒460-0002
愛知県名古屋市中区丸の内2-17-22丸の内桜通ビル2階
・HP:https://dd-career.com
ITエキスパート名古屋丸の内のブログ一覧
オフィス情報
ITエキスパート名古屋丸の内オフィス
- アクセス
- 名古屋市営地下鉄 桜通線/鶴舞線「丸の内駅」3番出口すぐ
- 電話番号
- 052-218-4877