APL/SNOBOL As primeiras linguagens dinâmicas Alunos: Braully Rocha da Silva Bruno Ferreira Machado...

22
APL/SNOBOL APL/SNOBOL As primeiras linguagens As primeiras linguagens dinâmicas dinâmicas Alunos: Braully Rocha da Silva Bruno Ferreira Machado Ricardo Pulice de Almeida

Transcript of APL/SNOBOL As primeiras linguagens dinâmicas Alunos: Braully Rocha da Silva Bruno Ferreira Machado...

Page 1: APL/SNOBOL As primeiras linguagens dinâmicas Alunos: Braully Rocha da Silva Bruno Ferreira Machado Ricardo Pulice de Almeida.

APL/SNOBOLAPL/SNOBOLAs primeiras linguagens dinâmicasAs primeiras linguagens dinâmicas

Alunos: Braully Rocha da Silva

Bruno Ferreira Machado

Ricardo Pulice de Almeida

Page 2: APL/SNOBOL As primeiras linguagens dinâmicas Alunos: Braully Rocha da Silva Bruno Ferreira Machado Ricardo Pulice de Almeida.

APL• Histórico

APL (Array Programming Language ou "A Programming Language") foi uma das primeiras linguagens criadas para processar arrays. Foi criada por Kenneth E. Iverson enquanto ele estudava na Universidade Harvard. A linguagem tinha como nome original "Notação Iverson" e foi criada visando acabar com as ambigüidades e com as confusões das notações matemáticas. No fim dos anos 60, graças aos esforços da IBM, a comunidade científica teve conhecimento da APL.

Page 3: APL/SNOBOL As primeiras linguagens dinâmicas Alunos: Braully Rocha da Silva Bruno Ferreira Machado Ricardo Pulice de Almeida.

APL é uma notação orientada a usuários, facilitando a comunicação de pessoas com pessoas e/ou computadores. A notação usa símbolos como letras, números, formas especiais e álgebra com uma sintaxe bastante simples para unir esses símbolos e processar dados. Os dados podem tanto ser números ou textos. A linguagem é formada de inúmeros "dialetos" diferentes.

Page 4: APL/SNOBOL As primeiras linguagens dinâmicas Alunos: Braully Rocha da Silva Bruno Ferreira Machado Ricardo Pulice de Almeida.

• Mais sobre a linguagem: APL é caracterizada por verificação dinâmica de tipos e

alocação dinâmica de memória. Foi projetada como uma linguagem de descrição de hardware ( IBM por Ken Iverson) e é altamente expressiva ( muitos operadores tanto para escalares quanto para arrays de muitas dimensões). A linguagem foi criada pensando-se em comunicação de procedimentos matemáticos. É uma linguagem simples de aprender e simples de usar, pois foi criada para ser assim. APL é uma linguagem concisa: o que você faz em muitas e muitas linhas usando Basic ou Fortran, por exemplo, pode fazer em pouquíssimas, ou até em somente uma, linha em APL.

Por ser uma linguagem muito concisa e ter muitos símbolos que representam diferentes funções, APL é uma linguagem difícil de ser lida. Muitas vezes o próprio implementador não consegue entender muito bem o que ele mesmo escreveu. Isso é um grande problema da linguagem, pois restringe o seu uso àqueles que gastam um bom tempo tentando entendê-la.

Page 5: APL/SNOBOL As primeiras linguagens dinâmicas Alunos: Braully Rocha da Silva Bruno Ferreira Machado Ricardo Pulice de Almeida.

• Exemplo de código para imprimir "Hello you." na saída-padrão:

Simplesmente: 'Hello you.' basta, mas também pode ser feito da seguinte forma:

a <- 'Hello you.''a'

Page 7: APL/SNOBOL As primeiras linguagens dinâmicas Alunos: Braully Rocha da Silva Bruno Ferreira Machado Ricardo Pulice de Almeida.

• Documentações:

Manuais de APL360 e APL1130: http://www.classiccmp.org/bitsavers/pdf/ibm/apl/

