SNOBOL

Histórico

A primeira versão da linguagem SNOBOL (StriNg Oriented and symBOlic Language) foi desenvolvida por David J. Farber, Ralph E. Griswold e Ivan P. Polonsky nos Laboratórios Bell, em 1962. SNOBOL foi uma das primeiras linguagens criadas para processamentos de listas. Era usada originalmente para processamento de textos baseada nos princípios de correspondência de padrões (Em inglês: pattern matching) para solucionar problemas de manipulação de seqüencias e desenvolvimento de compiladores. Uma das primeiras opções de nome para a linguagem foi SEXI (String EXtraction Interpreter). O nome SNOBOL foi escolhido, segundo dizem, porque um dos implementadores originais disse algo como “This program doesn't have a snowball's chance in hell of succeding.” (algo como “esse programa tem a mesma chance de fazer sucesso como uma bola de neve no inferno”).

O sistema SNOBOL original foi escrito no assembler BEFAP (Bell Laboratories FORTRAN assembly program, na sigla em inglês) para o IBM 7090. O maior defeito da linguagem foi a falta de funções embutidas nela. Uma nova versões, com processos embutidos, foi lançada em 1964, o SNOBOL2. Funções definidas pelo programador foram implementadas no SNOBOL3 (1965). Os trabalhos no SNOBOL4 começaram em 1966 e ele trouxe de novo: padrões melhorados, tipos de dados numéricos, arrays, estruturas e tabelas. O SNOBOL4 é usado até hoje.

O SNOBOL4 tem duas implementações mais conhecidas: uma é vanilla SNOBOL4 (32-bits) e a outra é a spitbol 360 (16-bits)

SNOBOL4

A linguagem SNOBOL 4 suporta alguns tipos de dados pré-definidos, tais como números inteiros e reais de precisão simples, sequências de caracteres, modelos, matrizes e tabelas, e também permite ao programador a definição de tipos de dados adicionais e de novas funções. Distingue-se das linguagens de programação principais por incluir modelos (ex., um tipo de dados cujos valores podem ser manipulados de todas as formas permitidas para todos os outros tipos de dados existentes na linguagem) como um tipo de dados de primeira classe e por disponibilizar operadores para a concatenação e alteração de modelos. As sequências de caracteres geradas durante a execução podem ser tratadas como programas e executadas.

Um modelo SNOBOL 4 tanto pode ser muito simples como extremamente complexo. Um modelo simples é apenas uma sequência de texto (ex: “ABCD”), mas um modelo complexo pode ser uma estrutura de grandes dimensões descrevendo, por exemplo, a gramática completa de uma linguagem de computador.

Nos anos 70 e 80, o SNOBOL 4 foi muito usado nas ciências humanas como linguagem de manipulação de texto. Em anos mais recentes, a sua popularidade decaiu, ao mesmo tempo que linguagens mais novas e eficientes, tais como o Awk e o Perl, tornaram popular a manipulação de sequências de caracteres por meio de expressões comuns. O SNOBOL 4 é agora uma linguagem de interesse especial, utilizada principalmente por entusiastas.

Algumas Vantagens

- Variáveis são dinamicamente tipadas, ou seja, o tipo de uma variável é definido pelo último valor que ela recebeu. Snobol4 na verdade só usa definições de tipos de variáveis em variáveis locais de procedimentos. Os operadores e funções nativas da linguagem checam os tipos de seus argumentos e esses são convertidos para tipos apropriados. Se essa conversão não for possível, uma mensagem de erro será exibida na tela;

- Não possui nenhum mecanismo explícito para devolver memória ao sistema. Isso deve ser previsto pela implementação do código. Isso torna a linguagem mais complexa de ser implementada mas mais fácil de ser usada. Snobol4, em geral, tem muitas facilidades para diagnóstico de erros em tempo de execução. A linguagem permite uma depuração eficiente e “armadilhas” para capturar praticamente todos os erros em run-time.

Principal Desvantagem

- Espaços em branco fazem a diferença no código. Isso atrapalha muito na implementação do programa. Também não possui operadores de comparação. Todas as comparações são feitas por funções que retornam “null” se a condição for verdadeira e retorna um fail se for falsa. Em Snobol a única estrutura de controle, tecnicamente, é a “go to”. Escrever um programa em Snobol exige constantes invenções para nomes de rótulos, e nomes que facilitem a compreensão de quem ler o código. Mas geralmente isso não ocorre.

Exemplos de Codigos

- Hello Word

       output = 'hello world'
 end

- Calculando o Fatorial de Um número

       nini = 3
       n = nini
       factorial = 1
 l1    ge(n, 1)  :s(l2)f(l3)
 l2    factorial = n * factorial  b.       n = n - 1 :(l1)
 l3    output = 'O factorial de ' nini ' é igual a ' factorial
 end

Mais Informações

Documentação e programas para download em :

http://www.snobol4.org/

http://www.snobol4.com/

Referências

Aluno Responsável

Celso Marigo Junior

 
snobol-1-trabalho.txt · Last modified: 2012/03/16 21:36 by clp · [Old revisions]