Volver menú revistas Volver página anterior

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.

N° 36 - Octubre 1992
Amiga World

PROGRAMACION CON AMIGA


Por Rubén Colón

NOTA: Las fotos con recuadro en azul pueden ser ampliadas para ver detalles. Situando el ratón encima de la foto durante unos instantes, podrás ver una pequeña descripción y lo que ocupa la ampliación.

En contra de lo que comúnmente se cree, el Amiga tiene gran cantidad de lenguajes y utilidades para programación. Quizá el desconocimiento de estos, ha llevado a la situación de que en nuestro país no exista prácticamente software en desarrollo.

GadTools Box - 37 KbGadTools Box. Las herramientas son piezas fundamentales de programación.
DevPack 3.0 - 43 KbDevPack 3.0. El editor compilador de código máquina, preferido por los programadores.
Power Windows - 42 KbPower Windows. Las ventanas como elemento principal en todo interface de usuario moderno.

El propósito de este artículo, es mostrar la oferta actual de compiladores, intérpretes y utilidades de programaicón tanto para programadores como para personas que desean iniciarse en el tema. Para hacer este artículo accesible a todos, vamos a ver algunos términos comúnmente usados. Veréis que a veces he sacrificado la exactitud en favor de la sencillez.


LENGUAJES, COMPILADORES E INTERPRETES

Un lenguaje nos permite codificar una serie de instrucciones que al ser ejecutadas por el ordenador, realizan una tarea concreta. Este conjunto de instrucciones recibe el nombre de programa. normalmente, estas órdenes se escriben en un fichero que las contiene una detrás de otra, (es decir, en una secuencia), este fichero suele escribirse con un editor de textos ASCII. Este fichero que contiene nuestro programa se suele llamar código fuente o "source code" en inglés, del programa.

Si la tarea que ejecutan las órdenes de un lenguaje está próxima a las instrucciones básicas que realiza el microprocesador, el lenguaje es denominado de bajo nivel, un ejemplo es el lenguaje ensamblador. Los lenguajes de alto nivel se hallan más alejados del lenguaje que el ordenador utiliza internamente, de modo que cada instrucción se traduce en varias instrucciones del microprocesador.

Un intérprete, recoge el código fuente y va leyendo cada orden, busca las que son equivalentes en el lenguaje que le es comprensible por el ordenador, (lenguaje máquina), y las ejecute. Luego prosigue con la siguiente orden repitiendo el proceso.

Un compilador lee todo el código fuente y realiza una traducción de todas las órdenes que el programa contiene; generando lo que se conoce como un fichero ejecutable. Este fichero tiene dos ventajas: la primera es que es muy difícil de modificar externamente por lo que es ideal para disfribuirlo a terceros o para su venta, además se ejecuta por si solo sin necesidad de incluir el intérprete, la segunda es que el código compilado es mucho más rápido que la versión interpretada.

Solo reseñar que usualmente, cada familia de microprocesadores tiene su propio lenguaje máquina. Por esto se explica que los programas de un PC no funcionen en un Amiga, (si está en modo nativo, no emulado a otro ordenador).

Finalmente, entenderemos como función a una parte del programa que ejecuta una tarea determinada que se repite varias veces a lo largo del programa.


C y C++

Todo programador de Amiga debería tener nociones del lenguaje C pues el sistema operativo del Amiga está realizado en este lenguaje, por otro lado, la mayoría de libros técnicos de Amiga tienen ejemplo en este lenguaje.

El C es un lenguaje compilado y su mayor ventaja es su portabilidad, es decir, la posibilidad de que el código fuente de un programa pueda funcionar tanto en un PC como en un Amiga o en otros ordenadores. Para hacer esto, deberemos traspasar el código fuente de un tipo de ordenador a otro y recompilar para que se genere un ejecutable en el lenguaje máquina de esa familia de ordenadores.