Page 8: APL/SNOBOL As primeiras linguagens dinâmicas Alunos: Braully Rocha da Silva Bruno Ferreira Machado Ricardo Pulice de Almeida.

Exemplo APL

Page 9: APL/SNOBOL As primeiras linguagens dinâmicas Alunos: Braully Rocha da Silva Bruno Ferreira Machado Ricardo Pulice de Almeida.

Outro exemplo APL

Page 10: APL/SNOBOL As primeiras linguagens dinâmicas Alunos: Braully Rocha da Silva Bruno Ferreira Machado Ricardo Pulice de Almeida.

Teclado APL

Page 11: APL/SNOBOL As primeiras linguagens dinâmicas Alunos: Braully Rocha da Silva Bruno Ferreira Machado Ricardo Pulice de Almeida.

SNOBOL

• Histórico A primeira linguagem SNOBOL (StriNg Oriented and

symBOlic Language) criada 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 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").

Page 12: APL/SNOBOL As primeiras linguagens dinâmicas Alunos: Braully Rocha da Silva Bruno Ferreira Machado Ricardo Pulice de Almeida.

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.

Page 13: APL/SNOBOL As primeiras linguagens dinâmicas Alunos: Braully Rocha da Silva Bruno Ferreira Machado Ricardo Pulice de Almeida.

O SNOBOL4 tem duas implementações mais conhecidas: uma é vanilla SNOBOL4 (32-bits) e a outra é a spitbol 360 (16-bits). As documentações de ambas encontram-se nas Referências Bibliográficas.

Page 14: APL/SNOBOL As primeiras linguagens dinâmicas Alunos: Braully Rocha da Silva Bruno Ferreira Machado Ricardo Pulice de Almeida.

• Mais sobre a linguagem:

Vantagens de Snobol4: 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.

Page 15: APL/SNOBOL As primeiras linguagens dinâmicas Alunos: Braully Rocha da Silva Bruno Ferreira Machado Ricardo Pulice de Almeida.

Snobol 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.

Page 16: APL/SNOBOL As primeiras linguagens dinâmicas Alunos: Braully Rocha da Silva Bruno Ferreira Machado Ricardo Pulice de Almeida.

Desvantagens de Snobol4: espaços em branco fazem a diferença no código. Isso atrapalha muito na implementação do programa. Snobol 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.

Page 17: APL/SNOBOL As primeiras linguagens dinâmicas Alunos: Braully Rocha da Silva Bruno Ferreira Machado Ricardo Pulice de Almeida.

• Exemplo de código para imprimir "Hello you." na saída-padrão:

OUTPUT = 'Hello you.'END

Page 18: APL/SNOBOL As primeiras linguagens dinâmicas Alunos: Braully Rocha da Silva Bruno Ferreira Machado Ricardo Pulice de Almeida.

• Compiladores / Interpretadores

Podem ser encontrados compiladores em: http://www.idiom.com/free-compilers/LANG/Snobol4-1.html

Compilador e interpretador de SNOBOL4+: ftp://ftp.snobol4.com/snobol4p.zip

Page 19: APL/SNOBOL As primeiras linguagens dinâmicas Alunos: Braully Rocha da Silva Bruno Ferreira Machado Ricardo Pulice de Almeida.

• Documentações:

Documentação do SNOBOL4: http://public.planetmirror.com/pub/snobol/snocone/doc/

Documentação de Vanilla Snobol: http://burks.bton.ac.uk/burks/language/snobol/catspaw/manual/contents.htmDocumentação de Spitbol: http://www.snobol4.com/spitbol360/

Page 20: APL/SNOBOL As primeiras linguagens dinâmicas Alunos: Braully Rocha da Silva Bruno Ferreira Machado Ricardo Pulice de Almeida.

Exemplos SNOBOL

Page 21: APL/SNOBOL As primeiras linguagens dinâmicas Alunos: Braully Rocha da Silva Bruno Ferreira Machado Ricardo Pulice de Almeida.
Page 22: APL/SNOBOL As primeiras linguagens dinâmicas Alunos: Braully Rocha da Silva Bruno Ferreira Machado Ricardo Pulice de Almeida.