Laboratorio de Lenguajes de Programación - Semana 8
Su nombre proviene del acrónimo ALGOrithmic Languaje (Lenguaje Algoritmico), se desarrollo en la década de los años 60 y se convirtió en el estándar para el diseño de algoritmos en libros por los siguientes 30 anos, sin embargo, a pesar de su uso nunca llego a sobresalir como lenguaje de uso comercial, su uso quedo aislado solamente a investigaciones cientificas.
Un comité de representantes de Europa y América diseñaron ALGOL en 1958, en una respuesta a la creciente necesidad de tener un solo lenguaje de programación que fuese universal e independiente de la arquitectura de las computadoras de la época.
Los tres objetivos que rigieron el desarrollo de Algol fueron:
1) Debía ser tan cercano como fuese posible a la notación matemática estándar y debía ser legible dando pocas explicaciones adicionales.
2) Debía ser posible usarlo para la descripción de procesos de cómputo en las publicaciones científicas.
3) Debía ser traducible, de manera mecánica, a programas en lenguaje máquina.
Para sorpresa de todos el diseño original de ALGOL tomó sólo 8 días (el lenguaje consistía de unos cuantos constructores de propósito general y no de una cantidad innumerable de funciones barrocas). Asi, Algol 60 (la primera revision de Algol 58) estaba lista para mayo de 1960.
Algol influyó a muchos lenguajes de la época, por lo que nos daremos cuenta que mucha de la sintaxis de otros lenguajes old school es parecida a la de Algol.
La version que analizaremos sera Algol66.
INSTALANDO EL COMPILADOR
Algol forma parte de la familia de lenguajes imperativos, y un código fuente escrito en Algol necesita ser compilado (aunque parecera mas que lo estaremos interpretando), asi que lo primero es instalar y configurar el compilador.
Lo primero que vamos a hacer es visitar esta pagina y descargar el compilador a una carpeta en nuestro equipo (la descarga debe iniciar automaticamente)
Algol 68 Compiler, Interpreter & Runtime
Nos vamos a dirigir a la carpeta donde descargamos el compilador y extraemos el contenido del archivo algol68g-2.0.0.tgz, lo que nos generará una carpeta llamada algol68g-2.0.0.
Ahora, vamos a abrir nuestra terminal y nos vamos encaminamos a la carpeta algol68g-2.0.0, dentro de la carpeta vamos a encontrar un archivo llamado configure
Para ejecutarlo tecleamos la secuencia ./configure.
Una vez que termine tecleamos la secuencia: make
Veremos una lista de archivos con extensión *.c que estan siendo compilados.
Y despues tecleamos la secuencia make install
Para el correcto funcionamiento del compilador necesitamos instalar la libreria libncurses5-dev con la secuencia:
sudo apt-get install libncurses5-dev
(en mi caso ya la tengo instalada puesto que la necesite en el compilador de Cobol, sin embargo ustedes prosigan con su instalacion, aceptando los mensajes de confirmacion)
Por ultimo una vez mas la secuencia make y despues make install
Con ello ya tenemos listo el compilador, la terminacion del codigo fuente en Algol es *.a68
VARIABLES Y DATOS
Al igual que en muchos lenguajes de programacion, Algol maneja tipos simples de datos y otros mas complejos, estan por ejempo:
INT: Enteros
REAL: Numeros punto flotante
DOUBLE: Punto flotante de precision doble
CHAR: Caractéres
BOOL: Lógicos o Booleanos
COMPLEX: Complejos
STRING: Cadenas de caractéres.
NODE: Nodos (para grafos, árboles, ect)
FILE: Manejo de archivos
En Algol a estos tipos de datos de les conoce como mode-indicants (indicadores de modo), en otros lenguajes de les llama type identifier (identificadores de tipo [de dato]).
Los indicadores de dato se pueden complementar con el indentificador de modo LONG
Las variables se declaran con la siguiente sintaxis:
[mode-identifier] [var name]
Por ejemplo:
INT numero
CHAR letra
STRING nombre
Para declarar una variable e inicializarla se sigue esta sintaxis:
[mode-identifier] [var name] := [value]
Por ejemplo:
REAL pi := 3.14159;
CHAR letra := "A";
STRING nombre := "Juan Carlos";
ENTRADA Y SALIDA DE DATOS
Para mostrar los datos en pantalla (salida), se utiliza la funcion print();, lo que se va a imprimir se escribe dentro de doble parentesis y encerrado en comillas dobles, por ejemplo:
print (("Hola, mundo"));
Si se quiere pasar un espacio se escribe new line dentro de los parentesis, por ejemplo:
print (("Hola, mundo", new line));
Para tomar datos desde el teclado se utiliza el proceso read;, se sigue la siguiente sintaxis:
[mode-identifier] [var name] = read [mode-identifier [low-case]];
Por ejemplo:
INT x = read int;
FUNCIONES MATEMATICAS
Algol incluye algunas funciones que nos pueden ser muy utiles al momento de escribir nuestro codigo; aqui se muestran algunas:
sqrt(x): Raiz Cuadrada
curt(x): Raiz Cúbica
exp(x): Potencias
ln(x): Logaritmo Natural
log(x): Logaritmo base 10
sin(x): Seno
arcsin(x): Seno Inverso
cos(x): Coseno
arccos(x): Coseno Inverso
tan(x): Tangente
ESTRUCTURA DEL CÓDIGO
Todo código en Algol tiene que estar delimitado por clausulas que marquen su inicio y su final de esta forma:
Con ello podemos definir el código mas corto que podemos escribir :)
Los comentarios se limitan mediante la etiqueta COMMENT:
SECUENCIAS DE CONTROL
Condicional
CICLOS
Desde un valor a otro final, incremento
Desde un valor a otro final, dos en dos
Desde un valor a otro final, decremento
CICLO WHILE
EJEMPLO
Ahora que ya vimos la teoria, vamos a la práctica; escribamos un pequeño código en Algol que nos calcule potencias.
Abrimos una terminal y tecleamos emacs -nw potencia.a68
Despues escribimos este código:
Para compilarlo necesitamos regresar a la carpeta donde esta el compilador algol68g-2.0.0, esto lo hacemos desde la terminal claro esta.
Ya que estamos en la carpeta algol68g-2.0.0 tecleamos esta sintaxis para ejecutarlo:
./a68g /ubicacion_codigo_fuente/, en mi caso:
./a68g /home/juancarlos/temp/potencia.a68
Espero que les haya servido esta información, en la barra de recursos les deje un tutorial para Algol bastante bueno: Tutorial ALGOL.
SALUDOS!! ^_^
Su nombre proviene del acrónimo ALGOrithmic Languaje (Lenguaje Algoritmico), se desarrollo en la década de los años 60 y se convirtió en el estándar para el diseño de algoritmos en libros por los siguientes 30 anos, sin embargo, a pesar de su uso nunca llego a sobresalir como lenguaje de uso comercial, su uso quedo aislado solamente a investigaciones cientificas.
Un comité de representantes de Europa y América diseñaron ALGOL en 1958, en una respuesta a la creciente necesidad de tener un solo lenguaje de programación que fuese universal e independiente de la arquitectura de las computadoras de la época.
Los tres objetivos que rigieron el desarrollo de Algol fueron:
1) Debía ser tan cercano como fuese posible a la notación matemática estándar y debía ser legible dando pocas explicaciones adicionales.
2) Debía ser posible usarlo para la descripción de procesos de cómputo en las publicaciones científicas.
3) Debía ser traducible, de manera mecánica, a programas en lenguaje máquina.
Para sorpresa de todos el diseño original de ALGOL tomó sólo 8 días (el lenguaje consistía de unos cuantos constructores de propósito general y no de una cantidad innumerable de funciones barrocas). Asi, Algol 60 (la primera revision de Algol 58) estaba lista para mayo de 1960.
Algol influyó a muchos lenguajes de la época, por lo que nos daremos cuenta que mucha de la sintaxis de otros lenguajes old school es parecida a la de Algol.
La version que analizaremos sera Algol66.
INSTALANDO EL COMPILADOR
Algol forma parte de la familia de lenguajes imperativos, y un código fuente escrito en Algol necesita ser compilado (aunque parecera mas que lo estaremos interpretando), asi que lo primero es instalar y configurar el compilador.
Lo primero que vamos a hacer es visitar esta pagina y descargar el compilador a una carpeta en nuestro equipo (la descarga debe iniciar automaticamente)
Algol 68 Compiler, Interpreter & Runtime
Nos vamos a dirigir a la carpeta donde descargamos el compilador y extraemos el contenido del archivo algol68g-2.0.0.tgz, lo que nos generará una carpeta llamada algol68g-2.0.0.
Ahora, vamos a abrir nuestra terminal y nos vamos encaminamos a la carpeta algol68g-2.0.0, dentro de la carpeta vamos a encontrar un archivo llamado configure
Para ejecutarlo tecleamos la secuencia ./configure.
Una vez que termine tecleamos la secuencia: make
Veremos una lista de archivos con extensión *.c que estan siendo compilados.
Y despues tecleamos la secuencia make install
Para el correcto funcionamiento del compilador necesitamos instalar la libreria libncurses5-dev con la secuencia:
sudo apt-get install libncurses5-dev
(en mi caso ya la tengo instalada puesto que la necesite en el compilador de Cobol, sin embargo ustedes prosigan con su instalacion, aceptando los mensajes de confirmacion)
Por ultimo una vez mas la secuencia make y despues make install
Con ello ya tenemos listo el compilador, la terminacion del codigo fuente en Algol es *.a68
VARIABLES Y DATOS
Al igual que en muchos lenguajes de programacion, Algol maneja tipos simples de datos y otros mas complejos, estan por ejempo:
INT: Enteros
REAL: Numeros punto flotante
DOUBLE: Punto flotante de precision doble
CHAR: Caractéres
BOOL: Lógicos o Booleanos
COMPLEX: Complejos
STRING: Cadenas de caractéres.
NODE: Nodos (para grafos, árboles, ect)
FILE: Manejo de archivos
En Algol a estos tipos de datos de les conoce como mode-indicants (indicadores de modo), en otros lenguajes de les llama type identifier (identificadores de tipo [de dato]).
Los indicadores de dato se pueden complementar con el indentificador de modo LONG
Las variables se declaran con la siguiente sintaxis:
[mode-identifier] [var name]
Por ejemplo:
INT numero
CHAR letra
STRING nombre
Para declarar una variable e inicializarla se sigue esta sintaxis:
[mode-identifier] [var name] := [value]
Por ejemplo:
REAL pi := 3.14159;
CHAR letra := "A";
STRING nombre := "Juan Carlos";
ENTRADA Y SALIDA DE DATOS
Para mostrar los datos en pantalla (salida), se utiliza la funcion print();, lo que se va a imprimir se escribe dentro de doble parentesis y encerrado en comillas dobles, por ejemplo:
print (("Hola, mundo"));
Si se quiere pasar un espacio se escribe new line dentro de los parentesis, por ejemplo:
print (("Hola, mundo", new line));
Para tomar datos desde el teclado se utiliza el proceso read;, se sigue la siguiente sintaxis:
[mode-identifier] [var name] = read [mode-identifier [low-case]];
Por ejemplo:
INT x = read int;
FUNCIONES MATEMATICAS
Algol incluye algunas funciones que nos pueden ser muy utiles al momento de escribir nuestro codigo; aqui se muestran algunas:
sqrt(x): Raiz Cuadrada
curt(x): Raiz Cúbica
exp(x): Potencias
ln(x): Logaritmo Natural
log(x): Logaritmo base 10
sin(x): Seno
arcsin(x): Seno Inverso
cos(x): Coseno
arccos(x): Coseno Inverso
tan(x): Tangente
ESTRUCTURA DEL CÓDIGO
Todo código en Algol tiene que estar delimitado por clausulas que marquen su inicio y su final de esta forma:
BEGIN ... PROCEDURES ... END
Con ello podemos definir el código mas corto que podemos escribir :)
BEGIN print(("HOLA MUNDO", new line)); END
Los comentarios se limitan mediante la etiqueta COMMENT:
BEGIN COMMENT Este es mi primer programa en Algol COMMENT print(("HOLA MUNDO", new line)) END
SECUENCIAS DE CONTROL
Condicional
BEGIN IF INT x = read int; x < 0 THEN print ((x, " es negativo")) ELSE print ((x, " no es negativo")) FI END
CICLOS
BEGIN INT j := 10; FOR i TO j DO print (("HOLA", new line)) OD END
Desde un valor a otro final, incremento
BEGIN FOR i FROM -10 TO 10 DO print ((i, new line)) OD END
Desde un valor a otro final, dos en dos
BEGIN FOR i FROM 0 BY 2 TO 10 DO print ((i, new line)) OD END
Desde un valor a otro final, decremento
BEGIN FOR i FROM 10 DOWNTO 1 DO print ((i, new line)) OD END
CICLO WHILE
BEGIN INT x; WHILE read(X); int > 0 DO print (("Mas abajo...")) OD END
EJEMPLO
Ahora que ya vimos la teoria, vamos a la práctica; escribamos un pequeño código en Algol que nos calcule potencias.
Abrimos una terminal y tecleamos emacs -nw potencia.a68
Despues escribimos este código:
BEGIN INT base; INT exp; LONG INT pot := 1; print(("BASE: ")); read(base); print(("EXPONENTE: ")); read(exp); FOR i TO exp DO pot := pot * base OD; print((base," elevado a la potencia",exp," es",pot)) END
Para compilarlo necesitamos regresar a la carpeta donde esta el compilador algol68g-2.0.0, esto lo hacemos desde la terminal claro esta.
Ya que estamos en la carpeta algol68g-2.0.0 tecleamos esta sintaxis para ejecutarlo:
./a68g /ubicacion_codigo_fuente/, en mi caso:
./a68g /home/juancarlos/temp/potencia.a68
Espero que les haya servido esta información, en la barra de recursos les deje un tutorial para Algol bastante bueno: Tutorial ALGOL.
SALUDOS!! ^_^
Cinco puntos para el lab.
ResponderEliminar