Conheça a linguagem de programação Wisp, o Lisp escrito em C++
E também uma breve história do Lisp e como utilizar mais esse dialeto da família dos parênteses.
O Lisp, ou antigamente LISP, não é só uma linguagem de programação e sim uma família de linguagens de programação, isso mesmo!
É um padrão que existem diversos dialetos, e é um dos padrões mais antigos do meio do "alto nível das linguagens de programação", é somente 1 ano menos velha que o Fortran que é considerada a mais velha de todas.
Mais precisamente em 1958 Lisp foi desenvolvida John McCarthy.
O nome em português seria LISta do Processador, algo do tipo 😃 . O Lisp foi pioneira em muitas ideias que hoje são largamente utilizada, como:
Apesar de muitos acharem que Inteligência Artificial é algo moderno, naquela época Lisp era a predileta para AI , pesquisa e ciência de dados, até hoje ainda é assim por muitos.
Sua sintaxe é considerada uma verdadeira bizarrice, ou seja tudo, absolutamente tudo fica dentro de parênteses ( ) .
As linguagens de programação ou dialetos Lisp mais famosos são:
Common Lisp (Muita coisa que usamos tem ele no meio)
Emacs Lisp (O Lisp do GNU criado nada mais, nada menos, pelo lispeiro: Richard Stallman )
Scheme (Um Lisp bem minimalista)
Clojure (O mais utilizado atualmente)
Estima-se haver mais de 30 dialetos Lisp, sendo que o mais famoso e atual é o Clojure .
Segundo a pesquisa do Stackoverflow o Clojure é a linguagem de programação que oferece os melhores salários no mundo!!!
A sintaxe é muito simples e fácil de aprender e lembre-se: sempre haverá parênteses!
Se você escrevesse JavaScript em Lisp, um código exemplo seria assim:
(var name = "Terminal Root")
(function do_something()(
( print (2 + 2))
Bem sinistro, né não?!
Mas há diversos programadores no mundo de Lisp, e eles são totalmente acostumados e formam uma comunidade grande perante até muitas outras linguagens de programação mais famosas atualmente. E muitas empresas lá fora buscam programadores de Clojure e Lisp em geral.
Não é à toa que Clojure foi considerada a segunda linguagem de programação mais amada entre os programadores em 2021, segundo o Stackoverflow .
Sobre o Wisp
Bom, deixando um pouco o papo sobre Lisp de lado, mas ainda falando de Lisp… Há uma versão minimalista escrita em C++(ou seja, muito fácil de instalar, aliás bota facilidade nisso) que é o Wisp .
Trata-se de um projeto pessoal que implementa o Lisp de maneira muito simples e talvez seja sua melhor alternativa para você entrar no mundo Lisp, caso você queira entrar nesse mundo.
O legal desse dialeto é para você que curte C++ ele tem um código bem escrito e ideal para quem deseja futuramente criar sua própria linguagem de programação e entender conceitos de: tokens, lexicografia, parser e entre outros.
O interpretador inteiro foi escrito em um único arquivo wisp.cpp e isso facilita muita coisa na análise de código e tudo dentro dele está bem organizado.
Instalação do Wisp
Como eu havia dito, a instalação é muito simples, primeiro basta usar o Git para clonar o projeto:
git clone https://github.com/adam-mcdaniel/wisp
Agora basta ter um compilador, de preferência o g++, entrar no diretório e compilar com o comando abaixo.
Observação, ele só compila em C++ 2003.
cd wisp
g++ -std=c++03 wisp.cpp -o wisp
E para instalar no sistema, copie para um diretório que esteja na sua $PATH, eu sempre recomendo o /usr/local/bin:
sudo install -v wisp /usr/local/bin/
O Wisp não tem parâmetro para versão e nem help, mas veremos que o uso é muito simples!
Olá, Wisp!
Eu ainda não entendo muito de Lisp, mas pretendo aprender até porque eu sou um fanático por aprender linguagens de programação.
Mas o básico seria um Hello, World! da vida e há 3 maneiras de fazer isso com Wisp:
1º. Rodando via linha de comando
Para isso use o parâmetro -c e em seguida o código Lisp entre aspas simples e lógico entre parênteses:
wisp -c '(print "Olá, Mundo!")'
2º. Rodando via arquivo
Crie um arquivo de extensão .lisp, exemplo: nvim hello.lisp e insira o conteúdo abaixo:
(print "Olá, Mundo!")
E para rodar use o parâmetro -f de file:
wisp -f hello.lisp
3º. Executando em uma subshell via prompt
Se você só rodar o comando wisp você entra na subshell que roda comandos Lisp, exemplo:
user@host ~ $ wisp
>>> (print "Olá, Mundo!")
=> "Olá, Mundo!"
Note que para sair é (exit)(entre parênteses) e evite usar setas direcionais(→ ↓ ←), ele irá interpretar de forma literal, ou seja, aparecerá uns: ^[[A^[[D^[[C .
Para mais informações acesse o repositório oficial e o diretório de exemplos, aprender por exemplos é legal!