SETL

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa
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]

História[editar | editar código-fonte]

Cquote1.svg A linguagem ABC, predecessora da linguagem Python, foi inspirada por SETL -- Lambert Meertens passou um ano com o grupo SETL na NYU antes de partir para cima do projeto final da ABC! Cquote2.svg

Referências

  1. BAL, Henri E.; GRUNE, Dick. Programming Language Essentials (em <código de língua não-reconhecido>). Wokingham: Addison-Wesley, 1994. 231 pp. ISBN 0-201-63179-2.
  2. GUEZZI, Carlo; JAZAYERI, Mehdi. Programming Languages Concepts (em <código de língua não-reconhecido>). 3ª. ed. New York: John Wiley & Sons, 1998. 123 pp. ISBN 0-471-10426-4.
  3. http://mail.python.org/pipermail/python-dev/2000-August/008881.html

Ver também}[editar | editar código-fonte]

Bibliografia[editar | editar código-fonte]

  • 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.