**Algol** (acrónimo inglés de ***Algo**rithmic **L**anguage*, "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.

Exemplo de programa en Algol
----------------------------

**procedure** *Absmax*(*a*) *Dimensions*:(*n*, *m*) *Resultado*:(*y*) *Subíndices*:(*i*, *k*);
**value** *n*, *m*; **array** *a*; **integer** *n*, *m*, *i*, *k*; **real** *y*;
**comment** Da matriz a tómase o elemento co valor absoluto maior e colocase en *y*.
Os subíndices do elemento colócanse en *i* e *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*

Algol W
-------

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.

Algol 68
--------

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.

| * v
* c
* e
Linguaxes de programación |
| --- |
| Baixo nivel | 

|  |  |
| --- | --- |
| Primeira xeración | Código máquina |
| Segunda xeración | Assembly |

 |
| Alto nivel | 

|  |  |
| --- | --- |
| Terceira xeración | 
* A+
* ABC
* Algol
* B
* BASIC
* C
* C++
* C#
* COBOL
* CPL
* D
* E
* Fortran
* Go
* Java
* JavaScript
* Lisp
* Objective-C
* PL/1
* Pascal
* Smalltalk
* Visual Basic .NET

 |
| Cuarta xeración | 
* Clarion
* Clipper
* Clojure
* Common Lisp
* Erlang
* GNU Octave
* Haskell
* Lisp
* Lua
* Julia
* Perl
* PHP
* Prolog
* Python
* R
* Ruby
* Rust
* S
* Scilab
* Stata
* SQL

 |
| Quinta xeración | 
* Mercury
* OPS5
* Prolog

 |

 |
| 
* Ambiente de desenvolvemento
* Metaprogramación
* Programación a nivel funcional
* Programación estruturada
* Programación non estruturada
* Programación imperativa
* Programación modular
* Programación multidimensional
* Orientación a obxectos

 |

|  |  |
| --- | --- |
| Control de autoridades | 
* Wd: Q188436
* BNE: XX541596
* EBID: ID
* GEC: 0002571
* LCCN: sh85003475
* NKC: ph499504

 |