SLIPは、1960年代にジョセフ・ワイゼンバウムによって発明されたリスト処理型コンピュータプログラミング言語です。SLIPという名称は、対称型リストプロセッサ(Symmetric List Processor)の略です。当初はFortranプログラミング言語の拡張として実装され、後にMADやALGOLに組み込まれました。[ 1 ]この言語で書かれた最も有名なプログラムは、ワイゼンバウム[ 2 ]がMIT人工知能研究所で作成した初期の自然言語処理コンピュータプログラムであるELIZAです。[ 3 ]
簡単に言えば、SLIPは固定サイズのデータフィールドを持つ循環的な二重連結リストを操作するFORTRANの「アクセサ」関数のセットで構成されていました。これらの「アクセサ」関数には、直接アドレス指定と間接アドレス指定の2つのバリエーションがありました。
リスト表現には、リーダー、ヘッダー、サブリスト インジケータ、ペイロードセルの 4 種類のセルがありました。ヘッダーには、ガベージ コレクション用の参照カウント フィールドが含まれていました。サブリスト インジケータを使用すると、(A、B、C、(1、2、3)、D、E、F) などのネストされたリストを表すことができます。ここで、(1、2、3) は、リスト (A、B、C、*、D、E、F) の '*' 位置にあるセルで示されるサブリストです。リーダーは、基本的に状態履歴スタック ( memento パターンの良い例)であり、各セルは、読み取られているリストのヘッダー、読み取られているリスト内の現在位置、および履歴スタックのレベルまたは深さを指し示します。