|
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.
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.
|