Algol (acrónimo inglés de Algorithmic Language, "linguaxe algorítmica") é unha linguaxe de programación. Foi moi popular nas universidades durante os anos 1960, pero non chegou a ter éxito coma linguaxe de uso comercial.
Porén, Algol influíu profundamente en varias linguaxes posteriores que si acadaron gran difusión, coma Pascal, C e Ada.
Deica 1965 dúas correntes distinguíronse sobre o tema dunha sucesora para a Algol. Como resultado, definíronse as linguaxes Algol W que é unha linguaxe minimalista, rapidamente implementada e distribuída e, por outra parte, Algol 68 que para a época está na fronteira entre unha linguaxe para programar nela e unha linguaxe para investigar sobre ela.
Linguaxe elaborada deseñada por Niklaus Wirth e Tony Hoare a partir dos traballos do grupo ALGOL da IFIP. Trátase dunha linguaxe concisa, simple de implementar, que evita tódolos defectos coñecidos da linguaxe Algol e inclúe as súas propias características adicionais. Con todo, o grupo Algol non a adoptou como sucesora do Algol preferindo no seu lugar á que terminou sendo Algol 68. Algol W foi empregada por gran cantidade de usuarios e sementou o camiño para o nacemento da linguaxe Pascal.
Entre as características desta linguaxe destácanse: Aritmética de dobre precisión, números complexos, cadeas de caracteres e estruturas de datos dinámicas, avaliación por valor, paso de parámetros por valor, valor resultado ou resultado.
A definición desta linguaxe foi presentada na reunión do comité ALGOL da IFIP en 1965. Tras varios anos de revisión do deseño chegouse a unha versión definitiva en 1968. O principal autor é Adriaan Van Wijngarden.
Os obxectivos principais da ALGOL 68 son a comunicación de algoritmos, a eficiente execución dos mesmos en diferentes arquitecturas e o servizo como ferramenta para a ensinanza.
Unha característica interesante da ALGOL 68 é que a súa semántica foi definida formalmente antes de ser implementada en base ao formalismo chamado gramáticas de dous niveis.
Baixo nivel |
| ||||||
---|---|---|---|---|---|---|---|
Alto nivel |
| ||||||
|