SPITBOL(Speedy Implementation of SNOBOL)は、SNOBOL4プログラミング言語のコンパイル済み実装です。当初はIBM System/360およびSystem/370ファミリーのコンピュータ向けに開発されましたが、現在ではSPARCを含む主要なマイクロプロセッサのほとんどに移植されています。イリノイ工科大学に在籍していたロバート・デュワーとケン・ベルチャーによって開発されました。
SPITBOL の開発以前は、SNOBOL4 は動的であるため、処理速度が遅く、メモリを大量に消費し、コンパイルが不可能だと考えられていました。遅延バインディングによりコンパイル時にすべてが決定されることはありませんが、SPITBOL は可能な限り早期に決定を下すためのさまざまな戦略を採用しています。最新バージョンの SPITBOL コンパイラが利用可能です。2001 年以降、オリジナルの SPITBOL 360 コンパイラのソースコードはGNU General Public Licenseの下で公開されています。[ 1 ]
MACRO SPITBOL は、1970 年代にRobert Dewarと Anthony P. McCannによって書かれた SPITBOL の実装です。[ 2 ] MACRO SPITBOL は、抽象マシン用のアセンブリ言語である MINIMAL でコーディングされています。命令セットは、実装にある程度の自由度を持たせるように慎重に定義されており、文字列処理に適したハードウェア操作を活用できます。[ 3 ]
マイクロコンピュータでの解釈用に設計された MINIMAL の実装は、SPITBOL で実装されたトランスレータを使用して MINIMAL を MICRAL に変換することによって行われました。 MACRO SPITBOL の MICRAL バージョンと MICRAL インタープリタは 40K バイト未満で実行されました。[ 4 ]この MICRAL の極端なオブジェクト コード圧縮は、オブジェクト コードとマクロ テーブルに必要なスペースを最小限に抑える一連のマシン コード マクロ置換を使用して実現されています。この問題の最適な解法の既知のアルゴリズムの複雑さは高いですが、効率的なヒューリスティックによりほぼ最適な結果が得られます。[ 5 ]
MACRO SPITBOL のソースコードは、2009 年 4 月 17 日にGNU General Public Licenseの下で公開されました。 [ 6 ]