ALGOL

linguagem de programação

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

editar

A 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

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

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

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