Scheme

Fonte: SAPO Saber, a enciclopédia portuguesa livre.

Scheme

Paradigma Programação funcional
Surgido em 1975
Última versão {{{ultima_versao}}} ()
Criado por Gerald Jay Sussman e Guy L. Steele Jr
Estilo de tipagem: forte, dinâmica
Compiladores MIT/GNU Scheme, Chez Scheme, SCM
Dialetos:
Influenciada por Lisp
Influenciou Cat, Common Lisp, Ruby, Dylan, Lua
Licença: {{{licença}}}
Página oficial {{{website}}}

Scheme é uma linguagem de programação multi-paradigma que suporta programação funcional e procedural. Foi criada por Guy L. Steele e Gerald Jay Sussman no outono de 1975, a partir da linguagem Lisp com o intuito de estudar a teoria dos atores de Carl Hewitt. O modelo de Hewitt era orientado a objeto (e influenciado pelo Smalltalk). Os objetos eram chamados atores e as mensagens eram também atores. Sussman e Steele tiveram algum problema no entender algumas das conseqüências do modelo a partir dos artigos de Hewitt e decidiram construir uma implementação de brinquedo de uma linguagem de atores visando experimentá-la. Escreveram um pequeno interpretador Lisp e adicionaram os mecanismos necessários para a criação de atores e envio de mensagens[1]. Existem dois padrões que definem a linguagem Scheme: o padrão oficial IEEE e um padrão popular chamado "Revisedn Report on the Algorithmic Language Scheme", abreviado como RnRS, onde n é o número de revisões.

De acordo com algumas fontes, Scheme será a principal linguagem de programação no futuro, devido ao fato de se adequar perfeitamente com as tecnologias de processadores de vários núcleos.

Scheme adota uma filosofia minimalista, assim sendo, provê o mínimo de noções possíveis, e, na prática, qualquer outra noção pode ser adicionada via bibliotecas, como todos os dialetos do Lisp, possui pouca sintaxe comparado à maioria das outras linguagens. Devido à sua sintaxe completamete aninhada, não existem regras de precedência de operadores e sua notação parentizada é usada para todas as chamadas de função, desta forma não há ambigüidades como as que são encontradas nas linguagens de notação infixa.

  (5+3)  seria assim:   (+ 5 3),       
  (5+3)x2   seria assim:  (* (+ 5 3) 2)              
  (8/2)  seria assim:  (/ 8 2)            

Índice

[editar] Exemplos de código

[editar] Hello world

(define hello-world
  (lambda ()
    (display "Hello World") 
    (newline)))
(hello-world)

ou simplesmente:

(display "Hello World")

[editar] Loops

 (define (factorial n)
   (cond ((= n 0)  1)
         (else     (* n (factorial (- n 1))))))

 (factorial 5)
 ;; => 120

[editar] Bibliografia

  • DYBVIG, R. KENT(1996); The Scheme Programming Language - Ansi Scheme. Prentice Hall PTR, New Jersey, 1996. ISBN 0-13-454646-6
  • ABELSON, HAROLD; SUSSMAN, GERALD JAY; SUSSMAN JULIE(1996); Structure and Interpretation of Computer Programs. McGraw-Hill, New York, 1996. ISBN 0-07-000484-6

[editar] Ver também

[editar] Referências

  1. BERGIN, Thomas J.; GIBSON, Richard G.. History of Programming Languages II. New York: ACM Press, Addison-Wesley, 1996. 864 p. ISBN 0-201-89502-1

[editar] Ligações externas

  • Schemers - Uma página de referência da linguagem


  Este artigo é um esboço sobre Programação. Você pode ajudar o SAPO Saber expandindo-o.
Ferramentas pessoais