Cannon catとFORTHプログラムによるアプリケーション

Catは基本的にFORTHで書かれている。このFORTHのマニュアルはbitsaversで公開されている:

特にテクニカルドキュメンテーションはデータ構造などの詳細も解説している。UIの中心である文字列検索にはKMP( http://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%8C%E3%83%BC%E3%82%B9-%E3%83%A2%E3%83%AA%E3%82%B9-%E3%83%97%E3%83%A9%E3%83%83%E3%83%88%E6%B3%95 )を使用している。
興味深い特徴は、ライブラリ手続き一つ一つに発音が設定されている点だろう。例えば手続き(ワード) update! は up'date store と発音するらしい。(schemeのように、!を破壊的storeとしている)。この設定がギャグなのか、社内マニュアルとしてコミュニケーションを促進するためだったのかは定かで無い。
この構造はどこかemacsを彷彿とさせる。emacsemacs Lispで殆どが構成されているが、同様にCannon CatはLispのかわりにFORTHで全体を構成している。emacsより強力な点は、他の高級言語が介在していない(と思われる)点だろう。
Cannon Catは現代的なコンピューティングにかなり近いものを実現している。つまり、電源ONですぐに使用でき、継続的にデータは保存される。しかし、マジックワードを入力することですぐにFORTHインタプリタを使用して内部にアクセスできるCatと異なり、近年のコンピュータは内部にアクセスするためのプログラマブルなインターフェースは統合されない傾向にある。(FirefoxのようなWebブラウザは重要な例外だろう。)
emacsとCatを大きく隔てているのは、emacsはファイルのエディタであるのに対し、Catにはそもそもファイルの概念が無いことだろう。ファイルの概念は年々希薄になっている。何かを書いてファイル名を付けるのはプログラミングするときくらいでは無いだろうか。
もちろん我々は逆方向も実現しないといけない。プログラミングするときにファイル名を要求しないほうがスマートと言える。実際、jsdo.itのようにファイル名を要求しない環境もそれなりにある。