ALGOL: O melhor idioma que você nunca ouviu falar

Divulgação: Seu suporte ajuda a manter o site funcionando! Nós ganhamos uma taxa de referência para alguns dos serviços que recomendamos nesta página. Saiba mais

ALGOL é provavelmente a língua mais influente que você nunca ouviu falar.

As outras línguas importantes da mesma época – Fortran, COBOL, Lisp – ainda têm muito uso (relativamente falando).

ALGOL foi importante por direito próprio, especialmente na academia e matemática. Mas a sua maior influência tem sido no desenvolvimento de outras línguas. A maioria das línguas em uso hoje em dia devem algo à ALGOL

A História da ALGOL

ALGOL foi originalmente inventada no final dos anos 50, por um comité conjunto de cientistas informáticos americanos e europeus, reunidos em Zurique. Seu trabalho foi lançado como a linguagem agora conhecida como ALGOL 58.

Um segundo lançamento do grupo, conhecido como ALGOL 60, tornou-se a versão padrão da linguagem é de uso comum.

Esta versão, descrita no agora famoso ALGOL 60 Report, teve um profundo impacto no campo do design da linguagem de programação. ALGOL 68, a última versão “oficial” da linguagem não foi bem recebida pela comunidade ALGOL.

ALGOL nunca foi realmente capturada na programação de negócios, além de algumas aplicações de análise matemática utilizadas pela indústria financeira.

Foi, no entanto, amplamente utilizada em informática acadêmica e matemática, e foi a linguagem padrão para a descrição algorítmica bem nos anos 80 e 90.

Influência do Algol em Outras Línguas

Sintaxe e estrutura do Algol influenciaram diretamente uma série de outras línguas, que passaram a ser conhecidas como línguas “Algol-like”.

Estas línguas incluem Simula, C, Pascal, e Ada. Algumas dessas conexões são bastante diretas: Pascal, por exemplo, foi desenvolvido por Niklaus Wirth, que tinha construído anteriormente uma derivada ALGOL chamada ALGOL W.

O membro mais famoso deste grupo é C, que gerou a sua própria família de derivados e descendentes: C++, C#, Objective-C, e D – para citar apenas alguns. A sintaxe do PHP também é baseada em C, o que significa que a linguagem mais utilizada do lado do servidor na internet traça sua linhagem de volta para ALGOL.

Even mais profundamente, ALGOL influenciou a forma como as linguagens de programação são concebidas e descritas.

O cientista informático John Backus propôs uma descrição gramatical para ALGOL (PDF), que foi utilizada no Relatório ALGOL 60, editado por Peter Naur. Esta linguagem de descrição ficou conhecida como Backus-Naur Form (BNF). BNF, e EBNF (“extended”), é agora a forma padrão de descrever a gramática de uma linguagem formal.

ALGOL Resources

ALGOL é uma linguagem antiga, a maioria obsoleta, e por isso pode ser muito difícil encontrar recursos e informações confiáveis sobre ela. Felizmente para você, não é necessário. Percorremos a Internet para lhe trazer os recursos mais importantes para aprender sobre ALGOL.

Tutoriais Históricos

Todos os tutoriais valiosos sobre ALGOL foram escritos há muito tempo. Felizmente, os melhores foram escaneados e disponibilizados online.

  • Um Curso de Programação Algol 60 (PDF) é um tutorial sobre a linguagem, escrito por Peter Naur, o editor do Relatório original do ALGOL 60 (ver abaixo)

  • A Introdução Informal ao ALGOL 68, Edição Revista (PDF) por Lindsey e Meulen, foi originalmente publicado em 1977, e está agora disponível gratuitamente online

  • Programação de Algol 68 Made Easy (PDF) de Sian Leitch, é outro livro clássico

  • A Tutorial on Algol 68 (PDF) é um artigo de periódico de 1976, proporcionando tanto uma introdução à linguagem como um vislumbre da história da computação.

Compilers

  • Algol 68 Genie é um compilador ALGOL moderno, de plataforma cruzada – provavelmente a maneira mais fácil de começar a trabalhar com ALGOL no seu computador; não perca o Learning Algol 68 Genie (PDF) de Marcel van der Veer, que inclui um tutorial de linguagem e programas de exemplo

  • Executar Algol Online com o intérprete Algol in-browser do Tutorials Point

  • Algol-68 para C é um tradutor/compilador portátil, permitindo executar o ALGOL 68 em qualquer ambiente com um compilador C

  • Z80 ALGOL Compiler com uma máquina virtual, para executar o ALGOL no MS-DOS.

