X3J13 es el nombre de un comité técnico que formaba parte del Comité Internacional de Estándares de Tecnología de la Información (INCITS, entonces llamado X3 ). El comité X3J13 se formó en 1986 para elaborar un American National Standards Institute (ANSI) Common Lisp estándar basado en la primera edición del libro Common Lisp la Lengua (también denominado CLtL o CLtL1 ), por Guy L. Steele Jr. , que anteriormente era un estándar de facto para el idioma. La salida principal de X3J13 fue un estándar nacional estadounidense para el lenguaje de programación Common Lisp(X3.226 / 1994), aprobado el 8 de diciembre de 1994. X3J13 trabajó más tarde con el grupo de trabajo SC22 / WG16 de la Organización Internacional de Normalización (ISO) en un dialecto de Lisp estandarizado internacionalmente llamado ISLISP .
Organización
El presidente original del comité fue el doctor Robert Mathis de la Universidad Estatal de Ohio , con Mary van Deusen como secretaria. Guy L. Steele Jr. fue originalmente el vicepresidente. En años posteriores, Mathis dejó el cargo de presidente y Steele asumió ese papel.
Los esfuerzos del comité se guiaron por su estatuto , cuya exitosa creación se atribuye a los esfuerzos de coordinación de Susan P. Ennis, representante de Amoco Production Company. [1] La carta establece los objetivos y prioridades del comité, y una lista ampliamente definida de algunos temas que se abordarán.
Subcomités
El comité formó varios subcomités para ayudar a sus miembros a concentrar mejor sus esfuerzos.
Subcomité de limpieza
El Subcomité de Limpieza, presidido por Larry Masinter, estableció un formato estandarizado para la presentación de propuestas para votación. Estos informes de problemas, [2] aunque no forman parte del estándar, se consideraron suficientemente útiles para que Common Lisp HyperSpec los incluyera y realizara referencias cruzadas para beneficio de los lectores, proporcionando información sobre la intención original del comité en sus decisiones. Estos informes también sirven como un registro histórico de esas soluciones alternativas a los problemas que, en última instancia, no se adoptaron.
Subcomité de compiladores
Presidido por Sandra Loosemore, este subcomité creó propuestas para cuestiones relacionadas con la compilación Lisp . Guy Steele reconoció en la segunda edición de Common Lisp the Language la gran contribución del Subcomité de Compiladores para aclarar el proceso de compilación descrito en la primera edición, partes del cual Steele describe como "vagas". [3]
Subcomité de iteración
Jon L. White fue el presidente del Subcomité de Iteración . Entre los temas tratados por este grupo se encontraba la LOOP
macro generalizada , un lenguaje de dominio específico al que la segunda edición de CLtL dedica un capítulo completo. La sintaxis "similar a ALGOL " de esta macro, que difiere de la sintaxis de expresión-s más habitual de Lisp , fue y sigue siendo algo controvertida. [4]
Subcomité de personajes
El Subcomité de caracteres, presidido por Thom Linden, tenía la tarea de definir cómo la norma trataría los problemas relacionados con los diferentes conjuntos de caracteres . La resolución de estos asuntos, particularmente la capacidad de usar cualquier carácter en el nombre de un símbolo , tenía la intención de simplificar Common Lisp para los usuarios internacionales.
Subcomité de manejo de errores
Presidido por Kent Pitman , el Subcomité de Manejo de Errores tapó lo que se describió como "el mayor agujero pendiente en Common Lisp" [3] con el sistema de condición , un mecanismo general para manejar errores , advertencias y otras situaciones excepcionales.
El comité se refirió a la especificación resultante como un "sistema de condiciones" en lugar de un "sistema de error" [5] para acomodar un sistema para manejar situaciones excepcionales de varios tipos, ya sean fatales o no fatales, continuables o no, y si el resultado de un error del programa o un límite de recursos simple (como un desbordamiento de pila). [6] Las condiciones se señalan en un punto del código y pueden manejarse en otro punto. Este uso del término "señal" es diferente de la noción de señales del sistema operativo típico (excepto en las máquinas Lisp donde esta variante del uso del término evolucionó [7] ); la noción de señalización del sistema operativo estaba fuera del alcance de este comité y, en consecuencia, no se abordó en el estándar ANSI Common Lisp. Las interrupciones asincrónicas y la captura de punto flotante IEEE también estaban fuera del alcance del trabajo de este comité y no se abordaron en el estándar.
Subcomité de redacción
Kathy Chapman fue la presidenta del Subcomité de Redacción, que fue responsable de la redacción del documento estándar actual . Además, el subcomité supervisó los esfuerzos para mantener la terminología coherente y precisa en todas las actividades del comité.
Documento final
El estándar final producido por el comité X3J13 se publicó como Estándar Nacional Estadounidense X3.226, y también en forma de hipertexto como Common Lisp HyperSpec .
Relación con Common Lisp the Language
El libro Common Lisp the Language , aunque fue escrito principalmente por Guy L. Steele Jr. , fue el producto de un comité ad hoc que se había formado alrededor de 1980 y había trabajado en colaboración para producir el estándar original de facto para Common Lisp antes de la formación de X3J13. . X3J13 comenzó su trabajo con Common Lisp the Language como documento base y desde allí procedió al diseño de lo que se convertiría en ANSI Common Lisp. Steele formó parte del comité y les dio permiso para usar alguna o todas las partes de su primera edición en sus esfuerzos.
Los documentos publicados por X3J13 se utilizaron más tarde, junto con citas de ciertos miembros del comité, en la producción de Common Lisp the Language Second Edition, que se lanzó en 1990, lo que le dio a la comunidad de Common Lisp una forma de obtener una vista previa de muchas características que se esperaba que aparecieran en el documento estándar final del comité. Esa edición tiene similitud con el estándar en contenido, aunque no en forma. Sin embargo, se realizaron cambios sustanciales, en forma de adiciones y eliminaciones, entre la publicación del libro y el borrador final de la norma ANSI.
En resumen, la edición original de Common Lisp the Language fue el documento en el que X3J13 basó originalmente su trabajo. La Segunda Edición, por el contrario, fue obra del propio Steele, no un producto de un comité y no tenía un estatus oficial dentro de X3J13 o ANSI. Como se reconoce en el prefacio de la Segunda Edición, no fue autorizado por X3J13, la elección del contenido como una instantánea del trabajo en progreso no se sincronizó formalmente con X3J13, y la versión final no fue revisada ni aprobada por X3J13.
Ver también
- Lisp común
- ANSI
- INCITS (anteriormente llamado X3), el cuerpo principal de X3J13
- Common Lisp the Language - Libro de Guy L. Steele Jr.
- Common Lisp HyperSpec : la versión de hipertexto del estándar
Referencias
- ^ Pitman, Kent M. (18 de abril de 1999). "Carta X3J13 (anotada)" . NH Place . Consultado el 19 de diciembre de 2018 .
- ^ Maestro, Larry. "El repositorio de X3J13 pasó problemas de limpieza" . Xerox PARC .
- ^ a b Steele, Guy L. Jr. (1984). "Expresiones de gratitud". Common Lisp the Language (segunda ed.). Maynard, Massachusetts : Prensa digital . ISBN 0-932376-41-X.
- ^ Steele, Guy L. Jr .; Gabriel, Richard P. (1993). "La evolución de Lisp" (PDF) . Avisos ACM SIGPLAN . 28 (3): 85, 231–270. doi : 10.1145 / 155360.155373 . Consultado el 19 de diciembre de 2018 .
- ^ Pitman, Kent M. (12 de marzo de 1988). "Common Lisp Condition System, revisión # 18" . NH Place . Consultado el 19 de diciembre de 2018 .
- ^ Pitman, Kent M. (febrero de 1985). "Instituto de tecnología de Massachusetts, laboratorio de inteligencia artificial, documento de trabajo 268: situaciones excepcionales en Lisp" (PDF) . DSpace @ MIT, Bibliotecas MIT . Instituto de Tecnología de Massachusetts . Consultado el 19 de diciembre de 2018 .
- ^ Andre, David L .; Greenberg, Bernard S .; Moon, David A .; McMahon, Mike; Weinreb, Daniel L. (1983). Condiciones de señalización y manipulación (Informe)., una publicación impresa de Symbolics, Inc.
enlaces externos
- Archivos de trabajo para el comité X3J13 Ansi Common Lisp
- Carta X3J13 (X3J13 / SD-05)
- El HyperSpec de Common Lisp
- Informe técnico común de LISPCleanup
- Formato de propuesta del comité de limpieza