Uno de los recursos utilizados para aprender a programar es el pseudocódigo, en mi segunda FP me pasé el primero de los dos años traduciendo código en Basic a pseudocódigo.
Teniendo en cuenta que había aprendido a programar 10 años atrás y que el segundo lenguaje de programación que aprendí era el Basic, esos ejercicios me suponían un tedio enorme.
Si sabes programar y te enfrentas a una tarea repetitiva y aburrida lo que haces es dedicar tiempo a programar un script que haga esa tarea por ti. Dicho y hecho: en pocos días tenía un pequeño script que hacía la mayor parte del trabajo de convertir programas en Basic en pseudocódigo y que utilicé intensivamente durante la gran parte del año que hicimos esos ejercicios.
Cuando el profesor nos indicó que era hora de elegir un proyecto a realizar en Basic para el fin de curso, yo lo tuve claro: convertir mi “traductor” a un pseudocompilador de pseudocódigo a Basic.
La primera versión no me costo mucho, pues era cuestión de invertir la librería de términos que utilizaba el script original para convertir Basic a pseudocódigo. Pero quería que fuera algo más funcional, tenía que agregar más cosas y tenía que poder hacer programas funcionales.
Así que lo que hice fue hacer mi propia especificación de pseudocódigo: cree mi propia sintaxis y cree un “manual” de cómo escribir pseudocódigo para mi QBASM (QBasic Assembler o algo así se me ocurrió como nombre).
Y la idea más brillante del proyecto, realmente la única idea brillante por sí misma porque el proyecto en sí era de una desfachatez enorme (por lo vago del autor): escribí el pseudocódigo correspondiente al mismo pseudocompilador que cuando se “compilaba” tenías un código en QBasic que funcionaba exactamente igual al código original, aunque no fuera exactamente igual por alguna limitación.
Como ya hice con el proyecto que hice el año siguiente, he recuperado el código y formateado los archivos de ayuda y los he dejado al escrutinio público en GitHub.
Me ha encantado Fernando. Sobre todo lo de la “librería” donde están las cadenas que se reemplazan. Una solución muy inteligente. Lo que admiro es lo elegante del código, mucho más del que yo escribía en Turbo Basic o QuickBasic, y que habitualmente prescindía de tipos de datos.