Short Coding 職人達の技法
ネット上で評判良かったようなので、買ってみた。
内容は「省リソースで目的の出力を果たす」というコード作成の目的にしたがって、業務には役に立ちそうにない実装コードの短縮/メモリ省力化のためのコード作成のテクニックを色々展開する代物。実務で書いたら一発で、はっ倒される、論理演算、()省略記法、未初期化変数、などなどのテクニック。
いや、懐かしい感じだ。おっさんは25年前くらいのベーマガ上のプログラムを思い出したよ。
例えば、「テンキーで自機移動。画面外に出ないように制御」って内容のコードを、現在風に書くと、
10 J=STICK(1) 20 IF J=6 THEN X=X+1 30 IF J=4 THEN X=X-1 40 IF J=2 THEN Y=Y+1 50 IF J=8 THEN Y=Y-1 60 IF X<0 THEN X=0 70 IF X>40 THEN X=40 80 IF Y<0 THEN Y=0 90 IF Y>20 THEN Y=20
と、こんな感じ。
で、当時の常識。
1 J=STICK(1):X=X+(X<40)*(J=6)-(X>0)*(J=4):Y=Y+(Y<20)*(J=2)-(Y>0)*(J=8)
当時のマシンのメモリ上の都合か、紙面上の都合か、どちらが優先されたかは分からないが、IF文なんて必要無い限り使わず、論理演算で省略出来るものはこんな感じに。
改行しないのはメモリの都合。リターンコードの1バイト分、他に使えるメモリが減る。
行番号もメモリの都合。桁数増えたらその分、減る。通常のBASICの解説本の「10ずつインクリメントして、途中に必要になった処理が間に書き込めるように」とかあったけど、そんなの完全無視な感じで。
当時のマシンはメモリ全部で、8K/16K/32Kくらいだったから、必要だったテクニックだったんだろうなぁ。その当時は弊社は、メモリを使い潰すようなコードを作ることも出来ませんでしたが、参考文献がBASICではベーマガくらいしかなかったから、これら記述方法が普通に書くものと思ってたよ。