SNOBOL: aprenda sobre esse idioma de processamento de texto dos anos 60

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.


SNOBOL – StriNg Oriented and symBOlic Language – é uma família de linguagens de programação originalmente desenvolvidas em meados da década de 1960, principalmente para fins de processamento de texto e análise de strings..

Uma observação rápida sobre versões e implementações

A última versão estável do SNOBOL pelos desenvolvedores originais foi o SNOBOL4, em 1967. Você verá livros e sites usando “SNOBOL” e “SNOBOL4” (e às vezes “Snobol”). Em qualquer coisa após 1967, tudo isso se refere à mesma versão (final) do idioma.

Havia também algumas extensões e implementações. Snocone é um pré-processador de linguagem que fornece açúcar sintático para a linguagem, facilitando o uso. SPITBOL é um compilador para SNOBOL; isso é de particular interesse, porque originalmente se pensava que o SNOBOL não era compilável. Há também a linguagem de programação Snowball, inspirada e nomeada após o SNOBOL.

Devido a essas e outras extensões, algumas pessoas usam a frase “Vanilla SNOBOL” quando se referem a códigos que implementam apenas a especificação SNOBOL4 original e não a nenhum recurso adicional..

Sobre o idioma

O SNOBOL foi criado especificamente para manipulação de texto e string. Por esse motivo, ele possui um recurso relativamente exclusivo: os padrões são considerados tipos de dados de primeira classe. Isso permite que os próprios padrões sejam manipulados, como qualquer outra estrutura de dados. Além disso, as seqüências de caracteres podem ser tratadas como código e avaliadas. Isso permite o uso recursivo de padrões e o processamento e análise de cadeias altamente complexos. Um programa SNOBOL pode até mudar seu próprio código-fonte.

Os padrões no SNOBOL podem ser simples, como pequenas extensões de texto ou sequências de caracteres do tipo regex. Mas eles também podem ser extremamente complexos, como uma descrição formal completa da gramática de uma língua. Os intérpretes de linguagem de programação podem ser escritos em SNOBOL, bem como análise gramatical de linguagem natural, verificação ortográfica e (em teoria) mecanismos de tradução.

O SNOBOL era muito popular na academia de Ciência da Computação nas décadas de 1960 e 1970, e foi amplamente utilizado nas ciências humanas nos anos 80. Neste momento, caiu amplamente em desuso, em favor de uma programação de Expressão Regular menos poderosa, usando linguagens como Awk e Perl. Ainda existem alguns desenvolvedores leais do SNOBOL por aí, e o idioma tem o potencial de ser tão útil quanto sempre.

Tutoriais on-line

  • Um tutorial do Snobol4, um tutorial de 1985 de Mark Emmer;
  • Emmer também escreveu Vanilla Snobol4: Manual de Tutorial e Referência (PDF) e Macro SPITBOL: The High Performance SNOBOL4 Language (PDF);
  • Usando SNOBOL / SITBOL no TWENEX.ORG, este tutorial é para a implementação do SITBOL do SNOBOL, para uso no sistema SDF Public Access TOPS-20 – existem algumas instruções de plataforma estranhamente específicas aqui, mas também um bom tutorial sobre o próprio SNOBOL;
  • Apresentação do SNOBOL4 Powerpoint, fornece apenas os slides de uma apresentação no SNOBOL – não é uma ótima introdução autônoma, mas vale a pena dar uma olhada em uma visão geral dos principais conceitos;
  • Usando o SNOBOL no MTS, um guia para usar o idioma no sistema de terminais do mainframe Michigan – isso pode ser útil, juntamente com o emulador Hercules, se você precisar trabalhar em um sistema SNOBOL legado.

Ferramentas

  • SPITBOL, uma implementação compilada do SNOBOL, disponível no Github;
  • SnoPy, uma biblioteca Python que permite usar padrões de texto baseados em SNOBOL;
  • Mini intérprete SNOBOL, escrito em F #;
  • Implementação macro do SNOBOL4 em C.

