SETL - SETL

SETL
Paradigma multiparadigma : imperativo , procedimental , estruturado , orientado a objetos
Projetado por (Jack) Jacob T. Schwartz
Desenvolvedor Courant Institute of Mathematical Sciences
Apareceu pela primeira vez 1969 ; 52 anos atrás ( 1969 )
Versão estável
1.1 / 7 de janeiro de 2005 ; 16 anos atrás ( 07-01-2005 )
Disciplina de digitação Dinâmico
Local na rede Internet setl .org
Influenciado por
ALGOL 60
Influenciado
SETL2 , ISETL , SETLX , ABC

SETL (SET Language) é uma linguagem de programação de alto nível baseada na teoria matemática dos conjuntos . Foi originalmente desenvolvido por (Jack) Jacob T. Schwartz no Courant Institute of Mathematical Sciences da New York University (NYU) no final dos anos 1960.

Projeto

SETL fornece dois tipos básicos de dados agregados: conjuntos não ordenados e sequências (as últimas também chamadas de tuplas ). Os elementos de conjuntos e tuplas podem ser de qualquer tipo arbitrário, incluindo os próprios conjuntos e tuplas. Os mapas são fornecidos como conjuntos de pares (ou seja, tuplas de comprimento 2) e podem ter domínio arbitrário e tipos de intervalo. As operações primitivas em SETL incluem associação, união, interseção e construção de conjunto de energia, entre outras.

SETL fornece expressões booleanas quantificadas construídas usando os quantificadores universais e existenciais da lógica de predicado de primeira ordem .

SETL fornece vários iteradores para produzir uma variedade de loops sobre estruturas de dados agregados.

Exemplos

Imprima todos os números primos de 2 a N:

   print([n in [2..N] | forall m in {2..n - 1} | n mod m > 0]);

A notação é semelhante à compreensão de lista .

Uma definição de procedimento fatorial:

procedure factorial(n); -- calculates the factorial n!
  return if n = 1 then 1 else n * factorial(n - 1) end if;
end factorial;

Uma expressão SETL mais convencional para fatorial (n> 0):

*/[1..n]

Usos

Implementações de SETL estavam disponíveis no DEC VAX , IBM / 370 , estação de trabalho SUN e APOLLO . Na década de 1970, o SETL foi portado para o BESM-6 , ES EVM e outros sistemas de computador russos.

SETL foi usado para uma implementação inicial da linguagem de programação Ada , chamada de tradutor NYU Ada / ED. Posteriormente, esta se tornou a primeira implementação Ada validada, certificada em 11 de abril de 1983.

De acordo com Guido van Rossum , " o predecessor do Python , ABC , foi inspirado pelo SETL - Lambert Meertens passou um ano com o grupo SETL na NYU antes de apresentar o design final do ABC!"

Variantes de linguagem

SET Language 2 (SETL2), um descendente incompatível com as versões anteriores de SETL, foi criado por Kirk Snyder do Courant Institute of Mathematical Sciences da New York University no final dos anos 1980. Como seu predecessor, é baseado na teoria e notação de conjuntos finitos, mas também foi influenciado na sintaxe e no estilo pela linguagem Ada.

O Interactive SET Language (ISETL) é uma variante do SETL usado em matemática discreta .

Referências

Leitura adicional

  • Schwartz, Jacob T., "Set Theory as a Language for Program Specification and Programming". Courant Institute of Mathematical Sciences, New York University, 1970.
  • Schwartz, Jacob T., "On Programming, An Interim Report on the SETL Project", Computer Science Department, Courant Institute of Mathematical Sciences, New York University (1973).
  • Schwartz, Jacob T., Dewar, RBK, Dubinsky, E., e Schonberg, E., Programming With Sets: An Introduction to SETL , 1986. ISBN  0-387-96399-5 .

links externos