ALGOL
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).
ALGOL | |
---|---|
Paradigma | imperativo |
Surgido em | 1968 (ALGOL 68) |
Influenciada por | FORTRAN |
Influenciou | Jovial, PL/I, Simula, Pascal |
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.
História
editarA ALGOL foi originalmente inventada no final dos anos 50, por um comitê conjunto de cientistas da computação americanos e europeus, reunidos em Zurique. Seu trabalho foi lançado como a linguagem agora conhecida como ALGOL 58 Uma segunda versão do grupo, conhecida como ALGOL 60, tornou-se a versão padrão da linguagem e de uso comum. Esta versão, descrita agora no famoso Relatório ALGOL 60 , teve um profundo impacto no campo de design de linguagem de programação. O ALGOL 68, a última versão “oficial” da linguagem, não foi bem recebida pela comunidade do ALGOL.
A ALGOL nunca pegou realmente em programação para empresas, além de alguns aplicativos de análise matemática usados pelo setor financeiro. Foi, no entanto, amplamente utilizado em matemática e ciências da computação acadêmica, e foi a linguagem padrão para a descrição algorítmica até os anos 80 e 90.
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).
Impacto
editarA 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
Características
editarAs 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.
ALGOL e Burroughs
editarEm 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)[1], 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 ESPOL, uma extensão do Algol, permitindo manipulações mais perto do hardware. Há uma outra extensão, o DCALGOL, Data Communications ALGOL, usado para escrever software de comunicação de dados.
Variantes
editarPadrões
editar- 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
Variantes proprietárias
editar- Elliot ALGOL, a versão estendida da Burroughs.
- DCALGOL, Data Communications ALGOL, uma extensão da Burroughs para acesso aos protocolos de comunicação (algo muito superior ao eqivalente da IBM na época).
- DMALGOL, Data Management ALGOL, outra extensão da Burroughs para interface ao sistema de Data Base (algo bem superior ao eqivalente da IBM na época).
Outras variantes
editar- 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
Exemplo de código
editarProcedimento
editarprocedure 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
Hello world
editarBEGIN FILE F (KIND=REMOTE); EBCDIC ARRAY E [0:11]; REPLACE E BY "HELLO WORLD!"; WHILE TRUE DO BEGIN WRITE (F, *, E); END; END.
Hello world em Elliot Algol
editarElliot 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;
Ver também
editarReferências
- ↑ NUNES, Daltro José; TELICHEVESKY, Nilton (1975). Introdução à Linguagem ALGOL B-6700. Porto Alegre: EMMA, UFRGS. 147 páginas
Bibliografia
editar- ORGANICK, E. I.;FORSYTHE, A. I.;PLUMMER, R. P. (1978). Programming Language Structures. New York: Academic Press. 659 páginas. ISBN 0-12-528260-5
- PACITTI, Tércio; ATKINSON, Cyril P. (1983). Programação e Métodos Computacionais. 1 4ª ed. Rio de Janeiro, RJ, Brasil: Livros Técnicos e Científicos Editora. 435 páginas. ISBN 85-216-0283-9
- WEXELBLAT, Richard L.(Editor) (1981). History of Programming Languages. New York: Academic Press. 758 páginas. ISBN 0-12-745040-8