ALGOL
Origem: Wikipédia, a enciclopédia livre.
ALGOL | |
---|---|
Paradigma: | imperativo |
Surgido em: | 1958 (ALGOL 58) |
Última versão: | {{{ultima_versao}}} |
Criado por: | |
Estilo de tipagem: | |
Compiladores: | |
Dialetos: | |
Influenciada por: | FORTRAN |
Influenciou: | Jovial, PL/I, Simula |
Licença: | {{{licença}}} |
Website: | {{{website}}} |
O ALGOL é uma família de linguagens de programação de alto nível voltadas principalmente para aplicações científicas. Seu nome provém das palavras "ALGOrithmic Language" (Linguagem Algorítmica).
O nome é escrito ALGOL ou Algol, dependendo da fonte de consulta.
Várias linguagens razoavelmente diferentes receberam o nome de ALGOL ou Algol, adicionando ao nome letras ou números, por descenderem diretamente do ALGOL original.
Índice |
[editar] História
A linguagem começou a ser formulada em 1957, na Europa, por um grupo internacional de cientistas de computação que finalmente, em 1960, definiram o Algol 60 através de um documento curto, conciso e preciso, o "Revised Report on the Algorithmic Language Algol 60", que foi publicado em 1963 na revista Communications of the ACM.
ALGOL especifica três sintaxes diferentes: uma sintaxe de referência, uma sintaxe de publicação e uma sintaxe de implementação. O uso de três sintaxes distintas permitia usar palavras chaves diferentes e convenções para pontos decimais (ou vírgulas decimais) de acordo com diferentes costumes nacionais.
A primeira versão da linguagem foi criada em 1958 e teve o nome original de Internation Algorithmic Language, mais tarde sendo conhecida por ALGOL 58
John Backus desenvolveu a Forma normal de Backus, conhecido como BNF, para descrever ALGOL 58. O método foi revisado e expandido por Peter Naur, recebendo então o nome de Forma de Backus-Naur, e mantendo a sigla.
C.A.R. Hoare disse de ALGOL 60: "Aqui está uma linguagem tão a frente de seu tempo, que não foi uma melhoria sobre seus predecessoras, mas também a quase todas suas sucessoras". Essa fala foi também uma crítica velada a ALGOL 68, uma linguagem considerada inchada demais por muitos de seus críticos (e que não teve praticamente nenhum sucesso comercial).
[editar] Impacto
A definição do ALGOL 60 foi um evento-chave na história das linguagens de programação. Foi a primeira linguagem de Programação estruturada. Nenhuma outra linguagem teve influência tão importante nos projetos de novas linguagens.
Além disso, a especificação da linguagem também criou desafios técnicos para a construção de compiladores, como mais tarde aconteceria com PL/I e Ada
[editar] Características
As duas características principais do Algol são: a clareza e a elegância da sua estrutura baseada nos blocos e o estilo de sua definição, que usa uma linguagem metalingüística para definir de forma concisa e relativamente completa a sua sintaxe.
A linguagem continuou sendo desenvolvida e enriquecida com novas construções e novos comandos que aumentaram seu potencial.
Existem outras versões do Algol, como, por exemplo, o Algol 68, o Algol W voltado para máquinas IBM e o Algol 6000/7000 da Burroughs.
[editar] ALGOL e Burroughs
Em particular, a Burroughs, projetou o hardware de seu computador B6700 com base na estrutura da linguagem Algol. Isso fez com que o nome de ALGOL fosse logo associado a máquinas Burroughs, e vice-versa.
O Algol B6000/7000 é uma linguagem muito mais poderosa do que o Algol 60. As principais extensões que foram acrescentadas são: facilidade para o tratamento de entrada e saída (definição de arquivos e seus atributos, comandos para manipulação de arquivos e variedade de formatos), facilidades para o tratamento de cadeias de caracteres (tipo string, tipo POINTER (ou Ponteiro), comandos e funções para manipulação de cadeias), acesso a bits de memória (palavra parcial) e facilidade para definir macros (declaração DEFINE).
Esta linguagem se tornou apropriada para escrever software básico; em particular o sistema operacional do B6700 (MCP – "Master Control Program") está escrito em DCALGOL, Data Communications ALGOL, que é uma extensão do Algol B6000/7000.
[editar] Variantes
[editar] Padrões
- ALGOL 58, primeira proposta da linguagem
- ALGOL 60, versão mais conhecida da linguagem
- ALGOL 68, versão bem mais poderosa, porém menos conhecida
[editar] Variantes Proprietárias
- Elliot ALGOL, a versão extendida da Burroughs.
- DCALGOL, Data Communications ALGOL, uma extensão da Burroughs para ALGOL.
[editar] Outras variantes
- Algol-W, proposta por Niklaus Wirth, no comitê de transição de Algol 60 para Algol 68, antecessora de Pascal
- S-algol, Algol com tipos de dados ortogonais, desenvolvido por Ron Morrison
- Jovial
- Simula
[editar] Exemplo de código
[editar] Procedimento
procedure Absmax(a) Size:(n, m) Result:(y) Subscripts:(i, k); value n, m; array a; integer n, m, i, k; real y; comment The absolute greatest element of the matrix a, of size n by m is transferred to y, and the subscripts of this element to i and k; begin integer p, q; y := 0; i := k := 1; for p:=1 step 1 until n do for q:=1 step 1 until m do if abs(a[p, q]) > y then begin y := abs(a[p, q]); i := p; k := q end end Absmax
[editar] Hello world
BEGIN FILE F (KIND=REMOTE); EBCDIC ARRAY E [0:11]; REPLACE E BY "HELLO WORLD!"; WHILE TRUE DO BEGIN WRITE (F, *, E); END; END.
[editar] Hello world em Elliot Algol
Elliot Algol usava símbolos diferentes para abrir e fechar strings, mas isso não pode ser feito com código ASCII.
program HelloWorld; begin print "Hello world"; end;