レガシーシステムというものは厄介なものだ。先輩たちの構築したシステムをパワーアップして新しい機能を追加したりして、卒業論文を作る必要があった。
先輩の残していったシステムはなんと BASIC で書かれていた...
まあさ、BASICは知っているよ。確かに知っているけどさ。これはレガシーにもほどがある。世にパーソナルコンピュータの爆誕に貢献し、爆速成長した BASIC言語はまさにコンピュータの歴史の礎を築いてきた。
世界最大の会社 マイクロソフトは BASICを基本としたMS-DOSというOSを開発し、世界を席巻する礎を築いた。そう素晴らしい歴史を持つ言語だ。
10 PRINT "START PROGRAM"
30 FOR I=1 TO 10 STEP 1
30 PRINT I
40 NEXT I
しきたりとして行番号というものを先頭につけてから命令を書くのだ。でも中身はまあ、なんとなくはPythonとかと同じような記述がされている。そういう意味ではあまり50年前と今のプログラミングには差がないのかもしれない。
BASICといえば魔法のようなこのコマンドが有名である。GOTOという世界最強の分岐文である。
10 A=1
20 PRINT A
30 A= A+1
40 IF A >=10 THEN GOTO 60
50 GOTO 20
60 END
どこの行でも飛べるのである。どこでもいいのだ!そんなことをすれば何がおこるかわからないような魔法のような世界である。
ということで先輩の書いたBASICのコードを読み解くところから僕の卒論は始まったわけだ。
でもまあそれはそれで面白いということも言えよう。本当にこんなコードが動く機械はもはや世界には存在しないのだからありがたいといえばありがたい。
とにかくコードに改造を加えて僕は晴れて卒業をしたのであった。でもまあ勉強好きなので(あと遊びたいしな)大学院に進んだわけだ。
僕は真の高級言語と戯れる環境を得たのだ
int main(){
printf("Hello World\n");
return 0;
}
なんと行番号を書かなくてもいい!なんて読みやすい構造なんだろう。ブロックごとに{ }波括弧で仕切りがある。 intと表記があり、関数の結果のデータ形式が一目瞭然ではないか!
素晴らしい!
素晴らしい!
これが僕とC言語との出会いであった。
BASICと格闘した日々がなければこの感動は生まれなかったであろう。C言語には最高という称賛の言葉しか思い浮かばなかった。
http://www016.upp.so-net.ne.jp/louvre/tips/engineering/language/n88basic/about.html