Comunidade e Aprendizagem Contínua

  • Yahoo Email Group, para desenvolvedores do SNOBOL e pessoas que trabalham com tecnologia de processamento de texto semelhante;
  • SNOBOL4.com, um site sobre o idioma de uma empresa fundada por Mark Emmer, escritor de vários livros e tutoriais sobre o idioma;
  • O SNOBOL listserve.

Livros sobre SNOBOL

  • Livros gerais sobre o idioma:
    • A Snobol4 Primer, de Ralph Griswold: uma introdução básica à linguagem, escrita por um de seus inventores;
    • A linguagem de programação Snobol4, de Ralph Griswold: chamada “o Livro Verde”, é o livro clássico sobre a linguagem;
    • Processamento de strings e listas no Snobol 4: Técnicas e Aplicações, por Ralph Griswold;
    • Introdução ao programador do Snobol, por Ward Douglas Maurer.
  • Tópicos especiais na programação SNOBOL:
    • SNOBOL Programming for the Humanities, de Susan Hockey;
    • Algoritmos em Snobol 4, de James Gimpel;
    • A implementação macro do Snobol 4: um estudo de caso de desenvolvimento de software independente de máquina, por Ralph Griswold.

Devo aprender SNOBOL?

O SNOBOL não é uma linguagem muito popular e não há muitos empregadores procurando desenvolvedores do SNOBOL. Portanto, do ponto de vista do progresso na carreira, é melhor você se concentrar em mais idiomas sob demanda.

No entanto, se você estiver interessado em computação centrada em texto (pesquisa, tradução, processamento de linguagem natural, análise literária), convém passar algum tempo com o SNOBOL: especialmente se você já ultrapassou os limites do que pode ser realizado com regularidade. expressões.

Outras ferramentas de texto

Se você está interessado no SNOBOL, confira algumas dessas outras ferramentas para processar e analisar texto.

  • Natural Language Toolkit, uma plataforma Python para trabalhar com dados da linguagem humana;
  • Stanford CoreNLP, um conjunto de ferramentas baseadas em Java para análise de linguagem natural;
  • Awk, uma linguagem de script projetada especificamente para processamento de texto;
  • Perl, outra linguagem de script, amplamente considerada como a melhor implementação de expressão regular disponível;
  • O ANTLER é uma outra ferramenta para reconhecimento de idiomas e pode ser usado para analisar idiomas naturais e artificiais (computador);
  • Apache OpenNLP, um kit de ferramentas de aprendizado de máquina para processamento de linguagem natural;
  • Apache Lucene, um conjunto de ferramentas de software de pesquisa em Java e Python;
  • GATE, Arquitetura Geral para Engenharia de Texto, uma estrutura para “resolver quase qualquer problema de processamento de texto”;
  • Prolog, uma linguagem de programação lógica inventada para processamento de linguagem natural;
  • Icon, outra linguagem de processamento de texto criada por Ralph Griswold após seu trabalho no SNOBOL.

Você também pode ler Domar texto: Como localizá-lo, organizá-lo e manipulá-lo, de Ingersoll, Morton e Farris. O livro fornece uma excelente visão geral do processamento de texto, com exemplos usando várias das ferramentas de software listadas acima.

Por fim, confira o TAPoR3, um site e uma comunidade online dedicada a ferramentas para análise de texto.

Leitura e recursos adicionais

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

  • Guia e recursos Perl: este é um excelente guia para começar a usar essa poderosa linguagem de script.
  • Recursos do Awk: aprenda essa poderosa linguagem de script disponível na maioria dos computadores.
  • Recursos de Prolog: isso permitirá que você inicie esta linguagem de programação lógica icônica.

Processamento de linguagem natural ganha vida!

A ciência do processamento de linguagem natural percorreu um longo caminho desde os dias do SNOBOL. Descubra tudo sobre isso em nosso infográfico Como Evitar se Apaixonar por um Chatbot. Ele cobre a longa história de computadores “pensantes” – e pode até salvá-lo de um coração partido!

Que código você deve aprender?
Como evitar se apaixonar por um chatbot

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me