Saltar para o conteúdo

SETL

Origem: Wikipédia, a enciclopédia livre.
Navegação no histórico de edições: ← ver edição anterior (dif) ver edição seguinte → (dif) ver última edição → (dif)
SETL
Paradigma multiparadigma, imperativo, orientado a objeto
Surgido em 1969
Criado por Jacob Theodore Schwartz no Courant Institute of Mathematical Sciences
Estilo de tipagem dinâmica
Influenciou SETL2, ProSet, ABC, Slim
Página oficial http://setl.org/

SETL é uma linguagem de programação de "altíssimo nível", baseada na teoria matemática de conjuntos. Foi originalmente desenvolvida por Jacob Theodore Schwartz no Courant Institute of Mathematical Sciences na NYU no fim dos anos 1960.

SETL fornece dois tipos básicos de dados agregados: conjuntos não-ordenados, e sequências (este último também chamado de tuplas). Os elementos dos conjuntos e tuplas podem ser de qualquer tipo arbitrário, incluindo conjuntos e tuplas eles mesmos. Mapeamentos (Maps) são fornecidos como conjuntos de pares (ou seja, tuplas de dimensão 2)[1] e podem ter domínio arbitrário e tipos de intervalos arbitrários. Operações primitivas em SETL incluem pertinência de conjuntos, união, interseção e construção de conjuntos de potência[2], entre outras.

A linguagem SETL fornece expressões booleanas quantificadas construídas utilizando-se quantificadores universais e quantificadores existênciais da lógica de primeira ordem.

A linguagem SETL fornece diversos iterators para produzir uma variedade de laços sobre estruturas de dados agregados.

Na década de 1970, SETL foi portada para o BESM-6, ES EVM e outros sistemas de informática russos.

David Bacon, que antes era um estudante de PhD na NYU com Jack Schwartz ainda mantém ativamente o compilador SETL e seu website.

Exemplo de código

[editar | editar código-fonte]

Imprime todos os números primos de 2 to N:

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

A notação é semelhante a de uma List comprehension.

A definição do procedimento fatorial:

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

Uma expressão mais convencional em SETL para fatoriais em que (n > 0):

*/[1..n]

Referências

  1. BAL, Henri E.; GRUNE, Dick (1994). Programming Language Essentials (em inglês). Wokingham: Addison-Wesley. 231 páginas. ISBN 0-201-63179-2 
  2. GUEZZI, Carlo; JAZAYERI, Mehdi (1998). Programming Languages Concepts (em inglês) 3ª ed. New York: John Wiley & Sons. 123 páginas. ISBN 0-471-10426-4 
  3. http://mail.python.org/pipermail/python-dev/2000-August/008881.html
  • 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, R.B.K., Dubinsky, E., and Schonberg, E., Programming With Sets: An Introduction to SETL, 1986. ISBN 0-387-96399-5.

Ligações externas

[editar | editar código-fonte]
Ícone de esboço Este artigo sobre programação de computadores é um esboço. Você pode ajudar a Wikipédia expandindo-o.