Aprenda a programação do Lisp: introdução, versões e muito mais

Divulgação: Seu suporte ajuda a manter o site funcionando! Ganhamos uma taxa de indicação por alguns dos serviços que recomendamos nesta página.


Programação Lisp

Lisp é uma família de linguagens de programação, concebida pela primeira vez em 1958 e finalmente implementada em 1961. Isso a torna a segunda linguagem mais antiga ainda em uso comum, depois do Fortran..

Mas enquanto o Fortran continua desaparecendo lentamente, o Lisp ainda é uma parte muito importante do cenário da ciência da computação.

O Lisp é único de várias maneiras. Por um lado, toda expressão no Lisp é uma lista, um dos dois principais tipos de dados no idioma. (É por isso que é chamado de “Lisp”.)

Como o próprio código pode ser avaliado como um tipo de dados na linguagem, o Lisp se presta a recursão e introspecção.

Além disso – diferentemente da maioria dos outros idiomas – o código Lisp é uma versão legível para humanos da estrutura de dados real, pois é processada pelo sistema Lisp subjacente.

Isso significa que há um alto grau de semelhança entre o modo como um programador pensa sobre um programa e o que o programa está realmente fazendo “sob o capô”.

O Lisp pode ser usado para qualquer número de aplicativos e domínios de problemas, mas é especialmente útil para Inteligência Artificial e Aprendizado de Máquina.

Contents

Implementações independentes do Lisp

É um sinal da utilidade de Lisp que existem tantas versões diferentes dele. Isso inclui idiomas autônomos e também idiomas criados dentro de aplicativos. Vamos discutir os dois abaixo.

Lisp comum

Lisp comum é um dos dialetos mais populares do Lisp. Foi lançado pela primeira vez em 1984 e se tornou um padrão ANSI uma década depois.

Foi uma melhoria no Maclisp. Mas não era a única versão do Lisp funcionando no Maclisp; houve vários outros. Mas o compromisso da Common Lisp com a padronização a tornou, em última análise, a mais bem-sucedida.

Recursos comuns do Lisp

Se você está interessado no Common Lisp, há muitas maneiras de aprender..

Livros

Existem muito poucos tutoriais on-line para o Common Lisp. Portanto, se você realmente quiser aprender o idioma, precisará consultar um ou mais livros. Felizmente, existem edições online de muitas dessas.

  • Lisp comum: uma introdução suave à computação simbólica
  • ANSI Common Lisp
  • Lisp Prático Comum
  • No Lisp: Técnicas avançadas para o Lisp comum
  • Lisp bem-sucedido: Como entender e usar o Lisp comum
  • Programação orientada a objetos no COMMON Lisp: um guia do programador para CLOS
  • A arte do protocolo de meta-objeto
  • Lisp em Pedaços Pequenos
  • Os elementos da inteligência artificial usando o Lisp comum
  • Let Over Lambda

Muitos dos livros mais importantes e influentes sobre Lisp foram escritos nas décadas de 1970 e 1980 e agora estão esgotados e difíceis de encontrar. Vários desses livros foram disponibilizados on-line e você pode encontrar links para eles abaixo.

Recursos online

De interesse histórico

Lisp é uma linguagem historicamente interessante. Seu desenvolvimento está intimamente ligado ao desenvolvimento de Inteligência Artificial e aprendizado de máquina. É também um dos idiomas mais exclusivos de uso comum, com uma sintaxe e lógica interna muito diferentes da maioria dos outros idiomas..

Essas diferenças fazem parte dos debates em andamento na comunidade de ciência da computação sobre a natureza da computação e a gramática apropriada para a programação..

Qualquer pessoa que esteja estudando o Common Lisp hoje deve fazer questão de explorar um pouco da história do idioma.

  • Funções Recursivas de Expressões Simbólicas e sua Computação por Máquina – Escrito em 1960, por John McCarthy. Este é o artigo original que descreve o que se tornaria Lisp.
  • Uma base para uma teoria matemática da computação – Um artigo escrito por McCarthy em 1961, explorando muitas das idéias do artigo “Funções recursivas”. Veja também o documento complementar, Rumo a uma ciência matemática da computação.
  • Lisp – Notas sobre seu passado e futuro – McCarthy escreveu este artigo em 1980, 20 anos após o lançamento do Lisp.
  • VÍDEO: Inteligência Artificial

John McCarthy (1927-2011) foi professor de Ciência da Computação na Universidade de Stanford. Sua home page é um tesouro de artigos interessantes sobre AI, Lisp, ciência da computação teórica e tópicos relacionados.

Learn Lisp

Não há muitos tutoriais on-line para o Common Lisp, como existem para linguagens mais populares como PHP ou Ruby. No entanto, existem muitos livros no Lisp que foram lançados como edições on-line.

Muitos deles foram escritos nas décadas de 1970 e 80, embora também existam certamente alguns recursos mais contemporâneos.

  • On Lisp – Edição on-line do excelente livro de Paul Graham.
  • Lisp comum: uma introdução suave à computação simbólica
  • Lisp em peças pequenas – Uma série de tutoriais breves
  • Prático Common Lisp – Uma edição on-line completa do livro introdutório clássico de mesmo nome.
  • Land of Lisp – Um site e livro engraçado e idiossincrático, ensinando as pessoas a usar o Lisp.
  • Aprenda Lisp comum – Aprenda X em Y minutos, onde X = Lisp comum.
  • Curso ELP-ART Lisp – Aprenda a usar o Lisp com o modelo episódico do aluno no Tutor Remoto Adaptável
  • Início rápido do Lisp
  • LispTutor Jr
  • Elenco de feitiços em Lisp
  • Lisp comum: uma abordagem interativa
  • Dicas de estilo Lisp para iniciantes
  • O altamente opinativo guia de Pascal Costanza para Lisp

