Articulo de referencia

CONFIRMACIÓN

SETL (lenguaje SET) es un lenguaje de programación de muy alto nivel [1] basado en la teoría matemática de conjuntos . [2] [3] Fue desarrollado originalmente en el Instituto Cou...

SETL (lenguaje SET) es un lenguaje de programación de muy alto nivel [1] basado en la teoría matemática de conjuntos . [2] [3] Fue desarrollado originalmente en el Instituto Courant de Ciencias Matemáticas de la Universidad de Nueva York (NYU) a fines de la década de 1960, por un grupo que incluía a (Jack) Jacob T. Schwartz , [1] [3] RBK Dewar y E. Schonberg. [1] A Schwartz se le atribuye el diseño del lenguaje. [4]

Diseño

SETL proporciona dos tipos básicos de datos agregados: conjuntos (no ordenados) y tuplas . [1] [2] [5] Los elementos de los conjuntos y las tuplas pueden ser de cualquier tipo arbitrario, incluidos los propios conjuntos y tuplas, excepto el valor indefinido om [1] (a veces escrito con mayúscula: OM ). [6] Los mapas se proporcionan como conjuntos de pares (es decir, tuplas de longitud 2) y pueden tener tipos de dominio y rango arbitrarios. [1] [5] Las operaciones primitivas en SETL incluyen la pertenencia a conjuntos, la unión, la intersección y la construcción de conjuntos de potencia, entre otras. [1] [7]

SETL proporciona expresiones booleanas cuantificadas construidas utilizando los cuantificadores universales y existenciales de la lógica de predicados de primer orden . [1] [7]

SETL proporciona varios iteradores para producir una variedad de bucles sobre estructuras de datos agregados. [1] [8]

Ejemplos

Imprima todos los números primos del 2 al N :

imprimir([n en [2..N] | para todo m en {2..n - 1} | n mod m > 0]);

La notación es similar a la comprensión de listas .

Definición de procedimiento factorial:

procedimiento factorial(n); -- calcula el factorial n!
  retorna si n = 1 entonces 1 de lo contrario n * factorial(n - 1) fin si;
factorial final;

Una expresión SETL más convencional para factorial (n > 0):

*/[1..n]

Usos

Las implementaciones de SETL estaban disponibles en DEC VAX , IBM/370 , SUN workstation y APOLLO . [9] En la década de 1970, SETL fue portado a BESM-6 , ES EVM y otros sistemas informáticos rusos. [10]

SETL se utilizó para una implementación temprana del lenguaje de programación Ada , llamado traductor NYU Ada/ED. [11] Esta luego se convirtió en la primera implementación validada de Ada, certificada el 11 de abril de 1983. [12]

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 la Universidad de Nueva York antes de crear el diseño final de ABC". [13]

Variantes del lenguaje

El lenguaje SET 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. [14] Al igual que su predecesor, se basa en la teoría y notación de conjuntos finitos, pero también ha sido influenciado en sintaxis y estilo por el lenguaje Ada. [14]

El lenguaje SET interactivo (ISETL) es una variante de SETL utilizada en matemáticas discretas . [15]

GNU SETL es una utilidad de línea de comandos que extiende e implementa SETL. [16]

Referencias

  1. ^ abcdefghi Schwartz, JT; Dewar, RBK; Schonberg, E.; Dubinsky, E. (1986). "Programación con conjuntos". SpringerLink : v– vii, 2, 48, 53, 57– 58, 63, 113ff. doi :10.1007/978-1-4613-9575-1.
  2. ^ ab "GNU SETL Om". setl.org . Consultado el 24 de abril de 2024 .
  3. ^ ab Markoff, John (4 de marzo de 2009). «Jacob T. Schwartz, 79, científico inquieto, muere». The New York Times . ISSN  0362-4331 . Consultado el 24 de abril de 2024 .
  4. ^ Lógica computacional y teoría de conjuntos. pp. vii. doi :10.1007/978-0-85729-808-9.
  5. ^ ab "CAPÍTULO 2". www.settheory.com . Consultado el 24 de abril de 2024 .
  6. ^ "CAPÍTULO 3". www.settheory.com . Consultado el 24 de abril de 2024 .
  7. ^ ab "CAPÍTULO 3". www.settheory.com . Consultado el 24 de abril de 2024 .
  8. ^ "CAPÍTULO 4". www.settheory.com . Consultado el 24 de abril de 2024 .
  9. ^ JT Schwartz; RBK Dewar; E. Dubinsky; E. Schönberg (1986). Programación con conjuntos. Introducción a SETL. Springer-Verlag Nueva York Inc. ISBN 978-1-4613-9577-5.
  10. ^ И.В. Pottosina, ed. (2001). Становление новосибирской школы программирования (мозаика воспоминаний) [Formación de la escuela de programación de Novosibirsk (mosaico de recuerdos) ] (PDF) (en ruso). Novosibirsk: Институт систем информатики им. A. P. Ершова СО РАН. págs.  106 a 113.
  11. ^ 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 Ada de la Universidad de Nueva York". Actas del simposio ACM-SIGPLAN sobre el lenguaje de programación Ada - SIGPLAN '80 . Vol. 15. págs.  194– 201. doi :10.1145/948632.948659. ISBN 0-89791-030-3. Número de identificación del sujeto  10586359.
  12. ^ SofTech Inc., Waltham, MA (11 de abril de 1983). "Informe resumido de validación del compilador Ada: NYU Ada/ED, versión 19.7 V-001". Archivado desde el original el 7 de junio de 2017. Consultado el 16 de diciembre de 2010 .{{cite web}}: CS1 maint: varios nombres: lista de autores ( enlace )
  13. ^ Python-Dev: SETL (era: tibio acerca de los literales de rango)
  14. ^ ab "SETL2 - EDM2". www.edm2.com . Consultado el 24 de abril de 2024 .
  15. ^ Baxter Hastings, Nancy; Dubinsky, Ed; Levin, Gary (1989). Aprendizaje de matemáticas discretas con ISETL . Nueva York: Springer-Verlag. ISBN 978-0-387-96898-8.
  16. ^ "GNU SETL". setl.org . Consultado el 24 de abril de 2024 .

Lectura adicional

  • Schwartz, Jacob T., "La teoría de conjuntos como lenguaje para la especificación y programación de programas". Courant Institute of Mathematical Sciences, Universidad de Nueva York, 1970.
  • Schwartz, Jacob T., "Sobre la 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., Programación con conjuntos: una introducción a SETL , 1986. ISBN 0-387-96399-5 . 
  • Sitio web oficial
  • Programación en SETL y otras cosas
  • Archivo de fuentes históricas de SETL
Obtenido de "https://es.wikipedia.org/w/index.php?title=SETL&oldid=1248711720"