SETL (SET Language) es un lenguaje de programación de muy alto nivel basado en la teoría matemática de conjuntos . Fue desarrollado originalmente por (Jack) Jacob T. Schwartz en el Instituto Courant de Ciencias Matemáticas de la Universidad de Nueva York (NYU) a fines de la década de 1960.
Paradigma | multi-paradigma : imperativo , procedimental , estructurado , orientado a objetos |
---|---|
Diseñada por | (Jack) Jacob T. Schwartz |
Desarrollador | Instituto Courant de Ciencias Matemáticas |
Apareció por primera vez | 1969 |
Lanzamiento estable | 1.1 / 7 de enero de 2005 |
Disciplina de mecanografía | Dinámica |
Sitio web | setl |
Influenciado por | |
ALGOL 60 | |
Influenciado | |
SETL2 , ISETL , SETLX , ABC |
Diseño
SETL proporciona dos tipos de datos agregados básicos: conjuntos desordenados y secuencias (estas últimas también llamadas tuplas ). Los elementos de conjuntos y tuplas pueden ser de cualquier tipo arbitrario, incluidos los propios conjuntos y tuplas. Los mapas se proporcionan como conjuntos de pares (es decir, tuplas de longitud 2) y pueden tener tipos de rango y dominio arbitrarios. Las operaciones primitivas en SETL incluyen membresía de conjuntos, unión, intersección y construcción de conjuntos de poder, entre otras.
SETL proporciona expresiones booleanas cuantificadas construidas utilizando los cuantificadores universales y existenciales de la lógica de predicados de primer orden .
SETL proporciona varios iteradores para producir una variedad de bucles sobre estructuras de datos agregadas.
Ejemplos de
Imprima todos los números primos del 2 al N:
print ([n en [2..N] | para todos los m en {2..n - 1} | n mod m> 0]);
La notación es similar a la comprensión de listas .
Una definición de procedimiento factorial:
procedimiento factorial (n); - calcula el factorial n! devuelve si n = 1 entonces 1 en caso contrario n * factorial (n - 1) end if;final factorial;
Una expresión SETL más convencional para factorial (n> 0):
* / [1..n]
Usos
En la década de 1970, SETL se trasladó a BESM-6 , ES EVM y otros sistemas informáticos rusos.
SETL se utilizó para una implementación temprana del lenguaje de programación Ada , llamado traductor NYU Ada / ED. [1] Esto se convirtió más tarde en la primera implementación de Ada validada, certificada el 11 de abril de 1983. [2]
Según Guido van Rossum , " el predecesor de Python , ABC , se inspiró en SETL; Lambert Meertens pasó un año con el grupo SETL en NYU antes de crear el diseño final de ABC". [3]
Variantes de idioma
SET Language 2 (SETL2), un descendiente incompatible con versiones anteriores de SETL, fue creado por Kirk Snyder del Instituto Courant de Ciencias Matemáticas de la Universidad de Nueva York a fines de la década de 1980. Como su predecesor, se basa en la teoría y la notación de conjuntos finitos, pero también ha sido influenciado en la sintaxis y el estilo por el lenguaje Ada.
El lenguaje SET interactivo (ISETL) es una variante de SETL que se utiliza en matemáticas discretas .
Referencias
- ^ Dewar, Robert BK; Fisher Jr., Gerald A .; Schonberg, Edmond; Froelich, Robert; Bryant, Stephen; Goss, Clinton F .; Burke, Michael (noviembre de 1980). "El traductor e intérprete de NYU Ada". Avisos ACM SIGPLAN - Actas del Simposio ACM-SIGPLAN sobre el lenguaje de programación Ada . 15 (11): 194-201. doi : 10.1145 / 948632.948659 . ISBN 0-89791-030-3. S2CID 10586359 .
- ^ SofTech Inc., Waltham, MA (11 de abril de 1983). "Informe de resumen de validación del compilador Ada: NYU Ada / ED, versión 19.7 V-001" . Consultado el 16 de diciembre de 2010 .CS1 maint: varios nombres: lista de autores ( enlace )
- ^ Python-Dev: SETL (era: tibio acerca de los literales de rango)
Otras lecturas
- Schwartz, Jacob T., "Establecer la teoría como lenguaje para la especificación y programación de programas". Instituto Courant de Ciencias Matemáticas, Universidad de Nueva York, 1970.
- Schwartz, Jacob T., "Sobre programación, un informe provisional sobre el proyecto SETL", Departamento de Ciencias de la Computación, Instituto Courant de Ciencias Matemáticas, Universidad de Nueva York (1973).
- Schwartz, Jacob T., Dewar, RBK, Dubinsky, E. y Schonberg, E., Programming With Sets: An Introduction to SETL , 1986. ISBN 0-387-96399-5 .
enlaces externos
- Página web oficial
- Programación en SETL y otras cosas
- Archivo de fuentes históricas de SETL