|
|
|||||||||
| El Amiga Me Encanta ha conseguido el permiso por escrito de IDG Comunications España para ofrecer los artículos de la revista Amiga World España. |
|
![]() |
CURSO DE AREXX |
|||
|
Comienza aquí el primer capítulo de una nueva serie dedicada al lenguaje ARexx... (¡Oh no! ¡Otro curso de programación por capítulos!, mejor pasemos unas cuantas páginas hacia delante)... ¡Espere, espere! Esta vez va a ser diferente... (¡Y por si fuera poco dice lo que dicen todos al principio!). ¡No! ¡En serio! Siga leyendo, y verá como el ARexx puede revolucionar la forma en que trabajamos con nuestro Amiga, multiplicando espectacularmente su capacidad. (Bueeeeno, seguiré un ratito, a ver qué tal...). Ahora en serio, mucha gente habla del ARexx y hoy en día se ha convertido en un argumento publicitario tan extendido, que parece que no pudiera venderse un producto serio de Amiga, si en la caja no se lee claramente "Incorpora soporte de ARexx2. Por otra parte la documentación sobre él que facilita Commodore es bastante limitada y orientado al técnico. Por ello entre la gente no iniciada, siempre queda flotando la idea de que el ARexx es una de esas características superavanzadas de los programas, que hacen que el software cueste cantidades de seis cifras, y que sólo aprovechan programadores en bata blanca y profesionales con suelto de otras 8 cifras. Nada más lejos de la realidad. El ARexx está incluido en todas las máquinas vendidas desde que comenzó a distribuir la versión 2.0 del Workbench, de forma que cualquiera puede (¡debe!) sacar partido de él. Los requerimientos en cuanto a hardware son mínimos, y se adapta con facilidad a configuraciónes con poca memoria RAM. En estas series voy a intentar atraer su atención sobre la potencia, elegancia y sencillez de manejo de este lenguaje, con la promesa de que al finalizarla, nunca volverán a ver su Amiga de la misma manera.
|
|
Insisto en que en el disco original todo debería estar correctamente situado, así que para los que no se sientan seguros en el manejo del Workbench y el CLI, mi recomendación es que hagan una copia de su disco original y que después consigan algo de espacio libre borrando ficheros que no utilicen, por ejemplo del directorio de Utilidades. Para los usuarios de disco duro, la situación es más sencilla.
Con esto estamos ya realmente preparados para comenzar, bastará con arrancar el ordenador desde nuestro nuevo disco.
Los programas en ARexx son ficheros de texto normales, que contienen la lista de instrucciones y funciones que deseamos que se ejecuten, de forma muy parecida al Basic. Por otro lado, y al igual que el AmigaBasic, el ARexx es un lenguaje interpretado, lo que hace que los programas no sean muy rápidos (no vas a programar un juego de matar marcianos en ARexx, ¿no?... ¿o si?), pero si extremadamente sencillos de realizar y de depurar. Otra característica común, es que los programas no necesitan números de línea, sino que usan etiquetas para la definición de saltos y de funciones. A los programadores experimentados, que no suelen ver con buenos ojos los lenguajes interpretados, debo advertirles que acelera considerablemente los programas, y que amplía sus horizontes de aplicación, permitiéndonos afrontar proyectos más ambiciosos desde ARexx.
Ahora paso a comentar uno de los aspectos del lenguaje que le confiere su peculiar personalidad. El Arexx consta de una serie de funciones y comandos propios que residen en la librería rexxsyslib, pero fácilmente puede incorporar los de cualquier otra librería del sistema (lo que le hace fácilmente expandible). Cuando el interprete de Arexx encuentra un comando o función que no es suyo, ni pertenece a ninguna librería accesible, simplemente se lo pasa al puerto de comunicación con la aplicación que hayamos designado y espera a ver si lo acepta, recogiendo los datos que devuelva, mientras que si no lo acepta emite un mensaje de error. Así vemos que dentro de un programa ARexx puden convivir, sin necesidad de hacer declaración explícita alguna, comandos propios, funciones de librerías y comandos de las aplicaciones comerciales que deseamos controlar, decidiendo el ordenador por el contexto qué debe hacer en cada caso. Los comandos que acepta cada aplicación se llaman de manera diferente y es necesario consultarlos en la documentación y manuales de cada utilidad. Por ello de momento mi intención es hablar de la estructura del lenguaje Arexx en si mismo.
Y bien, llegó el momento de hacer algo práctico. No estaría bien acabar el primer capítulo del curso sin incluir algún pequeño ejemplo que nos permita estrenar nuestro flamante ARexx. para ello solo necesitamos tener correctamente instalado el ARexx en nuestro disco de arranque tal y como expliqué anteriormente, y un editor de textos en el que vamos a escribir la lista de instrucciones del programa. Para evitar problemas, voy a referirme al editor ED del Workbench 2.0 ya que aunque es muy limitado y primitivo, por lo menos tengo la certeza de que está a la disposición de todos. De todas formas, mi recomendación es que si pueden disponer de otro editor, lo usen para su comodidad, ya que el programa que se use para escribir los programas no tiene importancia con tal de que los grabe en el disco como ficheros ASCII estandar.
Así que abrimos una ventana de Shell y tecleamos:
Esto abrirá el editor y lo dejará preparado para escribir nuestro primer porgrama. El único problema que puede surgir es que no exista o no esté correctamente asignado el directorio rexx, como ya mencioné anteriormente. Después de esto, ya podéis comenzar a teclear el texto siguiente. Se trata de un programa de prueba, así que no es preocupéis si de momento no entendéis su estructura, ya que todo lo iremos viendo con detalle próximamente.
La verdad es que me resistía a poner como primer ejemplo el típico programa que ilustra las primeras páginas de todos los libros de programación a este lado del universo, ya sabéis, el que escribe en la pantalla "Hola mundo". Esta vez en cambio, pretendo (ya me diréis si lo consigo) que cada ejemplo ilustre un aspecto práctico, aunque sea simple. Acepto que esta primera muestra no es realmente una maravilla de la computación moderna, pero por lo menos realiza la meritoria tarea de calcular el cubo de un número, en vez de saludar en la pantalla... algo es algo. Es MUY importante introducirlo íntegramente, incluyendo las líneas de comentario del comienzo:
/* Nuestro primer ejemplo en ARexx*/
/* Sirve para calcular el cubo de cualquier numero */
continuar ="S"
Do while continuar ~= "N"
say "Introduzca numero:"
pull numero
resultado=cubo(numero)
say "El cubo de" numero "es" resultado "."
say "¿Desea continuar? (s/n)"
say " "
pull continuar
end
exit
/* Definicion de la funcion cubo */
cubo:
arg n /* Recoge argumento numero */
return n**3
Antes de terminar, procure asegurarse de que no hay errores de transcripción, sobre todo en los signos de puntuación y especialmente con el carácter "~" que aparece delante del signo "=" en una de las líneas. Este símbolo reside en la tecla situada a la izquierda del uno, en nuestro Amiga, y aparece al pulsarla junto a la tecla mayúsculas. Si ya está seguro de que todo está correcto, bastará con ir a la barra de menú con el ratón y seleccionar la opción Save, para tener nuestro primer programa llamado cubo.rexx bien guardado en el disco, en el directorio rexx:
El siguiente paso será ponerlo en marcha, cosa que haremos tecleando, en la misma ventana de Shell, la orden:
rx cubo.rexx
Si todo ha ido bien, deberíamos ver un mensaje en el que se nos solicita un número. Tras introducirlo y teclear la tecla return, nos devolverá un mensaje con el cubo de ese número, y nos hará la pregunta de si queremos continuar introduciendo números. En este momento si se teclea "n", el programa saldrá al Shell. En caso de que aparezca mensajes de error, podrá revisar la estructura del programa, a la caza de errores, volviendo a teclear la orden: "ED rexx:cubo.rexx".
En fin, llegó la hora de acabar por hoy. Confío en que ahora lleguen a este párrafo sin aburrirse y sin haber cumplido la amenaza al lector imaginario del comienzo. En el próximo número, si me lo permiten, pretendo usar este mismo ejemplo para analizarlo línea a línea y dar a conocer algunos aspectos generales adicionales del lenguaje, antes de acometer la futura empresa de analizar la lista de comandos y funciones del polifacético ARexx. Un saludo y hasta el próximo capítulo.
| Envía esta página web a un amigo: Esta opción está desactivada temporalmente, rogamos disculpen las molestias |
|