大型汎用機(メインフレーム)の機械命令(マシン語)に NOP 命令というのがある。私が 1980 年代末に計算機プログラミングを習いはじめた時,面食らったもののひとつである。これは要するに「何もしない」という命令
「何もしない」命令なんてどうして必要なのだろうかと誰しも思うだろう。ところが,沈黙が文芸表現において意味をもつように,「何もしない」命令が素晴らしいトリックを実現する場合がある。計算機の世界でも,沈黙が時に雄弁に勝ることがある。
たとえば,アセンブラで書いたプログラムにおいて BC
汎用機プログラミングのコードにはこれに類するトリックがゴマンとあった。先輩のプログラムをメンテナンスした時のこと,意味不明の DS 命令(Define Storage: 領域確保命令)が書かれていて「これ何ですか」と訊いた。アセンブラは領域の制御をすべてプログラマの知性に委ねることができる。アセンブルリストを解析すれば,記憶装置のどの位置にどのバイナリコードが配置されているかが正確に分る。ローディングされた時,高速化の鍵を握るループ処理がきちんとプロセッサの超高速バイポーラ一次キャッシュに収納可能かを正確に設計することができる。記憶域セグメントに余裕があると,プログラムの問題修正時にパッチをあてる領域を確保しておくことがある。こうしておくとメモリ配置に影響のある実行サイズを変えることなくプログラムに追加/修正コードを付加できるわけだ。先輩の領域確保命令の意図はそのようなものであった。
LaTeX の \relax についても一度定義したマクロ命令を無効化するのに利用でき,同じマクロ命令の意味を状況に応じて変更する使い方がある。もちろんそのほかに「何もしない」ことが逆説的に機能するいろんな局面がある。さあ,リラックスしてプログラムに魔法をお掛けしよう — LaTeX の作者・クヌース教授の懐の深さが知れるというものである。
「何もしない」命令。これは計算機科学者による最高の諧謔だと私は思う。