ALGOL
Desarrollador(es)
Backus, Bauer, Bottenbruch, Green, Katz, McCarthy, Naur, Alan Perlis, Rutishauser, Samelson, Vauquois, Wegstein, van Wijngaarden y Woodger
Información general
Paradigma Imperativo (Procedural), Estructurado
Apareció en 1958
Diseñado por Friedrich L. Bauer, Hermann Bottenbruch, Heinz Rutishauser, Klaus Samelson, John Backus, Charles Katz, Alan Perlis, Joseph Henry Wegstein, Peter Naur, Bernard Vauquois, Adriaan van Wijngaarden, Julien Green y John McCarthy
Sistema de tipos s
Dialectos ALGOL 58, ALGOL 60, ALGOL 68
Influido por Fortran
Ha influido a Simula, C, CPL, Pascal, Ada, BASIC

ALGOL ( /ˈælgɒl,_-gɔːl/; abreviatura de Algorithmic Language, "lenguaje algorítmico") es una familia de lenguajes de programación imperativos desarrollados originalmente en 1958. ALGOL influyó profundamente en muchos otros lenguajes posteriores que sí alcanzaron gran difusión, como Pascal, C y Ada; también fue el método estándar para la descripción de algoritmos utilizado por la Association for Computing Machinery (ACM) en libros de texto y fuentes académicas durante más de treinta años.[1]

Hacia 1965 dos corrientes se distinguieron sobre el tema de un sucesor para Algol. Como resultado se definieron los lenguajes Algol W que es un lenguaje minimalista, rápidamente implementado y distribuido y, por otra parte, Algol 68 que para la época estaba en la frontera entre un lenguaje para programar en él y un lenguaje para investigar sobre él.

Ejemplo de programa en ALGOL 60

editar
procedure Absmax(a) Dimensiones:(n, m) Resultado:(y) Subíndices:(i, k);
value n, m; array a; integer n, m, i, k; real y;
comment De la matriz a se toma el elemento con el valor absoluto mayor y se coloca en y.
Los subíndices del elemento se colocan en i y 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

editar

Lenguaje elaborado diseñado por Niklaus Wirth y Tony Hoare a partir de los trabajos del grupo ALGOL de la IFIP. Se trata de un lenguaje conciso, simple de implementar, que evita todos los defectos conocidos del lenguaje Algol e incluye sus propias características adicionales. Sin embargo, el grupo Algol no lo adoptó como sucesor de Algol prefiriendo en su lugar al que terminó siendo Algol 68. Algol W fue utilizado por gran cantidad de usuarios y sembró el camino para el nacimiento del lenguaje Pascal.

Entre las características del lenguaje se destacan: Aritmética de doble precisión, números complejos, Strings y estructuras de datos dinámicas, evaluación por valor, pasaje de parámetros por valor, valor resultado o resultado.

Algol 68

editar

La definición del lenguaje fue presentada en la reunión del comité ALGOL de la IFIP en 1965. Después de varios años de revisión del diseño se llegó a una versión definitiva en 1968. El principal autor es Adriaan van Wijngaarden.

Los objetivos principales de ALGOL 68 son permitir comunicar algoritmos, permitir una eficiente ejecución de los mismos en diferentes arquitecturas y servir como herramienta para la enseñanza.

Una característica interesante de ALGOL 68 es que su semántica fue definida formalmente antes de ser implementado en base al formalismo llamado gramáticas de dos niveles.

Ejemplo de programa en Algol 68

editar
proc absmax=(ref[]real a)real:
begin   
  int i, k; real y:=0;
  comment De la matriz a se toma el elemento con el valor absoluto mayor y se coloca en y. x
          Los subíndices del elemento se colocan en i y k;peme comment
  i:= k:= 1⌊a;     
  for p from  1⌊a by 1 to 1⌈a  do
    for q from 2⌊a by 1 to 2⌈a do
      if abs a[p, q] > y then           
         y:= abs a[p, q];
         i:= p; k:= q
      fi
    od
  od;
  y
end
Algol68 Versión de manual
int sum sq:=0;
for i
while
  sum sq≤1000
do
  sum sq+:=i↑2
od 
Código para el compilador de 7-bit/ascii
INT sum sq:=0;
FOR i
WHILE
  sum sq<=1000
DO
  sum sq+:=i**2
OD 
Código para el compilador de 6-bits/byte
.INT SUM SQ:=0;
.FOR I
.WHILE
  SUM SQ.LE 1000
.DO
  SUM SQ.PLUSAB I.UP 2
.OD









Véase también

editar

Enlaces externos y bibliografía

editar
  • A contribution to the development of ALGOL, Niklaus Wirth and C. A. R. Hoare, Comm ACM 9(6), 413-432 (1966), ISSN 0001-0782
  • The Emperor's Old Clothes - the ACM Turing Award lecture by Tony Hoare, 1980, Comm ACM 24(2), 75-83 (1981)
  • ALGOL W Implementation, H. Bauer et al, TR CS98, Stanford U, 1968

Referencias

editar
  1. Collected Algorithms of the ACM Archivado el 21 de octubre de 2011 en Wayback Machine. Compressed archives of the algorithms. ACM.

📚 Artikel Terkait di Wikipedia

Intérprete BASIC

Language Interpreter for the Intel 8008 Microprocessor. Department of Computer Science, University of Illinois at Urbana-Champaign (publicado el 1974). June

Complemento (complejidad)

Texts in Computer Science, Springer, ISBN 9781461406815 .. Singh, Arindama (2009), Elements of Computation Theory, Texts in Computer Science, Springer

Número de Erdős-Woods

has a common prime divisor with at least an extremity», Theoretical Computer Science 303 (1): 53-62, doi:10.1016/S0304-3975(02)00444-9 .. "Sloane's A059757

Forma normal de Hermite

Module Theory (en inglés). Springer Science & Business Media. p. 306. ISBN 9781461209232.  «Dense matrices over the integer ring — Sage Reference Manual v7

Hendrik Lenstra

Theory. pp. 673–716, In Jan van Leeuwen (ed.): Handbook of Theoretical Computer Science, Vol. A: Algorithms and Complexity. Elsevier and MIT Press 1990, ISBN 0-444-88071-2

Premio Fulkerson

estimate of the discrepancy of integer sequences is nearly sharp," Combinatorica 1 (4): 319-325, 1981. H. W. Lenstra, Jr., "Integer programming with a fixed

Seguridad de tipos

Spring 2012 --self-paced version». Cornell University, Department of Computer Science. 2005. Archivado desde el original el 18 de enero de 2021. Consultado

Ladrillo de Euler

van Luijk, On Perfect Cuboids, June 2000 Rathbun R. L., Granlund Т., The integer cuboid table with body, edge, and face type of solutions // Math. Comp