Scheme | |
---|---|
Paradigma | Multiparadigma: funcional e procedural |
Surgido em | 1975 |
Última versão | R6RS (2007) |
Criado por | Gerald Jay Sussman e Guy L. Steele, Jr. |
Estilo de tipagem | dinâmica, forte |
Principais implementações | MIT/GNU Scheme, Chez Scheme, SCM, GNU Guile, Ypsilon, PLT Scheme |
Dialetos | T |
Influenciada por | ALGOL, Lisp, MDL |
Influenciou | Common Lisp, EuLisp, JavaScript, R, Ruby, Dylan, Lua, Hop, Racket |
Extensão do arquivo | .scm , .ss
|
Página oficial | www.scheme.org |
Scheme é uma linguagem de programação multiparadigma 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 consequê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.
Scheme é uma linguagem multiparadigma baseado no cálculo lambda. Serão apresentadas as características marcantes e alguns exemplos de códigos, ilustrando sua eficiência. É uma das descendentes da linguagem Lisp, compartilhando a maior parte de sua sintaxe, mas fornece regras léxicas ao invés de regras de escopo dinâmico.