La cosa no es tan sencilla, pues cada ordenador tiene sus peculiaridades. Esto se entenderá mejor con un ejemplo: tenemos un programa que abre una ventana estándar de Amiga y muestra un texto, el compilador C del ordenador PC compatible no tiene órdenes para gestionar ventanas de las características de las de Amiga por lo que el programa o bien no compilará correctamente o no funcionará bien, (ya se que el PC tiene ventanas, pero tendrás que hacer acto de fe y creerme cuando digo que las ventanas de PC y Amiga se programan de manera muy distinta). Para solventar este inconveniente, se ha creado el C ANSI que no es nada más que una serie de funciones que realizan tareas variadas, que son comunes y funcionan de igual modo en compiladores C de ordenadores distintos.

La moraleja es que es preferible usar las funciones ANSI a otras que realicen el mismo cometido pero sean específicas de un tipo de ordenador dejando aisladas las partes del programa que son específicas para una máquina y que son las únicas que deberíamos cambiar al pasar el programa de un tipo de ordenador a otro, (que será tema de otro artículo).

El C++ no es nada más que una ampliación de las características propias del C para evitar la tarea de realizar muchos cambios en el código fuente cada vez que debe añadirse una característica nueva al programa. Esta filosofía, recibe el nombre de programación orientada al objeto. Para que os hagáis a la idea, un objeto es una estructura del programa que tiene tanto órdenes para realizar como datos.

Para Amiga existen dos compiladores C comerciales, estos son el Aztec C y el SAS/Lattice C que se halla en su versión 6.0. Este último es el que aconsejo pues Commodore desarrolla gran parte de sus programas con este compilador.

Para iniciarte puedes usar compiladores C shareware o de dominio público entre los que se halla el DICE C. los puedes encontrar en librerías de dominio público como es la de Fred Fish.

Respecto al C++ existe el Comeau C++ que genera código para compilar con el Lattice C, un C++ de Lattice y está en desarrollo una nueva versión Lattice C++ que quizá tendremos para el año que viene y también el C++ de Acmesoft.


BASIC

Es uno de los lenguajes más extendidos y sencillos de aprender aunque pueden realizarse programas muy profesionales. Todos conocemos el Amiga Basic, este intérprete se proporcionaba con las versiones 1.x del sistema operativo de Amiga. Con la llegada del sistema 2.x, CBM ha preferido apostar por el ARexx que aunque no se considere un BASIC, sigue la filosofía de simplicidad sin sacrificar por ello la potencia y a pesar de que es un lenguaje interpretado, pueden encontrarse compiladores como el REXX Plus Compiler (Dineen Edwards Group). Hay rumores de una nueva versión del AmigaBasic pero por ahora nada concreto.

Respecto a los compiladores de Basic, tenemos el AMOS, GFA-BASIC, AC Basic, F-Basic y el Hisoft Basic, (o Power Basic).

El GFA-BASIC dispone tanto de compilador como de intérprete cosa que supone una ventaja cuando se está programando.

El Hisoft Basic posee una librería externa, (EXTEND), que le proporciona funciones nuevas como puede ser la habilidad de cargar con una sola orden un ficheros gráfico y mostrarlo en pantalla.

La última versión del F-Basic es muy interesante pues tiene funciones y datos parecidos a los que pueden manejarse en C pero reteniendo la simplicidad que es característica del Basic.

El AMOS Basic merecería un apartado propio, este lenguaje vio la luz como un lenguaje interpretado para facilitar la programación de juegos, posteriormente sus posibilidades se han ampliado mucho con la aparición de un compilador. Este es un lenguaje que aconsejo en tareas en las que los gráficos, animación y sonido sean parte fundamental mientras que para aplicaciones puramente de gestión aconsejaría otros. Para iniciarse existe una versión llamada Easy AMOS que ofrece al principriante un entorno agradable para aprender este Basic.


PASCAL Y MODULA-2

Prácticamente no existe competencia pues el Hisoft PASCAL aventaja en prestaciones a la mayoría. Es un lenguaje compilado y en sus orígenes se diseño para enseñar programaicón en escuelas y universidades, hoy en día es asignatura obligada en la mayoría de carreras en las que se estudia algo de informática. El MODULA-2 es una variante del PASCAL.


ENSAMBLADOR

Es el más cercano al lenguaje máquina pues cada instrucción de código representa una o un número reducido de instrucciones comprensibles para el microprocesador. Por todo ello, es el lenguaje en el que los programas van a mayor velocidad y que permite explotar al máximo las capacidades del ordenador.