Leitura obrigatória:

  • Estado do ecossistema Lisp comum.
Referência e Documentação Lisp

Mais do que a maioria dos outros idiomas, se você começar a trabalhar com o Lisp, precisará consultar material de referência com frequência. Aqui estão alguns dos trabalhos de referência mais comuns do Common Lisp disponíveis on-line.

  • Wikilivro comum Lisp
  • Lisp HyperSpec comum
  • Cliki: A Wiki Lisp comum
  • Documentação comum do LispWorks LispWorks
  • Livro de receitas comum do Lisp
  • Guia de estilos do Common Lisp do Google – Como escrever o Common Lisp da maneira como o Google escreve o Common Lisp. (Você sabia que o Google estava escrevendo o Common Lisp?)
  • Lisp o idioma comum
Tópicos especiais em Programação Lisp

O Lisp é, por seus próprios méritos, uma linguagem bastante especializada. Aqui estão alguns recursos sobre questões particularmente especializadas no Common Lisp.

  • Paradigmas da programação de inteligência artificial: estudos de caso no Lisp comum – confira também o livro.
  • Sistema de Objetos Lisp Comum
Ferramentas Lisp

Se você deseja realizar algo importante com o Common Lisp, precisará de um ecossistema maior de suporte a idiomas – bibliotecas, plugins, ferramentas de desenvolvimento, estruturas.

Aqui estão algumas das ferramentas mais populares que os Lispers usam para fazer as coisas.

  • ACL2 – Uma lógica computacional para Lisp comum aplicável
  • Macros do Reader no Common Lisp – As macros do Reader permitem criar uma sintaxe totalmente nova sobre o Lisp
  • Quicklisp – Gerenciador de bibliotecas do Common Lisp
  • Clack – Um ambiente de aplicativo da web para Common Lisp. Diversas estruturas de aplicativos da Web foram criadas sobre ele:
    • homem das cavernas
    • Ningle
    • Luzerna
  • Parenscript – Traduz Lisp comum para Javascript
  • jscl – Outro compilador comum de Lisp para JavaScript
  • Roswell – Instalador de linha de comando para Common Lisp
  • CommonQT – Uma extensão Common Lisp para QtTools, fornecendo uma solução GUI.
  • CLML – Biblioteca Common Lisp Machine Learning
  • MGL – Anoth biblioteca de aprendizado de máquina
  • Antik – biblioteca que fornece ferramentas para computação científica e de engenharia
  • Crane – um ORM para Common Lisp.
  • cl-dbi – camada de abstração do banco de dados
  • CEPL – Biblioteca de Gráficos. (Confira a extensa série de tutoriais em vídeo.)
  • Iron Clad – Ferramentas de criptografia.
  • SLIME – O IDE padrão para Common Lisp.
Cultura e Comunidade Lisp

Mais do que qualquer outra língua, o Lisp tem sua própria cultura – tradição, humor e tradição únicos. Parte disso remonta às suas raízes nos departamentos de ciências da computação das universidades.

Além disso, algumas delas estão relacionadas à cultura dos hackers geeks, e outras resultam das peculiaridades da própria linguagem e dos tipos de aplicativos para os quais é comumente usada..

