BLOG

プログラムの中にプログラム?(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エキスパート名古屋丸の内のブログ一覧
  1. プログラミング学習 “以前”

  2. 障害者雇用(オープン就労)における技術職について

オフィス情報

ITエキスパート名古屋丸の内オフィス

名古屋市営地下鉄 桜通線/鶴舞線「丸の内駅」3番出口すぐ
052-218-4877