Todo
programador
de Amiga
debería tener
nociones de
lenguaje C.

Las desventajas son que para realizar una tarea cualquiera, el número de comandos usado crece, por esto un programa simple puede requerir varias hojas de código y estos listados de código fuente nos dan muy poca información de lo que hace el programa. El código es el menos portable entre ordenadores con distinto microprocesador, por ejemplo el Amiga lleva un Motorola 680x0 y el PC lleva Intel 80x86.

Aconsejo este lenguaje a personas con mucho tiempo o que hacen programas en los que el tiempo en el que se realiza una tarea concreta es un factor vital para su correcto funcionamiento.

Comercialmente existen varios paquetes como el Hisoft Devpac, ArgASM, MaxomASM y los que suelen tener la mayoría de paquetes de lenguaje C.


OTROS

Muchos son los lenguajes que existen en el Amiga, cabe citar el Draco, Logo, y otros que en realidad no se pueden encasillar al poseer características de varios lenguajes mayoritarios a la vez. No voy a tratarlos aquí, pues prefiero centrarme en los más útiles y los más difundidos. Solo merece mencionarse el lenguaje incluido dentro de la base de datos Superbase Profesional, se llama DML y pese a ser muy parecido al Basic en algunos aspectos, añade la potencia de poder manejar ficheros con datos de una manera rápida y racional.


UTILIDADES I:
GENERADORES DE PANTALLAS Y EDITORES

Si programas y te aburres, nunca vas a conseguir nada productivo. Las utilidades van destinadas a evitar las tareas tediosas y a minimizar lo que se conoce como "reinventar la rueda", es decir, volver a programar funciones que se pueden obtener por otros medios.


El lenguaje PASCAL, si bien no está muy extendido entre los usuarios de Amiga, es una alternativa muy potente frente al AmigaBasic.

Revisemos las utilidades que nos permiten diseñar pantallas con sus textos y sus campos para mostrar e introducir datos. Comercialmente tenemos el Power Windows que tiene una característica interesante, esta es la capacidad de imitar ventanas de otros programas que estén en multitarea. En el lado del dominio público tenemos el Power Source que puede simular el "look" del sistema 2.x en 1.3 y el GadToolsBox que funciona exclusivamente en 2.x que permite mostrar todos los nuevos "gadgets" del sistema op. 2.x.

Respecto al editor, es un soft en el que escribimos nuestro programa. La mayoría de programas lo llevan integrado o bien es un programa externo, (como el lse en el Lattice C), no obstante es usual usar otros que ofrecen características que nos hacen sentir cómodos. Entre ellos cabe destacar el Cygnus Editor y el Turbo Text, son programables en ARexx y en el caso del Turbo Text, sus menús son plenamente configurables.


UTILIDADES II:
LIBRERIAS

Las librerías son colecciones de funciones que realizan tareas determinadas. Por ejemplo, podrían contener una función que abriese una ventana en la que apareciese una pregunta solicitando una respuesta.

Curriculum: Rubén Colón
Programador en el mundo PC desde hace ocho años, y developer de Commodore desde hace tres, donde se especializó en la línea de ordenadores Amiga; actualmente es director en Barcelona de la empresa MAD Computer. Tanto en Amiga como PC, supervisa las aplicaciones de tratamiento de imágenes, animación 2D/3D, video profesional y multimedia.

Las hay muy variadas y realizar una lista es algo bastante complicado, basta decir que existen librerías para facilitar las comunicaciones por modem, para abrir ventanas de diálogo, para comprimir/descomprimir datos, para controlar los joysticks, etc.

En el terreno comercial tenemos la librería Innovatools y la Extend que tienen funciones muy variadas.

En el terreno de dominio público tenemos tal cantidad de librerías, que supera el espacio que pudiéramos reservar. Me remito una vez más a la colección Fred Fish pues en el dominio público hay gran cantidad de programas y utilidades de calidad. Si estas muy interesado y eres uno de los afortundados que tienen un lector de CD-ROM, puedes optar por el CD-ROM Fish Collection en el que se encuentra TODA la colección.


Volver menú revistas Volver página anterior