Se você realmente quer entender o Lisp, não pode simplesmente aprender o idioma – você precisa aprender a cultura e se tornar parte dessa comunidade (estranha e maravilhosa).

  • Fórum de Lisp
  • Workshop sobre a Realidade Psicológica do Lisp
  • Citações sobre Lisp
  • Uma conversa com Alan Kay
  • Chama eterna
  • Humor Lisp
  • Filme comum do Lisp
  • Land of Lisp vídeo da música
  • Planet Lisp
  • Reuniões Lisp – também verifique [@lispmeetings no Twitter] (https://twitter.com/lispmeetings)

Leitura obrigatória:

  • Gödel, Escher, Bach: Uma Eterna Trança Dourada, de Douglas R. Hofstadter – Este livro não está diretamente relacionado a Lisp (embora fale um pouco sobre isso). Mas é uma pedra de toque cultural e intelectual extremamente importante para pessoas em vários domínios diferentes nos quais a Lisp habita: inteligência artificial, aprendizado de máquina, lógica matemática e recursão. Este livro mudará a maneira de pensar e você acabará pensando mais no tipo de pessoa que usa o Lisp.
Implementações comuns do Lisp

Lisp é uma idéia e Common Lisp é uma linguagem – não é uma tecnologia específica. A seguir, estão algumas das implementações mais populares do Common Lisp.

  • Clisp – GNU Clisp, uma implementação do ANSI Common Lisp
  • GCL – Outra implementação Common Lisp
  • CMUCL – uma implementação Common Lisp gratuita e de alto desempenho. O editor Hemlock está incluído.
  • Allegro CL
  • Clozure Common Lisp
  • Lisp comum do banco de aço
Vídeos

Aprenda sobre o Lisp assistindo. Esses vídeos variam de tutoriais básicos a explorações detalhadas da lógica e da filosofia Lisp.

  • Pensando como um programador Lisp
  • Lisp prático comum – Google Tech Talk
  • Uma Breve Introdução ao Lisp
  • Lisp – Google Tech Talk
  • Lisp comum: por que as macros são ótimas
  • Lisp comum – Como iniciar um novo projeto
  • Desenvolvimento interativo de jogos com lisp comum
  • LiveCoding no CommonLisp
  • Patrick Stein no Vimeo
  • Tutoriais comuns do Lisp por Baggers

Idiomas e dialetos relacionados

Lisp não é uma linguagem única, mas uma família de linguagens – uma idéia sobre como fazer programação de computadores. Lisp comum é a implementação mais popular do Lisp, mas existem várias outras.

Os principais dialetos do Lisp são:

  • Esquema – O esquema é o principal “concorrente” do Common Lisp.
  • Clojure – Clojure é um dialeto Lisp que está ganhando popularidade no momento. Ele foi criado para ser executado na Java Virtual Machine.

Perguntas frequentes sobre o Lisp comum

O que é Lisp?

Lisp é uma família de linguagens de programação de computadores que foram desenvolvidas pela primeira vez no final da década de 1950. Lisp significa List Processing, um nome que se refere ao fato de que as linguagens usam listas como sua estrutura de dados primária e também para sua sintaxe de programação.

O que é Lisp comum?

O Lisp comum é um dialeto do Lisp desenvolvido no início dos anos 80, como uma tentativa de criar uma versão única (comum) do Lisp. É uma das duas versões mais populares do idioma (junto com o Scheme).

Para que é utilizado o Lisp?

O Lisp pode ser usado para qualquer tipo de aplicativo, mas é de particular interesse para Inteligência Artificial, aprendizado de máquina e outras formas de programação avançada que exigem lógica recursiva.

Por que o Lisp é popular com Inteligência Artificial?

Existem pelo menos duas razões para isso.

Primeiro, a estrutura de dados primária do Lisp (a lista) também é a estrutura de sua sintaxe de programação. Ou seja, dados e instruções sobre dados assumem a mesma forma. (Isso é chamado de homoiconicidade.)

Isso significa que o Lisp pode ser usado para analisar a si próprio ou se modificar. Muitos especialistas no campo da inteligência artificial, assim como muitos filósofos e pensadores em domínios relacionados, consideram esse tipo de introspecção recursiva como a base para uma inteligência real e autoconsciente. Além disso, a capacidade de um programa mudar de si com base na entrada é a essência do aprendizado de máquina.

Uma segunda razão para a popularidade do Lisp na IA é que a sintaxe de controle para a linguagem é muito análoga à lógica computacional subjacente a ela. Isso fornece aos programadores do Lisp uma visão muito mais profunda de como um computador está realmente interpretando a lógica e a sintaxe do programa do que é possível com outros idiomas..

Clojure

Clojure é uma linguagem de programação relativamente nova (2007). É um dialeto do Lisp, projetado para ser executado na Java Virtual Machine.

O que é a Java Virtual Machine?

A JVM é um computador virtual que compila e executa Java e outras linguagens. JVM é uma idéia, não um software específico – uma das implementações mais populares da JVM é o HotSpot da Oracle.

A idéia por trás do Java e da JVM é que você pode escrever um programa em Java (ou outra linguagem suportada) e compilá-lo para a JVM. Em seguida, você pode executá-lo em qualquer computador que execute uma JVM. Isso o torna extremamente portátil – você pode escrever o código uma vez e executá-lo em qualquer lugar.

Clojure: Lisp na JVM

Java está em toda parte, o que significa que as Java Virtual Machines estão em toda parte. A criação de uma versão do Lisp que é executada na JVM tornou possível executar o Lisp em qualquer lugar. Essa foi a principal motivação para a criação do Clojure e um ótimo motivo para aprender o idioma..

Outro benefício é que o Clojure fornece acesso, via JVM, a inúmeras ferramentas e bibliotecas de terceiros escritas em Java. Isso fornece ao Clojure um ecossistema de desenvolvimento mais poderoso do que os disponíveis anteriormente para qualquer dialeto Lisp.

Clojure Tutorials

  • Introdução ao Clojure e Introdução ao Clojure fornecem uma introdução clara e rápida ao idioma.
  • O Clojure Programming é um extenso wikibook de código aberto no idioma.
  • Aprenda X em Y minutos, onde X = clojure é uma boa introdução para o idioma, para pessoas com habilidades de programação existentes em outros idiomas.
  • Clojure – Programação Funcional para a JVM é um tutorial detalhado destinado a desenvolvedores Java.
  • O Clojure Language é uma série de tutoriais em vídeo de 25 partes que apresenta o idioma.
  • Clojure Distilled é um tutorial / ensaio de leitura obrigatória que abrange não apenas a sintaxe e o vocabulário da linguagem, mas a filosofia por trás dela; ele tenta destilar como os desenvolvedores do Clojure pensam sobre problemas e explora uma maneira de resolver problemas que provavelmente serão novos para desenvolvedores vindos de outros idiomas.
Outros recursos para aprender Clojure
  • Experimente o Clojure, é um intérprete online do Clojure, permitindo que você tenha uma experiência do Clojure no navegador antes de instalá-lo localmente.
  • O ClojureTV tem tutoriais em vídeo e palestras ao vivo sobre diversos tópicos de desenvolvimento do Clojure.
  • 4clojure é um site de aprendizado interativo com exercícios de programação em Clojure.
  • O Disclojure completo é outro canal de vídeo com vários ótimos vídeos tutoriais de Clojure.
  • Um Clojure Newbie Guide é um recurso útil que aponta o novo desenvolvedor do Clojure para todas as ferramentas e recursos essenciais que formam o ecossistema Clojure.

Material de Referência Clojure

  • O Clojure Style Guide é um guia escrito pela comunidade sobre as práticas recomendadas para escrever códigos Clojure claros e com manutenção.
  • ClojureDocs e Grimoire são companheiros não oficiais da documentação oficial, fornecendo comentários e exemplos de fontes comunitárias.
  • Clojure Cheatsheet é uma página de referência rápida para todas as pequenas coisas que você só precisa lembrar.

Comunidade e Aprendizagem Contínua

  • O Clojure Subreddit é um fórum muito ativo para fazer perguntas e interagir com a comunidade Clojure;
  • O Grupo e a Lista de discussão do Google Clojure é um bom lugar para fazer perguntas e obter suporte para o desenvolvimento do Clojure;
  • Disclojure é um site popular para notícias e eventos de Clojure;
  • O Planet Clojure agrega os artigos mais importantes dos principais blogs Clojure.

Livros sobre Clojure

Existem muitos livros sobre Clojure. Aqui estão os que a comunidade Clojure recomenda repetidamente:

  • Clojure for the Brave and True (2015), de Daniel Higginbotham, é um guia de leitura obrigatória do idioma. Também está disponível para leitura gratuita on-line e forma a base para um site fantástico, cheio de recursos do Clojure.
  • O Clojure Cookbook (2014), de VanderHart e Neufeld, é um compêndio de receitas e idéias de Clojure. Está disponível como livro impresso e projeto de código aberto no GitHub.
  • A Pragmatic Bookshelf tem vários livros excelentes sobre Clojure:
    • Programming Clojure (2012), de Halloway e Bedra;
    • Dominar macros Clojure: Write Cleaner, Faster, Smarter Code (2014), de Colin Jones;
    • Clojure Applied: From Practice to Practitioner (2015), de Vandgrift e Miller;
    • Desenvolvimento Web com Clojure: Crie aplicativos Web à prova de balas com menos código (2016), por Dmitri Sotnikov.
  • Practical Clojure (2010), de VanderHart e Sierra, e Pragmatic Bookshelf Programming Clojure (mencionado acima) foram os dois primeiros livros publicados sobre a linguagem Clojure. O livro Pragmático contém mais e melhores exemplos de código, enquanto este livro da Apress tem explicações mais coerentes. Esses dois livros estabelecem o tom de como a maioria dos desenvolvedores de Clojure pensa sobre o idioma e, portanto, devem ser lidos por qualquer pessoa que esteja aprendendo a aprender..
  • Clojure Programming (2012), de Emerick, Carper e Grand, é uma introdução muito clara à linguagem, especialmente para pessoas provenientes de linguagens de programação e script orientadas para a Web, como PHP e Python.
  • Living Clojure (2015), de Carin Meier, é um guia muito prático para a linguagem, com a suposição útil de que o leitor entende de programação em geral. O livro inclui um plano de aprendizado estruturado projetado para auto-estudo ou treinamento corporativo.

Devo aprender Clojure?

Provavelmente.

É um truísmo amplamente aceito que todo desenvolvedor deve aprender o Lisp, mesmo que você provavelmente não o use. Mas agora que o poder do Lisp foi combinado com a onipresença do Java, é uma linguagem que é boa de aprender e excepcionalmente útil.

Os bons desenvolvedores de Clojure são muito procurados e bem pagos, e o idioma está crescendo em popularidade.

Se você procura habilidades de programação para diferenciá-lo de outros desenvolvedores, o Clojure é uma das melhores ferramentas para adicionar ao seu kit – e ao seu currículo.

Esquema

Se você é um pouco mais velho e participou de um curso introdutório de ciência da computação no ensino médio ou na universidade, é provável que tenha usado a boa e velha linguagem de programação Scheme nesse curso..

Breve história do esquema

Para entender melhor a história do Scheme, precisamos examinar os estágios iniciais da computação moderna. O desenvolvimento do Scheme foi influenciado por dois antecessores anteriores muito diferentes: as linguagens de programação Lisp e ALGOL.

Lisp foi criada em 1958 pelo John McCarthy do Instituto de Tecnologia de Massachusetts (MIT). O esquema foi derivado do Lisp, usando sua semântica e sintaxe gerais. Além disso, o esquema emprestou da ALGOL. Foi desenvolvido por um comitê de cientistas da computação europeus e americanos em uma reunião em 1958, na ETH Zurique. O esquema usou sua estrutura de blocos e escopo lexical.

Em 1973, Guy L Steele, do MIT, e Gerald Jay Sussman começaram uma tentativa de implementar o modelo de ator de Carl Hewitt no cálculo da Lambda. Eles fizeram isso escrevendo um pequeno intérprete Lisp no MacLisp e adicionando mecanismos para criar atores e enviar mensagens. Durante o trabalho, eles perceberam que criaram um dialeto muito pequeno e capaz do Lisp, e o chamaram de Scheme.

Em 2003, o workshop do Scheme iniciou um novo processo de padronização para o Scheme e, finalmente, lançou o padrão R6RS ratificado em 2006. A última versão estável do Scheme é o padrão R7RS ratificado a partir de 2013.

Recursos do esquema

O esquema é uma linguagem de programação principalmente funcional, com listas como a principal estrutura de dados e suporte para funções de primeira classe. É uma linguagem de programação simples, minimalista e fácil de implementar. Essa filosofia minimalista levou a uma grande divergência entre implementações práticas de esquemas, na medida em que o comitê diretor do esquema a chama de “a linguagem de programação mais inoportunável do mundo” e “uma família de dialetos” em vez de um único idioma. Ao contrário das derivadas anteriores do Lisp com escopo dinâmico, o Scheme é lexicamente escopo (uma influência da ALGOL).

No esquema, os blocos são implementados com as seguintes construções: deixei, deixei* e letrec. Essa estrutura de bloco também é herdada do ALGOL. Construção de Iteração Faz é usado no esquema, e também é fornecido suporte para iteração usando recursão de cauda. As continuações no esquema são objetos de primeira classe e são suportadas pelo chamada com continuação atual Procedimento de esquema (também conhecido como ligar / cc) No esquema, todos os dados e procedimentos compartilham um espaço para nome comum, e as entradas e saídas são baseadas no porta tipo de dados.

Torre numérica é um conjunto de tipos de dados numéricos complexos e racionais especificados e implementados no esquema. A avaliação atrasada é suportada no Scheme através do demora forma e o força procedimento.

Implementações e usos do esquema

Devido à sua simplicidade e minimalismo, as bibliotecas Scheme se tornaram muito populares entre os designers, educadores e amadores de linguagens de programação. Isso resultou em muitas implementações e dialetos diferentes do Scheme. O loop tradicional de leitura e avaliação de impressão no estilo Lisp é suportado na maioria das implementações de esquemas, e alguns também compilam programas de esquema para binários executáveis.

A simplicidade das implementações do esquema também o torna uma opção popular para adicionar recursos de script a sistemas maiores. Além disso, as implementações JScheme e Kawa do Scheme fornecem integração com classes Java.

O esquema é usado principalmente na educação. Em muitos cursos introdutórios de ciência da computação e design de programas para demonstrar o básico da programação de computadores. Outros usos notáveis ​​do esquema incluem o inventor do Google App para Android, o editor de gráficos GIMP, a semântica de estilos de documento e a linguagem de especificação (DSSSL) e assim por diante.

Esquema de Aprendizagem

Devido ao amplo uso educacional do Scheme, aprendê-lo e encontrar recursos para o aprendizado não devem ser um problema. Existem muitos recursos de aprendizado disponíveis, gratuitos e comerciais, e destacamos alguns deles.

Cursos e recursos do esquema

Como o Scheme é uma linguagem de programação minimalista e simplificada, é relativamente fácil de dominar. Com esses cursos e tutoriais, você provavelmente poderá começar a programar no Scheme rapidamente.

  • Estrutura e interpretação de programas de computador é o curso introdutório 6.001 do MIT, com muitos recursos úteis para o Scheme, incluindo palestras em vídeo, livros on-line, projetos, transcrições e notas de aula selecionadas.
  • DrScheme é um ambiente de desenvolvimento integrado (IDE) para escrever, depurar e analisar programas de esquemas, também usados ​​em educação.
  • O Pilo Visual Tools for Scheme (PVTS) é uma implementação básica de intérprete de esquema com ferramentas de visualização. Ele é escrito em Java e possui recursos de intérprete muito limitados, com o único objetivo de exibir graficamente o código do esquema como um auxiliar de aprendizado.
  • Schemers.org tem uma bela coleção de documentação e textos introdutórios para Scheme.
Livros de esquema

Estão disponíveis vários livros sobre esquemas, e muitos deles são gratuitos e usados ​​em cursos educacionais. Isso pode ser muito útil se você está apenas começando a aprender a linguagem de programação Scheme.

  • Estrutura e interpretação de programas de computador de Abelson, Sussman e Sussman é um excelente livro de ciência da computação usado em cursos introdutórios do MIT. Esta é uma das bíblias do mundo Lisp and Scheme e está disponível online gratuitamente, na MIT Press.
  • Como criar programas: uma introdução à computação e programação de Felleisen, Findler, Flatt e Krishnamurthi fornece uma introdução muito boa à lógica de programação. É gratuito e está disponível online, publicado pelo MIT Press.
  • A linguagem de programação Scheme, quarta edição de R Kent Dybvig, pretende fornecer uma introdução à linguagem de programação Scheme, mas não uma introdução à programação em geral. É gratuito e está disponível on-line, publicado pelo MIT Press.
  • O Little Schemer – 4ª edição de Friedman e Felleisen apresenta a computação como uma extensão da aritmética e da álgebra e os programas como funções recursivas. Este livro não é gratuito.
  • O Seasoned Schemer também de Friedman e Felleisen, informa o leitor sobre dimensões adicionais da computação: funciona como valores, mudança de estado e casos excepcionais. Este livro não é gratuito.
  • Como usar o esquema: escrevendo scripts e programas com o esquema PLT de Felleisen, Findler, Flatt, Krishnamurthi, Steckler apresentará algumas idéias básicas, como entrada e saída de arquivos, para coisas mais avançadas, como design simples da GUI e scripts da Web aspectos do esquema. Está disponível gratuitamente online.

O esquema é ideal para você?

O esquema não é apenas uma boa maneira de aprender a programar, mas também uma boa maneira de começar a estudar ciência da computação. Esses motivos devem levá-lo na direção certa.

Implementações de aplicativos Lisp

O Lisp é tão útil que é frequentemente usado como a linguagem de script para aplicativos. Os dois maiores são o editor de texto Emacs e o aplicativo de desenho auxiliado por computador (CAD) AutoCAD. Vamos ver os dois abaixo.

AutoLISP

Se você usa um software de desenho auxiliado por computador (CAD), como AutoCAD, Bricscad ou IntelliCAD, em algum momento é provável que você precise de recursos adicionais de personalização ou automação em seu ambiente CAD.

É aqui que o AutoLISP entra em cena. O AutoLISP é uma linguagem de programação simples e leve, criada especificamente para uso com o software CAD.

Uma Breve História do AutoLISP

O AutoLISP é um dialeto da linguagem de programação Lisp, personalizado e simplificado para uso no ambiente AutoCAD.

Lisp é uma família de linguagens de programação que remonta a 1958. O nome Lisp é derivado de “Processador de listas” e as listas vinculadas são uma das principais estruturas de dados do Lisp.

O AutoLISP foi introduzido pela primeira vez na versão 2.18 do AutoCAD da Autodesk, em 1986, e foi aprimorado continuamente em novos lançamentos, até o lançamento 13 em 1995, quando a Autodesk interrompeu o desenvolvimento do AutoLISP em favor de ambientes de desenvolvimento mais modernos, como VBA ou .NET.

Apesar disso, o AutoLISP permaneceu a principal linguagem de personalização para muitos usuários do AutoCAD.

Em 1997, a Autodesk lançou o AutoCAD 14 e introduziu o Visual Lisp como um complemento comercial para o AutoCAD. O Visual Lisp inclui um ambiente de desenvolvimento integrado (IDE), depurador e compilador e suporte a ActiveX.

Com o lançamento do AutoCAD 2000 em 1999, o Visual Lisp foi incorporado no AutoCAD como um substituto para o AutoLISP. Desde então, os principais aprimoramentos do Visual Lisp foram interrompidos pela Autodesk para se concentrar no VBA, .NET e C++.

O Visual Lisp e o AutoLISP continuam com suporte no AutoCAD até hoje, enquanto o suporte para versões do VBA anteriores a 7.1 foi descartado em 31 de janeiro de 2014.

Muitos outros fornecedores de software CAD também adotaram o suporte ao AutoLISP em seus próprios produtos, devido à grande base de usuários, além de muitos utilitários e aplicativos disponíveis no AutoLISP.

Por que as pessoas ainda usam o AutoLISP em vez de C++?

Se você usa a versão completa do Autodesk AutoCAD, o compilador AutoLISP já está incluído no AutoCAD e está pronto para uso. Há também um bom IDE a bordo – Visual Lisp. Observe que as edições do AutoCAD LT não têm suporte interno para o AutoLISP.

A maioria dos usuários do AutoCAD, ou usuários de soluções CAD semelhantes, não estão familiarizados com programação e linguagens de programação, portanto, aprender C ++ para criar um programa simples ou uma função para automação no AutoCAD não seria prático..

O AutoLISP é simples, otimizado e muito mais fácil de usar e aprender do que C ++ ou Visual Basic, e tudo o que você precisa para iniciar a programação já está incluído no AutoCAD.

Programas e utilitários escritos no AutoLISP são facilmente acessados ​​e executados no AutoCAD. Esses são os principais motivos que tornam o AutoLISP a melhor opção para personalizar o AutoCAD por seus usuários..

Recursos do AutoLISP

O AutoLISP é uma linguagem interpretativa, não é compilada e pode ser armazenada em um arquivo de texto ASCII, carregada e executada diretamente no AutoCAD..

Quase todas as operações que você executa manualmente no AutoCAD podem ser executadas automaticamente usando o AutoLISP.

O AutoLISP possui um rico conjunto de funções que você pode usar para executar qualquer atividade no AutoCAD, como funções gerais de programação para manipulação de variáveis, controle de decisão, loops, operações aritméticas, tratamento de erros e tratamento de funções.

Também possui funções especializadas em diversas áreas, como: geometria, controle de exibição, consulta e comando, entrada do usuário e manipulação de objetos.

O AutoLISP também possui uma Linguagem de Controle de Diálogo, uma mini-linguagem GUI integrada para criar caixas de diálogo modais com o layout automatizado no AutoCAD. Todas as plataformas que podem executar o AutoCAD também suportam o AutoLISP.

Aprendendo o AutoLISP

Existem alguns fatores que podem facilitar o aprendizado do AutoLISP.

Se você é um usuário experiente do AutoCAD, aprender o AutoLISP será mais fácil para você. O AutoLISP é essencialmente uma maneira de controlar o AutoCAD; portanto, quanto melhor você conhecer o AutoCAD, melhor saberá o que precisa ser feito para controlá-lo automaticamente..

Tutoriais do AutoLISP

O AutoLISP é uma linguagem muito simples de aprender, e provavelmente a mais produtiva das diferentes interfaces de programação de aplicativos (APIs) incorporadas ao AutoCAD. Com esses tutoriais, você provavelmente estará pronto para escrever seus próprios programas úteis rapidamente.

  • O AfraLISP possui uma excelente coleção de tutoriais de aprendizagem gratuitos do AutoLISP e recursos para usuários iniciantes, intermediários e avançados.
  • O Guia oficial do desenvolvedor do AutoLISP da Autodesk fornece uma visão geral passo a passo dos principais tópicos e fluxos de trabalho para o uso da linguagem de programação AutoLISP. Também é interessante sua referência oficial da função AutoLISP, que certamente será útil durante a programação no AutoLISP.
  • Dominar o AutoLISP em 80 minutos é uma apresentação em Power Point do Augi CAD Camp 2005, gratuita para download. Abrange os conceitos básicos do AutoLISP e destina-se a usuários intermediários do AutoCAD.
  • O Início Rápido do AutoLISP no CADTutor.net é destinado a usuários do AutoCAD que gostariam de começar a aprender o AutoLISP.
  • Seu primeiro programa AutoLISP: Zoom to Origin é um pequeno tutorial que mostra o básico da escrita de um programa AutoLISP curto no Visual Lisp Editor no AutoCAD.
  • A Lee Mac Programing possui recursos interessantes para o AutoLISP, como tutoriais e muitos programas funcionais do AutoLISP que você pode baixar e estudar.
Livros AutoLISP

Inúmeros livros sobre o AutoLISP e seu uso no AutoCAD estão amplamente disponíveis. Você pode achar alguns desses livros muito úteis para aprender a programar no AutoLISP, embora sugerimos que você leia primeiro os tutoriais on-line.

  • Programação AutoLISP: princípios e técnicas de Rawis e Hagen fornece instruções práticas e fáceis de seguir para dominar a linguagem de programação AutoLISP.
  • Personalização da plataforma AutoCAD: interface do usuário, AutoLISP, VBA e além de Lee Ambrosius é um guia abrangente para otimizar e personalizar a plataforma AutoCAD. As linguagens de programação AutoLISP e VBA abrem uma infinidade de opções de personalização, e este livro fornece orientação especializada para aplicá-las ao AutoCAD, Civil 3D, Plant 3D e outros programas baseados na plataforma Autodesk AutoCAD.
  • Visual LISP do especialista em AutoCAD, de Reinaldo Togores: mostra técnicas de programação Lisp, incluindo o uso do Ambiente de Desenvolvimento Integrado Visual Lisp, explicado a partir do zero.

Você está pronto para o AutoLISP?

Embora o AutoLISP seja derivado do Lisp, uma linguagem de programação muito antiga, o AutoLISP continua sendo uma ferramenta muito valiosa para os usuários do AutoCAD..

O AutoLISP ainda é a ferramenta de escolha para personalização e automação no AutoCAD e em outros softwares CAD com suporte para AutoLISP.

Emacs Lisp

Se você usa o GNU Emacs ou qualquer outro editor de texto similar do Emacs, provavelmente já ouviu falar do Emacs Lisp. Emacs Lisp é a linguagem de programação usada para desenvolver e codificar a maioria dos recursos de edição do editor de texto GNU Emacs. Emacs Lisp também é conhecido como Elsip.

Essencialmente, o Emacs Lisp é usado para personalizar e estender os recursos do editor de texto GNU Emacs.

Breve história do Emacs Lisp

O Emacs Lisp é um dialeto minimalista da linguagem de programação Lisp usada nos editores de texto GNU Emacs e XEmacs. Lisp significa “List Processor” e representa uma família de linguagens de programação que remontam a 1958.

Richard Stallman, o fundador do Projeto GNU, criou o editor de texto GNU Emacs.

Lançado pela primeira vez em 1985, o GNU Emacs versão 13 introduziu o uso do Emacs Lisp como sua própria linguagem de extensão. O Emacs Lisp foi amplamente inspirado no dialeto Maclisp da linguagem de programação Lisp.

A versão estável mais recente do GNU Emacs é a versão 24.5, e foi lançada em abril de 2015.

O Emacs Lisp é parte integrante do GNU Emacs e é executado em todas as plataformas suportadas pelo GNU Emacs – GNU, GNU / Linux, FreeBSD, NetBSD, OpenBSD, Mac OS X, Microsoft Windows e Solaris..

O Emacs Lisp e o GNU Emacs são de código aberto e gratuitos. Eles são publicados sob a Licença Pública Geral GNU e o código fonte está disponível gratuitamente para exame, modificação e redistribuição.

Quem usa o Emacs Lisp e o GNU Emacs?

Com os modernos Ambientes de Desenvolvimento Integrado (IDEs) de hoje, escrever código em um editor de texto especializado como o GNU Emacs pode parecer muito estranho à primeira vista.

No entanto, para um usuário experiente, o GNU Emacs possui muitos recursos poderosos de edição de código que a maioria dos IDEs modernos não possui.

O GNU Emacs é descrito como um editor de exibição extensível, personalizável, auto-documentável e em tempo real, e quase todos esses recursos poderosos vêm do seu interpretador Emacs Lisp integrado.

Os IDEs modernos concentram-se na GUI e nos elementos visuais e são controlados principalmente por mouse. Diferentemente deles, o GNU Emacs se concentra na entrada do teclado e nos poderosos recursos de edição de texto, por isso é mais adequado para programadores que escrevem código puro do que a maioria dos IDEs modernos..

Toda linguagem de programação popular é suportada no GNU Emacs. Além disso, o Emacs Lisp entra em ação como uma ferramenta poderosa para expandir e personalizar o GNU Emacs.

Recursos do Emacs Lisp

Como a linguagem de programação Emacs Lisp foi projetada especificamente para ser usada em um editor, ela fornece recursos especiais para analisar e digitalizar texto, manipular subprocessos, buffers, exibições, arquivos e assim por diante. Comandos de edição são funções que podem ser chamadas a partir de programas Emacs Lisp.

Os recursos do Emacs Lisp mostram uma estreita relação com o dialeto Maclisp. O Emacs Lisp usa um escopo dinâmico por padrão, com suporte para métodos de programação imperativos e funcionais, com foco em fornecer estruturas de dados e recursos específicos para seu uso em um poderoso editor de texto.

O escopo estático está disponível como opção a partir da versão 24. Pode ser ativado configurando a variável ligação lexical. Observe que o Emacs Lisp não suporta otimização de chamada de cauda, ​​portanto, recursões de cauda podem levar a erros de estouro de pilha.

O Emacs Lisp também pode ser usado como uma linguagem de script para o GNU Emacs, chamada da linha de comando ou de um arquivo executável, com todas as funções de edição disponíveis para o programa..

A interface de usuário do GNU Emacs não é exibida quando está sendo executada no modo batch com o Emacs Lisp usado para scripts, por isso se comporta mais como uma ferramenta Unix padrão.

Seu ambiente de desenvolvimento

Para começar a usar o Emacs Lisp, você precisará instalar o editor de texto GNU Emacs. É um processo muito simples.

Acesse a página de download do Gnu.org Emacs e siga as instruções para baixar e instalar o GNU Emacs no seu sistema. O GNU Emacs suporta as seguintes plataformas: GNU, GNU / Linux, FreeBSD, NetBSD, OpenBSD, Mac OS X, Microsoft Windows e Solaris.

Learning Emacs Lisp

Naturalmente, aprender Emacs Lisp será mais fácil se você tiver experiência anterior em programação, especialmente em algumas das linguagens de programação funcionais derivadas do Lisp..

A experiência geral de programação também é bem-vinda, porque os codificadores veteranos tendem a conhecer seus editores de texto / código de dentro para fora.

Tutoriais e recursos do Emacs Lisp

O Emacs Lisp é uma linguagem de programação minimalista e fácil de aprender, mas devido ao seu apelo relativamente limitado e de nicho, não existem muitos recursos online. Escolhemos alguns tutoriais e recursos de aprendizado que devem ser úteis se você está apenas começando com o Emacs Lisp:

  • Uma Introdução à Programação no Emacs Lisp do Gnu.org é direcionada a novos usuários sem experiência anterior em programação.
  • O Manual de Referência do GNU Emacs Lisp é uma descrição e referência completas do Emacs Lisp. Este manual pressupõe que você se sinta confortável usando o Emacs para editar.
  • O Elisp Cookbook contém muitos exemplos de código que demonstram operações básicas de programação Emacs Lisp.
  • O Wiki do Emacs Lisp possui links para bons recursos para você começar com a programação do Emacs Lisp.
Emacs Lisp Books

Existem também vários livros do Emacs Lisp por aí. Alguns deles podem ser muito úteis, mas ainda sugerimos que você experimente tutoriais e recursos on-line gratuitamente. Se precisar de mais recursos, você pode comprar um livro ou dois.

  • Uma Introdução à Programação no Emacs Lisp, de Robert J Chassell, é um tutorial elementar para os não programadores mostrarem como personalizar o GNU Emacs usando a linguagem de programação Emacs Lisp.
  • Emacs Lisp – uma introdução de Robert J Chassell foi projetado para você começar a usar o Emacs Lisp e guiá-lo no aprendizado dos princípios básicos da programação.
  • A criação de extensões do GNU Emacs: personalizações e criações do editor com Lisp de Bob Glickstein mostrará tudo, de personalizações simples a mods extensos no Emacs Lisp com exemplos realistas.

Se você usa o Emacs, precisa do Lismac do Emacs

O GNU Emacs foi projetado como um editor de texto com suporte para personalizações usando o Emacs Lisp.

No entanto, o GNU Emacs se tornou um IDE quase completo graças ao poder e extensibilidade fornecidos pela linguagem de programação Emacs Lisp.

É uma linguagem de programação poderosa, mas altamente especializada. Não é algo que o desenvolvedor médio precise dominar, mas em alguns aplicativos de nicho, o Emacs Lisp ainda é amplamente usado, e é improvável que isso mude tão cedo.

Conclusão

Mal arranhamos a superfície do mundo de Lisp. Mas como você pode ver, é uma linguagem extremamente útil para saber, se você está criando aplicativos ou apenas tentando facilitar a edição de texto.

Outras coisas interessantes

Temos mais guias, tutoriais e infográficos relacionados à codificação e desenvolvimento:

  • Programação F #: saiba mais sobre programação funcional no quadro .NET.
  • Introdução e recursos da programação Erlang: uma linguagem funcional antiga usada para criar código paralelo.
  • Java: Introdução, Como aprender e Recursos: confira nosso guia detalhado sobre como se tornar um programador Java.
Que código você deve aprender?

Confuso sobre qual linguagem de programação você deve aprender a codificar? Confira nosso infográfico: Que código você deve aprender?

Ele não apenas discute aspectos diferentes das linguagens, mas também responde a perguntas importantes como: “Quanto dinheiro ganho com a programação de Java para viver?”

Que código você deve aprender?
Que código você deve aprender?

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map