Asistentes para la programación en SuperBASIC

Una de las características más entrañables del QL es la facilidad con la que puedes programar en Basic. Sin embargo, para el programador sólo existen comandos muy elementales como EDIT (editor de líneas), LIST, …

Con la llegada del Toolkit 2, se incluyó el comando ED que supuso un gran avance en aquellos momentos. ED es un editor, a pantalla completa, de programas SuperBASIC muy compacto y útil. Este editor incorpora las típicas funciones de scroll y podemos pasarle como argumento opcional la línea del programa a partir de la cual queremos editar nuestro programa.

No obstante, a lo largo de los años, distintos programadores han desarrollado algunas utilidades en forma de extensiones o de programas auxiliares que facilitan la vida del programador.

En el volumen 14 de QL Today, Dilwyn Jones publicó un artículo en dos entregas tratando este tema. En el artículo se hace un recorrido por las distintas herramientas disponibles para facilitar la tarea del programador SuperBASIC. De las herramientas comentadas en el artículo me han llamando la atención tres de ellas por su utilidad y simpleza, estas son: DEFS, REPLACE y PROCMAN.

DEFS
Esta utilidad se encentra como extensión dentro del volumen A del paquete DIY Toolkit creado por Simon Goodwin. DEFS aporta las extensiones _DEF$ y _DEF% en forma de funciones que nos devuelven el número de línea de una función o procedimiento que podemos usar en conjunción con ED en la edición de nuestros programa. Esto es algo muy útil en programas SuperBASIC largos en los que tengamos gran cantidad de procedimientos o funciones.

Por ejemplo, el comando

ED _def%

nos mostrará en pantalla, a modo de menú, una lista de todos los procedimientos y funciones del programa que tengamos cargado en memoria. Con las teclas de cursor podemos desplazarnos por esa lista y al seleccionar la entrada deseada (con enter o espacio), esto activará el editor en la línea donde se encuentre la definición del procedimiento o función seleccionada.

Un atajo muy práctico es incluir en nuestro boot algo parecido a lo siguiente:

ALTKEY ‘e’; ‘ED _def%’ & CHR(10)

Con esto, cada vez que pulsemos ALT-e en nuestro QL se activará el menú con la lista de procedimientos y funciones de nuestro programa, con el objetivo de poder desplazarnos de forma cómoda a las distinas secciones del programa SuperBASIC que tengamos en memoria.

En la imagen siguiente vemos la lista de procedimientos y funciones de un programa y el resultado de la edición.

Defs de DIY Toolkit en acción

Defs de DIY Toolkit en acción (2)

Podemos encontrar esta utilidad en la siguiente dirección
http://www.dilwyn.me.uk/tk/index.html , o directamente de la pagina del autor de DIY Toolkit http://simon.mooli.org.uk/QL/DIY_Toolkit.html

Para cargar esta extensión podemos poner en nuestro boot una línea semejante a la siguiente (si tenemos previamente cargado el Toolkit 2)

LRESPR flp1_defs_code

REPLACE
Otra pequeña utilidad que nos podría venir muy bien es REPLACE, perteneciente al paquete DIY Toolkit, volumen R. Su utilidad es evidente, nos sirve para reemplazar nombre de variables en el programa que tengamos cargado en memoria. Esta utilidad nos ahorrará el trabajo de editar nuestro programa con un editor externo para buscar y reemplazar el nombre de una variable por otro nombre diferente. El uso es muy simple, supongamos que tenemos en nuestro programa una variable llamada f$ y que queremos sustituirla con otro nombre más significativo como es fichero$. El comando a emplear sería simplemente:

REPLACE f$, fichero$

PROCMAN
ProcMan es un acrónimo de Procedure Manager y se trata de una utilidad creada por Dilwyn Jones con el objetivo de facilitarnos la gestión de librerías de código SuperBASIC.

Supongamos que tenemos un fichero con una colección de procedimientos o funciones en SuperBASIC que queremos reutilizar en nuestros programas. PROCMAN nos permite fácilmente traspasar un conjunto de procedimiento de un fichero a otro. Esto nos ahorrará mucho trabajo de Save y Merge de trozos parciales de código.

Al ejecutar ProcMan, el programa nos pregunta por el fichero origen (donde tenemos la colección de rutinas que queremos aprovechar) y el por el fichero destino (el programa al que queremos volcar las rutinas seleccionadas). Una vez dentro del ProcMan, se nos muestra una lista numerada con todos los procedimientos y funciones del fichero origen, basta ir tecleando los números que identifican a las funciones o procedimientos para pasarlos todos de un golpe al fichero destino.

ProcMan tiene dos versiones, una versión estándar y otra versión más elaborada bajo PE.

En la siguiente imagen vemos un ejemplo de la lista de procedimientos y funciones de un programa desde el cual queremos extraer un subconjunto de ellos para aprovecharlos en otro programa.

Procedure Manager en acción

Podemos descargar ProcMan desde la siguiente dirección:
http://www.dilwyn.me.uk/program/index.html

Éstas son sólo algunas de las utilidades que se han creado a lo largo del tiempo de cara a facilitar la vida al programador en SuperBASIC. En artículo de Dilwyn Jones que he comentado se mencionan otras (Trace, Structured Super Basic, Better Basic, MultiBasic, …), que usadas de forma adecuada pueden dotar a nuestro QL de un entorno de desarrollo SuperBASIC bastante práctico y productivo.

Anuncios
1 comentario
  1. programandala.net dijo:

    Todas esas herramientas son muy útiles para suplir las carencias originales del editor de SuperBASIC.

    Me viene a la cabeza que el editor de Beta BASIC, un excelente BASIC alternativo para ZX Spectrum, escrito a mediados de los 1980 por Andy Wright, tiene esas funcionalidades y más… Me parece un detalle más acerca de la precipitación con que la QL fue “arrojada” al mercado, cuando le quedaban meses de maduración y pruebas, y le faltaban herramientas básicas para programar (como el posterior Toolkit 2).

    En mi reciente regreso a la QL yo he optado desde el primer momento por escribir las fuentes de S*BASIC en mi entorno habitual de trabajo (el editor Vim en Debian). Así dispongo de todas herramientas de edición necesarias. Para cerrar el círculo estoy trabajando en la implementación de un juego de caracteres estándar para la QL (fuente y mapa de teclado).

    Por fortuna S*BASIC guarda sus programas como textos y los codifica al leerlos. Si los guardara codificados (como la ZX Spectrum o la SAM Coupé), no habría más remedio que trabajar con el editor del propio sistema o usar herramientas externas de conversión. Esa característica de S*BASIC fue un acierto.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s