X3J13 は、国際情報技術標準化委員会(INCITS、当時はX3と名付けられていた)の一部である技術委員会の名前です。X3J13 委員会は、Guy L. Steele Jr. 著のCommon Lisp the Language ( CLtLまたはCLtL1とも呼ばれる)の初版に基づいて、米国規格協会(ANSI) Common Lisp標準を策定するために1986年に結成されました。この初版は、以前はこの言語の事実上の標準でした。X3J13 の主な成果は、1994 年 12 月 8 日に承認されたプログラミング言語Common Lispの米国規格 (X3.226/1994) でした。X3J13は後に、国際標準化機構(ISO) ワーキンググループSC22/WG16と連携して、ISLISPと呼ばれるLispの国際的に標準化された方言に取り組みました。
組織
委員会の初代委員長はオハイオ州立大学のロバート・マティス博士で、メアリー・ヴァン・デューセンが書記を務めた。 ガイ・L・スティール・ジュニアが当初副委員長だった。後年、マティスが委員長を退任し、スティールがその役割を引き継いだ。
委員会の取り組みは委員会の憲章に基づいて行われ、その憲章の作成が成功したのは、アモコ・プロダクション・カンパニーの代表であるスーザン・P・エニスの調整努力によるものである。[1] 憲章には委員会の目標と優先事項、および取り組むべきいくつかのトピックの大まかなリストが示されている。
小委員会
委員会は、メンバーが努力をより集中できるようにするためにいくつかの小委員会を設置した。
クリーンアップ小委員会
ラリー・マシンターが議長を務めるクリーンアップ小委員会は、投票のための提案提出の標準フォーマットを確立しました。これらの問題記述[2]は、それ自体は標準の一部ではありませんが、読者の利益のためにCommon Lisp HyperSpecに含めて相互参照することは十分に有益であると考えられ、委員会の決定における当初の意図に関する情報を提供します。これらの記述は、最終的に採用されなかった問題に対する代替ソリューションの歴史的記録としても役立ちます。
コンパイラ小委員会
Sandra Loosemore が議長を務めるこの小委員会は、Lisp のコンパイルに関する問題に対する提案を作成しました。Guy Steele はCommon Lisp the Languageの第 2 版で、第 1 版で説明されているコンパイル プロセスを明確にするためのコンパイラ小委員会の多大な貢献を認めています。Steele は、その一部について「あいまい」と表現しています。[3]
反復小委員会
ジョン・L・ホワイトは反復小委員会の委員長を務めた。このグループが扱った問題の中には、一般化LOOP マクロ(ドメイン固有言語)があった。これはCLtL第2版で1章を割いている。このマクロの「ALGOL風」構文は、Lispのより一般的なS式構文とは異なり、当時も今も多少議論の的となっている。[4]
キャラクター小委員会
Thom Linden が委員長を務める文字小委員会は、さまざまな文字セットを取り巻く問題に標準がどのように対処するかを定義する任務を負っていました。これらの問題、特にシンボル名に任意の文字を使用できる機能の解決は、Common Lisp を国際的なユーザーにとってよりシンプルなものにすることを目的としていました。
エラー処理小委員会
ケント・ピットマンが委員長を務めるエラー処理小委員会は、エラー、警告、その他の例外的な状況 を処理するための一般的なメカニズムである条件システムによって、 「Common Lispにおける最大の未解決の欠陥」[3]と言われたものを塞いだ。
委員会は、結果として得られた仕様を「エラー システム」ではなく「条件システム」と呼んだ[5]。これは、致命的か非致命的か、継続可能か不可能か、プログラム エラーの結果か単純なリソース制限 (スタック オーバーフローなど) かを問わず、さまざまな種類の例外的な状況を処理する1 つのシステムに対応するためである。 [6] 条件はコード内のある時点で通知され、別の時点で処理される可能性がある。この「シグナル」という用語の使用は、一般的なオペレーティング システムのシグナルの概念とは異なる(この用語のさまざまな使用法が進化したLisp マシンを除く[7] )。オペレーティング システムのシグナルの概念は、この委員会の作業範囲外であり、ANSI Common Lisp 標準では取り上げられなかった。非同期割り込みと IEEE 浮動小数点トラッピングも、この委員会の作業範囲外であり、標準では取り上げられなかった。
起草小委員会
キャシー・チャップマンは、実際の標準文書の起草を担当する起草小委員会の委員長でした。さらに、小委員会は、委員会の活動全体を通じて 用語の一貫性と正確性を維持するための取り組みを監督しました。
最終文書
X3J13 委員会によって作成された最終的な標準は、アメリカ国家規格X3.226 として公開され、ハイパーテキスト形式でCommon Lisp HyperSpecとしても公開されました。
関係Common Lisp 言語
Common Lisp the Languageという本は、主にGuy L. Steele Jr.によって執筆されましたが、1980 年頃に結成され、 X3J13 の結成前にCommon Lispの元の事実上の標準を作成するために協力して作業していた特別委員会の成果でした。X3J13 はCommon Lisp the Languageを基本文書として作業を開始し、そこから ANSI Common Lisp となるものの設計を進めました。Steele は委員会の一員であり、委員会の作業で初版の一部または全部を使用する許可を与えました。
X3J13 によって公開された文書は、後に、特定の委員会メンバーからの引用とともに、1990 年にリリースされたCommon Lisp the Language第 2 版の作成に使用され、Common Lisp コミュニティは、委員会の最終的な標準文書に現れると予想されていた多くの機能を事前に確認できるようになりました。その版は、形式は異なりますが、内容は標準に似ています。ただし、本の出版から ANSI 標準の最終草案までの間に、追加と削除の両方の形で実質的な変更が行われました。
まとめると、Common Lisp the Languageの初版は、X3J13 が元々その作業のベースとした文書でした。対照的に、第 2 版は Steele 自身の作業であり、委員会の成果物ではなく、X3J13 または ANSI 内で公式の地位を持っていませんでした。第 2 版の序文で認められているように、X3J13 によって承認されたものではなく、進行中の作業のスナップショットとしての内容の選択は X3J13 と正式に同期されておらず、最終版は X3J13 によってレビューまたは承認されていませんでした。
参照
- コモンリスプ
- ANSI
- INCITS(旧称X3)、X3J13の親天体
- Common Lisp 言語– Guy L. Steele Jr.の本
- Common Lisp HyperSpec –標準のハイパーテキスト版
参考文献
- ^ Pitman, Kent M. (1999年4月18日). 「X3J13 Charter (annotated)」. NH Place . 2018年12月19日閲覧。
- ^ Masinter, Larry. 「X3J13 のリポジトリはクリーンアップの問題に合格しました」。Xerox PARC。
- ^ ab Steele, Guy L. Jr. (1984). 「謝辞」。Common Lisp the Language (第 2 版)。マサチューセッツ州メイナード: Digital Press。ISBN 0-932376-41-X。
- ^ Steele, Guy L. Jr. ; Gabriel, Richard P. (1993). 「Lisp の進化」(PDF) . ACM SIGPLAN Notices . 28 (3): 85, 231–270. doi :10.1145/155360.155373 . 2018-12-19に閲覧。
- ^ Pitman, Kent M. (1988年3月12日). 「Common Lisp Condition System, Revision #18」. NH Place . 2018年12月19日閲覧。
- ^ Pitman, Kent M. (1985 年 2 月). 「マサチューセッツ工科大学、人工知能研究所、ワーキングペーパー 268: Lisp の例外的な状況」(PDF) . DSpace@MIT、MIT 図書館. マサチューセッツ工科大学. 2018 年 12 月 19 日閲覧。
- ^ Andre, David L.; Greenberg, Bernard S.; Moon , David A .; McMahon, Mike; Weinreb, Daniel L. (1983). 信号とハンドリング条件(レポート)。、Symbolics, Inc. のハードコピー出版物。
外部リンク
- X3J13 Ansi Common Lisp 委員会の作業ファイル
- X3J13 チャーター (X3J13/SD-05)
- Common Lisp ハイパースペック
- Common LISPCleanup 技術レポート
- 清掃委員会提案書フォーマット
