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
- ↑ 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
