Abrir menu principal

Wikipédia β

ALGOL

linguagem de programação
Question book-4.svg
Esta página ou secção cita fontes confiáveis e independentes, mas que não cobrem todo o conteúdo, o que compromete a verificabilidade (desde janeiro de 2014). Por favor, insira mais referências no texto. Material sem fontes poderá ser removido.
Encontre fontes: Google (notícias, livros e acadêmico)
ALGOL
Paradigma imperativo
Surgido em 1968 (ALGOL 68)
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óriaEditar

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

ImpactoEditar

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ísticasEditar

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 BurroughsEditar

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.

VariantesEditar

PadrõesEditar

  • 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áriasEditar

  • 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 variantesEditar

Exemplo de códigoEditar

ProcedimentoEditar

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 worldEditar

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 AlgolEditar

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émEditar

Referências

  1. NUNES, Daltro José; TELICHEVESKY, Nilton (1975). Introdução à Linguagem ALGOL B-6700. Porto Alegre: EMMA, UFRGS. 147 páginas 

BibliografiaEditar

  • 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