ALGOL
| ALGOL | |
|---|---|
| Paradigma | imperativo |
| Surgido em | 1958 (ALGOL 58) |
| Influenciada por | FORTRAN |
| Influenciou | Jovial, PL/I, Simula, Pascal |
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 |
História editar
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 editar
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
Características editar
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.
ALGOL e Burroughs editar
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)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 editar
Padrõ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 editar
Procedimento editar
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
Hello world editar
BEGIN 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 editar
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;
Ver também editar
Referências
- ↑ NUNES, Daltro José; TELICHEVESKY, Nilton. Introdução à Linguagem ALGOL B-6700. Porto Alegre: EMMA, UFRGS, 1975. 147 p.
Bibliografia editar
- ORGANICK, E. I.;FORSYTHE, A. I.;PLUMMER, R. P.. Programming Language Structures. New York: Academic Press, 1978. 659 p. ISBN 0-12-528260-5
- PACITTI, Tércio; ATKINSON, Cyril P.. Programação e Métodos Computacionais. 4ª ed. Rio de Janeiro, RJ, Brasil: Livros Técnicos e Científicos Editora, 1983. 435 p. 2 vol. vol. 1. ISBN 85-216-0283-9
- WEXELBLAT, Richard L.(Editor). History of Programming Languages. New York: Academic Press, 1981. 758 p. ISBN 0-12-745040-8










