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}}}
Página oficial {{{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 International 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 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.

[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

[editar] Outras variantes

[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;

[editar] Ver também

[editar] Bibliografia

  • ORGANICK, E. I.;FORSYTHE, A. I.;PLUMMER, R. P.. Programming Language Structures. New York: Academic Press, 1978. pp. 659. 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. pp. 435. 2 v. v. 1 ISBN 85-216-0283-9
  • WEXELBLAT, Richard L.(Editor). History of Programming Languages. New York: Academic Press, 1981. pp. 758. ISBN 0-12-745040-8