Curso Livre de Algoritmos e Programação/Introdução à Guile
Scheme ou Guile foi criada no ano de 1975 pelo Gerald Jay sussman e Guy L. Steele, Jr. É uma linguagem de programação que tem como principal objetivo ser funcional de forma pratica, a sua linguagem de criação é a Lisp com ideia de aprimorarão das teorias dos atores de Carl Hewitt, Scheme foi criado devido a dificuldade de Gerald jay Sussman e Guy L Steele para entenderalgumas anotações do artigo de Hewitt então resolveram criar a sua própria linguagem de programação. Então resolveram escrever um pequeno interpretador Lisp adicionando um código de leitura que possibilitariam o envio de mensagens, para definir a linguagem scheme demos dois padrões: oficial IEEE e um padrão popular chamado “Revised” Report on the algorithmic como RnRS, onde n é o numero de revisão.
Scheme é uma linguagem de programação multiparadigma que suporta programação funcional e procedural. O paradigma funcional é um paradigma de programação que trata a computação como uma avaliação de funções matemáticas, ele evita estados mutáveis e enfatiza a aplicação de funções, em contraste da programação imperativa, que enfatiza mudanças no estado do programa. Adotando uma filosofia minimalista scheme prevê o mínimo de conhecimento e noção possível para praticar o ato de programação, devido à sua sintaxe completamente aninhada, não existe regras de precedência de operadores e sua notação em parênteses é toda usada para as chamada de funções, desta forma à muitos fatores que podem serem abordados para que os programas podem ficar visualmente confuso e necessita ser analisado com mais cuidado.
GNU Guile é um interpretador/máquina virtual para a linguagem de programação Scheme. Foi lançado em 1993. Guile inclui extensões bem divididas para chamadas de sistema segundo o modelo POSIX. A Libguile permite que a linguagem seja embutida em outros programas, e usada como uma interface para as outras linguagens, como forma de integração. Guile é a linguagem script oficial do Projeto GNU, a partir de 2006, tem sido usada pelos principais projetos. O nome foi cunhado numa discussão na Usenet por Lee Thomas. A ideia é que "o programador implemente algoritmos críticos e estruturas de dados usando C ou C++ e exporte funções e tipos para serem usados com código interpretado. Assim a aplicação se torna um tipo de biblioteca primitiva, orquestrada pelo interpretador, combinando a eficiência do código compilado com a flexibilidade da linguagem interpretada".
A linguagem foi inicialmente criada para uso em empresas, uma vez que é fácil de aprender e extremamente poderosa, a sua facilidade de aprender por conter um pequeno grupo de regras e ter a possibilidade de fazer composições dessas regras.
Exemplo:
(8+2) seria descrito dessa forma: (+ 8 2)
(8+2)*2 seria descrito dessa forma: (*(+ 8 2) 2)