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.


Conheça a linguagem de programação Wisp, o Lisp escrito em C++


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:

  • Tipagem dinâmica
  • Recursões
  • Gerenciamento automático de memória
  • E entre outros.

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)
  • Maclisp
  • EuLisp
  • Visual LISP
  • Franz Lisp
  • OpenLisp

E diversas outras.


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!
 => "Olá, Mundo!"
>>> (exit)

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!


programacao lisp clojure


Compartilhe


Nosso canal no Youtube

Inscreva-se


Marcos Oliveira

Marcos Oliveira

Desenvolvedor de software
https://github.com/terroo


Crie Aplicativos Gráficos para Linux e Windows com C++

Aprenda C++ Moderno e crie Games, Programas CLI, GUI e TUI de forma fácil.

Saiba Mais

Receba as novidades no seu e-mail!

Após cadastro e confirmação do e-mail, enviaremos semanalmente resumos e também sempre que houver novidades por aqui para que você mantenha-se atualizado!