X3J13
Encyclopedia
X3J13 is the name of a technical committee
which was part of INCITS
(known at the time as X3). The X3J13 committee was formed in 1986 to draw up an ANSI
Common Lisp
standard based on the first edition of the book Common Lisp the Language
(also known as "CLtL", or "CLtL1"), by Guy L. Steele, Jr.
, which was previously a de facto
standard for the language. The primary output of X3J13 was an American National Standard for programming language Common Lisp
(X3.226/1994), approved December 8, 1994. X3J13 later worked with ISO working group SC22/WG16
on an internationally standardised dialect of Lisp named ISLISP
.
, with Mary van Deusen as secretary. Guy L. Steele, Jr.
was originally the vice-chair. In later years, Mathis stepped down as chair and Steele assumed that role.
The efforts of the committee were guided by its charter
, the successful creation of which is credited to the coordinating efforts of Susan P. Ennis, a representative of Amoco Production Company
. The charter lays out the committee's goals and priorities, as well as a broadly-defined list of some topics to be addressed.
to include and cross-reference
them for the benefit of readers, providing information about the original intent of the committee in its decisions. These writeups also serve as a historical record of those alternate solutions to problems which were, ultimately, not adopted.
Subcommittee. Among the issues dealt with by this subcommittee was the generalized
-like" syntax of this macro, differing from Lisp's more usual S-expression
syntax, was and remains somewhat controversial.
— was intended to make Common Lisp simpler for international users.
, the Error Handling Subcommittee plugged what was described as "the biggest outstanding hole in Common Lisp" with the condition system, a general mechanism for handling errors
, warnings, and other exceptional situations.
The committee referred to the resulting specifiction as a "condition system" rather than an "error system" in order to accommodate a single system for handling exceptional situations of various kinds, whether fatal or non-fatal, whether continuable or not, and whether the result of program error or mere resource limitation (such as stack overflow). Conditions are "signaled" at one point in the code and may be handled at another point. This usage of the term "signal" is different than the typical operating system's notion of signals
(except on Lisp machine
s where this variant usage of the term evolved); the operating system notion of signaling
was out of scope for this committee, and consequently was not addressed in the ANSI Common Lisp standard. Asynchronous interrupts and IEEE floating point trapping was also out of scope for this committee's work and was not addressed in the standard.
consistent and accurate throughout the committee's activities.
form as the Common Lisp HyperSpec
.
, although mostly authored by Guy L. Steele, Jr.
, was the product of an ad hoc committee that had formed around 1980 and had worked collaboratively to produce the original de facto standard for Common Lisp
prior to the formation of X3J13. X3J13 began its work with Common Lisp the Language as a base document and proceeded from there in the design of what would become ANSI Common Lisp. Steele himself served on the committee and gave them permission to use any or all parts of its first edition in their efforts.
Documents published by X3J13 were later used, together with quotation
s from certain committee members, in the production of the Second Edition, which was released in 1990, allowing the Common Lisp community a way to preview many features that were expected to appear in the committee's final standard document. The Second Edition of Common Lisp the Language bears similarity to the standard in content, though not in form. However, substantive changes were made, in the form of both additions and deletions, between the publication of the book and the final draft of the ANSI
standard.
In sum, the original edition of Common Lisp the Language was the document upon which X3J13 originally based its work. The Second Edition, by contrast, was Steele's personal work, not a committee product and had no official status within X3J13 or ANSI. As acknowledged in the Second Edition preface, it was not authorized by X3J13, the choice of content as a snapshot of the work in progress was not formally synchronized with X3J13, and the final version was not reviewed or approved by X3J13.
Committee
A committee is a type of small deliberative assembly that is usually intended to remain subordinate to another, larger deliberative assembly—which when organized so that action on committee requires a vote by all its entitled members, is called the "Committee of the Whole"...
which was part of INCITS
INCITS
The InterNational Committee for Information Technology Standards, or INCITS , is an ANSI-accredited forum of IT developers. It was formerly known as the X3 and NCITS....
(known at the time as X3). The X3J13 committee was formed in 1986 to draw up an ANSI
Ansi
Ansi is a village in Kaarma Parish, Saare County, on the island of Saaremaa, Estonia....
Common Lisp
Common Lisp
Common Lisp, commonly abbreviated CL, is a dialect of the Lisp programming language, published in ANSI standard document ANSI INCITS 226-1994 , . From the ANSI Common Lisp standard the Common Lisp HyperSpec has been derived for use with web browsers...
standard based on the first edition of the book Common Lisp the Language
Common Lisp the Language
Common Lisp the Language is an influential book by Guy L. Steele about Common Lisp.-Before standardization:The first edition served as the basis for the ANSI Common Lisp standard. It was written by Guy L. Steele, Jr., Scott Fahlman, Richard P. Gabriel, David A. Moon, and Daniel L...
(also known as "CLtL", or "CLtL1"), by Guy L. Steele, Jr.
Guy L. Steele, Jr.
Guy Lewis Steele Jr. , also known as "The Great Quux", and GLS , is an American computer scientist who has played an important role in designing and documenting several computer programming languages.-Biography:...
, which was previously a de facto
De facto
De facto is a Latin expression that means "concerning fact." In law, it often means "in practice but not necessarily ordained by law" or "in practice or actuality, but not officially established." It is commonly used in contrast to de jure when referring to matters of law, governance, or...
standard for the language. The primary output of X3J13 was an American National Standard for programming language Common Lisp
Common Lisp
Common Lisp, commonly abbreviated CL, is a dialect of the Lisp programming language, published in ANSI standard document ANSI INCITS 226-1994 , . From the ANSI Common Lisp standard the Common Lisp HyperSpec has been derived for use with web browsers...
(X3.226/1994), approved December 8, 1994. X3J13 later worked with ISO working group SC22/WG16
ISLISP
ISLISP is a programming language in the LISP family standardized by ISO working group ISO/IEC JTC 1/SC 22/WG 16 . The primary output of this working group was an International Standard, ISO/IEC 13816:1997, published by ISO. The standard was updated in 2007 and republished as ISO/IEC 13816:2007...
on an internationally standardised dialect of Lisp named ISLISP
ISLISP
ISLISP is a programming language in the LISP family standardized by ISO working group ISO/IEC JTC 1/SC 22/WG 16 . The primary output of this working group was an International Standard, ISO/IEC 13816:1997, published by ISO. The standard was updated in 2007 and republished as ISO/IEC 13816:2007...
.
Organisation
The original chair of the committee was Doctor Robert Mathis of Ohio State UniversityOhio State University
The Ohio State University, commonly referred to as Ohio State, is a public research university located in Columbus, Ohio. It was originally founded in 1870 as a land-grant university and is currently the third largest university campus in the United States...
, with Mary van Deusen as secretary. Guy L. Steele, Jr.
Guy L. Steele, Jr.
Guy Lewis Steele Jr. , also known as "The Great Quux", and GLS , is an American computer scientist who has played an important role in designing and documenting several computer programming languages.-Biography:...
was originally the vice-chair. In later years, Mathis stepped down as chair and Steele assumed that role.
The efforts of the committee were guided by its charter
Charter
A charter is the grant of authority or rights, stating that the granter formally recognizes the prerogative of the recipient to exercise the rights specified...
, the successful creation of which is credited to the coordinating efforts of Susan P. Ennis, a representative of Amoco Production Company
Amoco
Amoco Corporation, originally Standard Oil Company , was a global chemical and oil company, founded in 1889 around a refinery located in Whiting, Indiana, United States....
. The charter lays out the committee's goals and priorities, as well as a broadly-defined list of some topics to be addressed.
Subcommittees
The committee formed several subcommittees to help its members better concentrate their efforts.Cleanup subcommittee
The Cleanup Subcommittee, chaired by Larry Masinter, established a standardised format for the submission of proposals for voting. These issue writeups, while not themselves part of the standard, were deemed sufficiently useful for the Common Lisp HyperSpecCommon Lisp HyperSpec
The Common Lisp HyperSpec is a hypertext html document which is not the ANSI Common Lisp standard, but is based on it with permission from ANSI and X3. It is copyrighted by LispWorks Ltd...
to include and cross-reference
Cross-reference
A cross-reference is an instance within a document which refers to related or synonymous information elsewhere, usually within the same work. To cross-reference or to cross-refer is to make such connections. The term "cross-reference" is often abbreviated as x-ref, xref, or, in computer science,...
them for the benefit of readers, providing information about the original intent of the committee in its decisions. These writeups also serve as a historical record of those alternate solutions to problems which were, ultimately, not adopted.
Compiler subcommittee
Chaired by Sandra Loosemore, this subcommittee created proposals for issues relating to Lisp compilation. Guy Steele acknowledged in the second edition of Common Lisp the Language the large contribution of the Compiler Subcommittee toward clarifying the compilation process described in the first edition, parts of which Steele himself describes as "vague".Iteration subcommittee
Jon L. White was the chair of the IterationIteration
Iteration means the act of repeating a process usually with the aim of approaching a desired goal or target or result. Each repetition of the process is also called an "iteration," and the results of one iteration are used as the starting point for the next iteration.-Mathematics:Iteration in...
Subcommittee. Among the issues dealt with by this subcommittee was the generalized
LOOP
macro — a domain-specific language to which the second edition of CLtL devoted an entire chapter. The "ALGOLALGOL
ALGOL is a family of imperative computer programming languages originally developed in the mid 1950s which greatly influenced many other languages and became the de facto way algorithms were described in textbooks and academic works for almost the next 30 years...
-like" syntax of this macro, differing from Lisp's more usual S-expression
S-expression
S-expressions or sexps are list-based data structures that represent semi-structured data. An S-expression may be a nested list of smaller S-expressions. S-expressions are probably best known for their use in the Lisp family of programming languages...
syntax, was and remains somewhat controversial.
Character subcommittee
The Character Subcommittee, chaired by Thom Linden, had the task of defining how the standard would deal with the issues surrounding different character sets. The resolution of these matters — particularly the ability to use any character in the name of a symbolSymbol (Lisp)
A symbol in computer programming is a primitive datatype whose instances have a unique human-readable form. Symbols can be used as identifiers. In some programming languages, they are called atoms....
— was intended to make Common Lisp simpler for international users.
Error handling subcommittee
Chaired by Kent PitmanKent Pitman
Kent M. Pitman is the President of and has been involved for many years in the design, implementation and use of Lisp and Scheme systems. He is often better known by his initials KMP.Kent Pitman is the author of the Common Lisp Condition System...
, the Error Handling Subcommittee plugged what was described as "the biggest outstanding hole in Common Lisp" with the condition system, a general mechanism for handling errors
Exception handling
Exception handling is a programming language construct or computer hardware mechanism designed to handle the occurrence of exceptions, special conditions that change the normal flow of program execution....
, warnings, and other exceptional situations.
The committee referred to the resulting specifiction as a "condition system" rather than an "error system" in order to accommodate a single system for handling exceptional situations of various kinds, whether fatal or non-fatal, whether continuable or not, and whether the result of program error or mere resource limitation (such as stack overflow). Conditions are "signaled" at one point in the code and may be handled at another point. This usage of the term "signal" is different than the typical operating system's notion of signals
Signal (computing)
A signal is a limited form of inter-process communication used in Unix, Unix-like, and other POSIX-compliant operating systems. Essentially it is an asynchronous notification sent to a process in order to notify it of an event that occurred. When a signal is sent to a process, the operating system...
(except on Lisp machine
Lisp machine
Lisp machines were general-purpose computers designed to efficiently run Lisp as their main software language. In a sense, they were the first commercial single-user workstations...
s where this variant usage of the term evolved); the operating system notion of signaling
Signal (computing)
A signal is a limited form of inter-process communication used in Unix, Unix-like, and other POSIX-compliant operating systems. Essentially it is an asynchronous notification sent to a process in order to notify it of an event that occurred. When a signal is sent to a process, the operating system...
was out of scope for this committee, and consequently was not addressed in the ANSI Common Lisp standard. Asynchronous interrupts and IEEE floating point trapping was also out of scope for this committee's work and was not addressed in the standard.
Drafting subcommittee
Kathy Chapman was the chair for the Drafting Subcommittee, which was responsible for the drafting of the actual standard document. In addition, the subcommittee oversaw efforts to keep terminologyTerminology
Terminology is the study of terms and their use. Terms are words and compound words that in specific contexts are given specific meanings, meanings that may deviate from the meaning the same words have in other contexts and in everyday language. The discipline Terminology studies among other...
consistent and accurate throughout the committee's activities.
Final document
The final standard produced by the X3J13 committee was published as American National Standard X3.226, and also in hypertextHypertext
Hypertext is text displayed on a computer or other electronic device with references to other text that the reader can immediately access, usually by a mouse click or keypress sequence. Apart from running text, hypertext may contain tables, images and other presentational devices. Hypertext is the...
form as the Common Lisp HyperSpec
Common Lisp HyperSpec
The Common Lisp HyperSpec is a hypertext html document which is not the ANSI Common Lisp standard, but is based on it with permission from ANSI and X3. It is copyrighted by LispWorks Ltd...
.
Relation to "Common Lisp the Language"
The book Common Lisp the LanguageCommon Lisp the Language
Common Lisp the Language is an influential book by Guy L. Steele about Common Lisp.-Before standardization:The first edition served as the basis for the ANSI Common Lisp standard. It was written by Guy L. Steele, Jr., Scott Fahlman, Richard P. Gabriel, David A. Moon, and Daniel L...
, although mostly authored by Guy L. Steele, Jr.
Guy L. Steele, Jr.
Guy Lewis Steele Jr. , also known as "The Great Quux", and GLS , is an American computer scientist who has played an important role in designing and documenting several computer programming languages.-Biography:...
, was the product of an ad hoc committee that had formed around 1980 and had worked collaboratively to produce the original de facto standard for Common Lisp
Common Lisp
Common Lisp, commonly abbreviated CL, is a dialect of the Lisp programming language, published in ANSI standard document ANSI INCITS 226-1994 , . From the ANSI Common Lisp standard the Common Lisp HyperSpec has been derived for use with web browsers...
prior to the formation of X3J13. X3J13 began its work with Common Lisp the Language as a base document and proceeded from there in the design of what would become ANSI Common Lisp. Steele himself served on the committee and gave them permission to use any or all parts of its first edition in their efforts.
Documents published by X3J13 were later used, together with quotation
Quotation
A quotation or quote is the repetition of one expression as part of another one, particularly when the quoted expression is well-known or explicitly attributed by citation to its original source, and it is indicated by quotation marks.A quotation can also refer to the repeated use of units of any...
s from certain committee members, in the production of the Second Edition, which was released in 1990, allowing the Common Lisp community a way to preview many features that were expected to appear in the committee's final standard document. The Second Edition of Common Lisp the Language bears similarity to the standard in content, though not in form. However, substantive changes were made, in the form of both additions and deletions, between the publication of the book and the final draft of the ANSI
Ansi
Ansi is a village in Kaarma Parish, Saare County, on the island of Saaremaa, Estonia....
standard.
In sum, the original edition of Common Lisp the Language was the document upon which X3J13 originally based its work. The Second Edition, by contrast, was Steele's personal work, not a committee product and had no official status within X3J13 or ANSI. As acknowledged in the Second Edition preface, it was not authorized by X3J13, the choice of content as a snapshot of the work in progress was not formally synchronized with X3J13, and the final version was not reviewed or approved by X3J13.
See also
- Common LispCommon LispCommon Lisp, commonly abbreviated CL, is a dialect of the Lisp programming language, published in ANSI standard document ANSI INCITS 226-1994 , . From the ANSI Common Lisp standard the Common Lisp HyperSpec has been derived for use with web browsers...
- ANSIAnsiAnsi is a village in Kaarma Parish, Saare County, on the island of Saaremaa, Estonia....
- INCITSINCITSThe InterNational Committee for Information Technology Standards, or INCITS , is an ANSI-accredited forum of IT developers. It was formerly known as the X3 and NCITS....
(formerly known as X3), X3J13's parent body - Common Lisp the LanguageCommon Lisp the LanguageCommon Lisp the Language is an influential book by Guy L. Steele about Common Lisp.-Before standardization:The first edition served as the basis for the ANSI Common Lisp standard. It was written by Guy L. Steele, Jr., Scott Fahlman, Richard P. Gabriel, David A. Moon, and Daniel L...
- Guy L. Steele, Jr.Guy L. Steele, Jr.Guy Lewis Steele Jr. , also known as "The Great Quux", and GLS , is an American computer scientist who has played an important role in designing and documenting several computer programming languages.-Biography:...
's book - Common Lisp HyperSpecCommon Lisp HyperSpecThe Common Lisp HyperSpec is a hypertext html document which is not the ANSI Common Lisp standard, but is based on it with permission from ANSI and X3. It is copyrighted by LispWorks Ltd...
- the hypertextHypertextHypertext is text displayed on a computer or other electronic device with references to other text that the reader can immediately access, usually by a mouse click or keypress sequence. Apart from running text, hypertext may contain tables, images and other presentational devices. Hypertext is the...
version of the standard
External links
- [ftp://parcftp.xerox.com/pub/cl/ Working files for the X3J13 Ansi Common Lisp committee]
- X3J13 Charter (X3J13/SD-05)
- The Common Lisp HyperSpec
- Common LISPCleanup tech report
- Cleanup Committee Proposal format