True BASIC es una variante del lenguaje de programación BASIC que desciende de Dartmouth BASIC , el BASIC original. Ambos fueron creados por los profesores universitarios John G. Kemeny y Thomas E. Kurtz . [ 1 ]
Historia
El verdadero BASIC tiene sus orígenes en una variante del Dartmouth BASIC llamada Structured BASIC, o SBASIC para abreviar. Esta se lanzó en algún momento de 1975 o 1976, pero no se instaló como la versión principal de BASIC en el Sistema de Tiempo Compartido de Dartmouth (DTSS) que daba soporte al campus. Poco después, Kemeny se involucró en un proyecto para crear un estándar ANSI de BASIC con el fin de unificar las numerosas variantes del lenguaje que se habían desarrollado a finales de la década de 1960 y principios de la de 1970. Este proyecto se centró inicialmente en un sistema conocido como Minimal BASIC , similar a las primeras versiones del Dartmouth BASIC, mientras que el trabajo posterior se orientó hacia un Full BASIC que era esencialmente SBASIC con varias extensiones.
A principios de la década de 1980, decenas de millones de ordenadores domésticos utilizaban alguna variante de Microsoft BASIC , que se había convertido en el estándar de facto . Los esfuerzos de ANSI acabaron siendo inútiles, ya que quedó claro que estas versiones no tendrían ningún impacto en el mercado, en un mundo dominado por Microsoft. Ambas versiones fueron finalmente ratificadas, pero tuvieron escasa o nula adopción y los estándares fueron posteriormente retirados. Sin embargo, Kemeny y Kurtz decidieron continuar sus esfuerzos para introducir los conceptos de SBASIC y del estándar ANSI BASIC. Así nació True BASIC.
Inicialmente basado en Dartmouth BASIC 7, True BASIC se presentó en 1985. Existen versiones del compilador True BASIC para MS-DOS , Microsoft Windows y Mac OS clásico . En su momento, se ofrecieron versiones para los ordenadores TRS-80 Color Computer , Amiga y Atari ST , así como un compilador de línea de comandos para UNIX .
Tras varios años de inactividad, a partir de febrero de 2026 el sitio web de TrueBASIC se encuentra oficialmente cerrado.
Características
Al ser una implementación de programación estructurada del lenguaje, prescinde de la necesidad de números de línea y GOTOsentencias, aunque estos aún pueden utilizarse.
True BASIC proporciona instrucciones para aritmética matricial , una característica que había estado presente en Dartmouth BASIC desde sus inicios, pero que se había omitido en casi todas las versiones de intérpretes BASIC para microcomputadoras . Implementa variables globales y locales que permiten escribir funciones y subrutinas recursivas .
Los diseñadores querían que el lenguaje fuera independiente del hardware, de modo que el código fuente de True BASIC funcionara igual de bien en cualquier versión de su compilador. En general, lo consiguieron. La desventaja para los usuarios era que no tenían acceso directo a algunas funciones de sus máquinas, pero esto se podía solucionar con funciones y subrutinas invocables escritas especialmente en lenguaje ensamblador .
Al usar versiones más recientes de True BASIC, algunas de las funciones antiguas están bloqueadas. Un ejemplo del código reciente sería algo así:
RANDOMIZE SET WINDOW 0 , 20 , 0 , 20 SET COLOR 5 ! Establece el color del lápiz y del texto en 5 , ya que el color básico verdadero tiene de 0 a 15 colores PRINT "Bienvenido a..." ! Imprime "Bienvenido a..." en la pantalla del usuario . DO ! Inicia el bucle LET x = rnd * 20 ! Deja que el valor 'x' sea igual a un número aleatorio entre '0' y '20' LET y = rnd * 20 ! Deja que el valor 'y' sea igual a un número aleatorio entre '0' y '20' Pause .1 ! Espera 1/10 de segundo PLOT TEXT , en x , y: "¡Fabulosa Wikipedia!" ! Grafica "¡Fabulosa Wikipedia ! " en las coordenadas 'x' e 'y' LOOP ! Finaliza el bucle END ! Finaliza el programaEste sencillo programa traza el texto "Bienvenido a..." en la esquina superior izquierda de la pantalla y luego continúa en un bucle infinito trazando "¡Fabulosa Wikipedia!" en coordenadas aleatorias.
Un ejemplo de animación simple podría ser este:
! Dibujar el coche ESTABLECER VENTANA 0 , 20 , 0 , 20 ESTABLECER COLOR 5 ÁREA DE CAJA 2 , 6 , 2 , 3 ÁREA DE CAJA 9 , 13 , 2 , 3 ÁREA DE CAJA 16 , 20 , 2 , 3 ESTABLECER COLOR 249 LÍNEAS DE TRAZADO : 0 , 5 ; 20 , 5 INUNDACIÓN 10 , 1 CAJA MANTENER 0 , 20 , 0 , 5 EN la carretera$ CAJA CÍRCULO 2 , 3 , 5 , 6 INUNDACIÓN 2.5 , 5.5 CAJA CÍRCULO 5 , 6 , 5 , 6 INUNDACIÓN 5.5 , 5.5 ESTABLECER COLOR 35 LÍNEAS DE TRAZADO : 2.5 , 6 ; 5.5 , 6 LÍNEAS DE TRAZA : 5 , 6 ; 8 , 6 ; 8 , 8 ; 6 , 8 ; 6 , 10 ; 2 , 10 ; 2 , 8 ; 0 , 8 ; 0 , 6 ; 3 , 6 INUNDACIÓN 4 , 8 ESTABLECER COLOR 248 ÁREA DE CAJA 4 , 5 , 8 , 9 CAJA MANTENER 0 , 8 , 5 , 10 EN car$ ! Guarda el coche en 'car$' PARA x = 1 A 20 PASO 1 ! Crea un bucle 'for' CAJA MOSTRAR road$EN 0 , 0 CAJA MOSTRAR coche$ EN x , 5 PAUSA .1 BORRAR SIGUIENTE x ! Finalizar el bucle 'for' FIN ! Finalizar los programasRecepción
En 1985, Jerry Pournelle preguntó: "¿Para qué necesitamos True BASIC? No parece hacer nada que BASIC no haga, y lo que hace no se aborda de forma lógica ni intuitiva". Criticó la falta de salida al encontrar un error, lo que impedía la depuración interactiva al " insertar instrucciones print como diagnósticos ". Pournelle concluyó: "Creo que desaprovecharé la oportunidad de convertirme en un ferviente defensor de True BASIC. Disfrutaré de mis herejías de Microsoft y CBASIC ". [ 2 ]
Algunos usuarios se han quejado de que sus programas y el editor consumen el 100% de su CPU (o núcleo ). [ 3 ] [ 4 ] [ 5 ] [ 6 ] Esto parece deberse a que el editor y los programas del usuario utilizan un bucle que sondea constantemente el teclado y el ratón en busca de eventos. El problema se conoce al menos desde finales de 2010, [ 3 ] pero a principios de 2014 todavía se estaba trabajando en su solución. [ 6 ]
Lecturas adicionales
- Kemeny, John G.; Kurtz, Thomas E. (1985). Back To BASIC: The History, Corruption, and Future of the Language . Addison-Wesley Publishing Company, Inc. 141 pp. ISBN 0-201-13433-0.
Referencias
- ↑ Kemp, Juliet. "BASIC: El lenguaje que inició una revolución" (PDF) . Consultado el 25 de junio de 2022 .
- ↑ Pournelle, Jerry (septiembre de 1985). "PCs, periféricos, programas y personas" . BYTE . pág. 347. Consultado el 20 de marzo de 2016 .
- 1 2 "Uso de CPU" . Foro de soporte de True BASIC, 31 de diciembre de 2010. Consultado el 26 de julio de 2014 .
- ↑ "Uso de CPU al 100%" . Foro de soporte de True BASIC, 22 de agosto de 2012. Consultado el 26 de julio de 2014 .
- ↑ "Uso de CPU" . Foro de soporte de True BASIC , 24 de septiembre de 2013. Consultado el 26 de julio de 2014 .
- 1 2 "Algunos errores más del editor" . Respuesta del foro de soporte de True BASIC, 18 de febrero de 2014. Consultado el 26 de julio de 2014 .
Enlaces externos
- Sitio web oficial
- Intérpretes BÁSICOS
- Familia de lenguajes de programación BASIC