Diferencia entre revisiones de «ALGOL»

(Página creada con '{{Desarrollo}}{{Ficha Software |nombre=ALGOL |familia= |imagen=algol.jpg |tamaño= |descripción= Lenguaje de programación imperativo. |imagen2= |tamaño2= |descripción2= |cre...')
 
Línea 13: Línea 13:
 
|modelo de desarrollo=
 
|modelo de desarrollo=
 
|lanzamiento inicial= 1958
 
|lanzamiento inicial= 1958
|versiones= ALGOL 57, ALGOL 60 y ALGOL 68.
+
|versiones= ALGOL 58, ALGOL 60 y ALGOL 68.
 
|última versión estable=
 
|última versión estable=
 
|género=
 
|género=
Línea 32: Línea 32:
 
*ALGOL 60.  
 
*ALGOL 60.  
 
*ALGOL 68.
 
*ALGOL 68.
 +
 +
==Características==
  
 
ALGOL utiliza bloques de declaraciones entre parentesis y fue el primer lenguaje en emplear los términos BEGIN y END para delimitarlos.  
 
ALGOL utiliza bloques de declaraciones entre parentesis y fue el primer lenguaje en emplear los términos BEGIN y END para delimitarlos.  

Revisión del 11:43 22 mar 2011

ALGOL
Información sobre la plantilla
Algol.jpg
Lenguaje de programación imperativo.
Lanzamiento inicial1958
VersionesALGOL 58, ALGOL 60 y ALGOL 68.

ALGOL es un lenguaje de programación cuyo nombre es un acrónimo formado a partir de las siglas en inglés de ALGorithmic Oriented Language. Aunque no tuvo mucho éxito comercial es muy importante en la historia de la informática ya que tuvo una gran influencia en la mayoría de los lenguajes de programación posteriores como Pascal, C y ADA .

Historia

Fue desarrollado a finales de los años 1950 por un comité internacional para crear un lenguaje de programación internacional e independiente de la máquina y corregir algunos problemas presentados por Fortran. Fue muy popular en las universidades durante los años 60, pero no llegó a cuajar como lenguaje de utilización comercial como lo hicieron FortranCOBOL . Es de la familia de los lenguales imperativos iniciada a mediados de los 50, convirtiendose en un estándar de facto para presentar algoritmos hasta los 80. Existen tres ramas oficiales de la Familia ALGOL :

  • ALGOL 58: antes conocido como IAL.
  • ALGOL 60.
  • ALGOL 68.

Características

ALGOL utiliza bloques de declaraciones entre parentesis y fue el primer lenguaje en emplear los términos BEGIN y END para delimitarlos.

ALGOL 58 incorporó ciclos, hasta entonces los programas eran de estructura plana, secuencial, como los realizados en ensamblador. La publicación del informe preliminar de ALGOL 58 en “Communications of the ACM” despertó mucho interés en el lenguaje ALGOL. Tras varias reuniones, tanto en Europa como en EE.UU., se llegaría a ALGOL 60.

Se define en una reunión en París, posterior al Congreso de la I.F.I.P. (Int'l Federation of Information Processing), del 11 al 16 de enero de 1960. Para esta reunión se seleccionaron a siete representantes europeos y a otros siete americanos.

ALGOL 60 es un lenguaje implementable que se convirtió en un estándar para la descripción de algoritmos: utilizado principalmente sobre papel (mundo académico y de investigación). Se utilizó bastante en Europa. ALGOL 60 inició varias tradiciones, incluyendo el uso de la Notación BNF, propuesta por John Backus para especificar la sintaxis y el empleo adicional de BNF para organizar el manual de referencia del lenguaje.

ALGOL 60 introdujo la recursión: "Cualquier aparición de un identificador de procedimiento dentro del cuerpo del procedimiento, excepto una aparición en la parte izquierda de un enunciado de asignación, denota la activación del procedimiento". También introdujo la declaración explícita del tipo de las variables, las reglas de ámbito para variables locales, el paso de parámetros por referencia, la estructura de bloque y las matrices de tamaño dinámico. ALGOL 60 incluye estructuras de control condicionales del tipo if-then-else y ciclos for. Aunque proporciona constructores de flujo de control estructurados, mantiene (al igual que casi todos sus derivados) el enunciado goto, cuya naturaleza dañina para la comprensión y modificación de programas es clara.

ALGOL 60 también tenía algunas características que no siempre se han recogido en lenguajes posteriores, como las declaraciones own (similares a las variables static de C) o las expresiones switch (muy diferentes a las estructuras de control switch de C).

Ejemplos

  • Mostrar Hola Mundo!!!

BEGIN FILE F (KIND=REMOTE);

EBCDIC ARRAY A [0:11];

REPLACE A BY "HOLA MUNDO!!!";

WHILE TRUE DO

  BEGIN
  WRITE (F, *, A);
  END;

END.

  • Calcular el promedio de un arreglo

begin

 integer N;
 Read Int(N);

 begin
   real array Data[1:N];
   real sum, avg;
   integer i;
   sum:=0;

   for i:=1 step 1 until N do
     begin real val;
       Read Real(val);
       Data[i]:=if val<0 then -val else val
     end;

    for i:=1 step 1 until N do
      sum:=sum + Data[i];
    avg:=sum/N;
    Print Real(avg)
end

end

Enlaces externos

Lenguaje ALGOL

Revised Report on the Algorithmic Language Algol 60