Exemplo de Programas ALGOL

  • Hello World! e Compute the Mean, escrito em ALGOL for the Unisys (Burroughs) mainframe da série A

    >

  • >

  • 99 Bottles of Beer on the Wall, programado em ALGOL 68 e em ALGOL 60

    >

  • >

  • Peneira de Eratóstenes em ALGOL 60 mostra um programa de exemplo para encontrar números primos em ALGOL.

Recursos Históricos

  • Relatório sobre a Linguagem Algorítmica ALGOL 60 (PDF) editado por Peter Naur, é o documento de definição original para a linguagem – um documento de leitura obrigatória para qualquer pesquisador do ALGOL; o Relatório Revisto (PDF) fornece a definição final e oficial da linguagem; o Relatório Revisto também está disponível em uma edição crítica contemporânea com erratas corrigidas (PDF)

  • Algol68.org é um site dedicado à linguagem, com muitos recursos e material adicional

  • a História do projeto ALGOL pelo Grupo de Preservação de Software inclui um grande acervo de material ALGOL, incluindo artigos originais, compiladores, artigos, aplicações, e muito mais.

Livros sobre ALGOL

  • Um Guia de Programação ALGOL (1962) por Daniel McCracken é um livro que cobre ALGOL 60

  • Programação – ALGOL (1969) por D J Malcolme-Lawes é um manual de áudio geral sobre a linguagem, e inclui uma introdução historicamente fascinante à tecnologia informática

  • Programação e Resolução de Problemas em Algol 68 (1978) por Andrew JT Colin é um livro de nível básico que introduz tanto a programação de computadores em geral como ALGOL em particular

  • Uma Introdução a Algol 68 Através de Problemas (2014) por Learner e Powell também introduz a programação de computadores usando ALGOL, usando uma série de problemas práticos de computação

  • Programação por Estudos de Caso: Um Algol Primer (1969) de Chedzoy e Ford é outra introdução à programação através do ALGOL, mas com ênfase na matemática.

ALGOL e outras linguagens

  • Handbook and Guide for Comparing and Selecting Computer Languages (1990) por James Ogden fornece uma comparação interessante das propriedades, pontos fortes e fracos do Básico, FORTRAN, Pascal, COBOL, PL/1, APL, ALGOL-60, e C

  • Métodos Numéricos de Otimização Matemática (1968) editado por Kunzi et al cobre computação matemática usando tanto FORTRAN como ALGOL

  • Estruturas de Dados de Pascal, ALGOL 68, PL/1 e Ada (1986) de Lewi e Paredaens, cobre conceitos subjacentes, não exemplos práticos de programação, nas linguagens incluídas

    >

  • FORTRAN, PL/I e os Algols (1979) de Brian Meek compara estas três importantes famílias de linguagens

    >

  • Expert C Programming: Deep C Secrets (1994) de Peter van der Linden inclui detalhes interessantes sobre a influência que ALGOL teve no desenvolvimento de C

  • Algol-like Languages Volume 1 (1996) e Volume 2 (1997) editado por O’Hearn and Tennent é uma coleção de ensaios explorando a história de ALGOL e sua influência no desenvolvimento de outras linguagens de programação.

Sumário

ALGOL não é uma linguagem que você precisa aprender para conseguir um emprego ou para ser um desenvolvedor de sucesso. No entanto, foi extremamente influente tanto na prática como na teoria da programação de computadores.

Se você está interessado em design de linguagem ou na história da ciência da computação, ALGOL é uma importante pedra de toque para se familiarizar.

Outras Leituras e Recursos

Temos mais guias, tutoriais e infográficos relacionados com codificação e desenvolvimento:

  • Fortran Resources: uma das primeiras linguagens de alto nível, ainda amplamente utilizada em programação científica.

  • COBOL Introdução e Recursos: a linguagem clássica de programação empresarial.

  • Recursos de Prologia: Prolog foi uma linguagem de programação lógica antiga.

Que código você deve aprender?

Confuso sobre em que linguagem de programação você deve aprender a codificar? Confira nosso infográfico, Qual Código Você Deve Aprender? Ele não só discute diferentes aspectos das linguagens, mas também responde perguntas importantes como, “Quanto dinheiro eu vou ganhar programando Java para viver?”

Deixe um comentário