QB64

lenguaje de programación

QB64 (originalmente llamado QB32) es un compilador integrado del lenguaje BASIC para Microsoft Windows, GNU/Linux y MacOS X. Está diseñado para ser compatible con QBASIC y QuickBASIC de Microsoft. QB64 genera código C++ que es después compilado usando GCC.

QB64
La IDE de QB64
Captura de pantalla de la IDE de QB64


El logo de QB64, y una captura de pantalla del IDE
Desarrollador(es)
Galleon, QB64 Team
https://qb64.com
Información general
Extensiones comunes .bas, .bi, .bm
Paradigma Programación por procedimientos
Apareció en 2007
Última versión estable 2.0.2 (07 de noviembre de 2021 (2 años, 5 meses y 13 días))
Última versión en pruebas qb64_2021-10-17-04-35-15_45fed46
Influido por QuickBASIC, QBASIC
Sistema operativo Microsoft Windows, Linux, macOS
Licencia LGPLv2.1

QB64 implementa la mayoría de los comandos de QBasic, y puede ejecutar muchos de programas escritos para él, incluyendo los juegos de demostración Gorillas y Nibbles. Además, QB64 fue diseñado para contener un IDE similar a QBasic. También extiende el lenguaje QuickBASIC para incluir tipos de datos de 64 bits, además de mejorar el soporte para sonido y gráficos. Así mismo es capaz de emular algunas características específicas de DOS/x86, como el acceso al ratón a través de la Interrupción 33h, y múltiples temporizadores.

Desde la versión 2.0 también incluye facilidades para la depuración.

Historia editar

QB64 fue originalmente compilado con QuickBASIC 4.5. Después de un extenso desarrollo, Galleon, el desarrollador, se vio obstaculizado por las limitaciones de memoria de QuickBASIC y opto por cambiar al Microsoft Basic PDS 7.1, que resolvió todos esos problemas por un tiempo. Desde la versión 0.63, QB64 es capaz de compilarse a sí mismo, por lo que las limitaciones de memoria convencional ya no se aplican.

Sintaxis editar

La sintaxis de QB64 está diseñada para ser completamente compatible con QuickBASIC. Los números de línea no son un requisito y los comandos son terminados por saltos de línea o dos puntos.

Un programa de "Hello, World" de ejemplo podría ser:

PRINT "Hola, mundo!"

Un ejemplo de la emulación de la memoria VGA compatible con QuickBASIC:

CLS
S$ = "Hola, mundo!"
DEF SEG = &HB800 'establece el segmento a la memoria de video.
FOR J = 1 TO 15
    FOR I = 1 TO LEN(S$)
        POKE J * 160 + (I - 1) * 2, ASC(MID$(S$, I, 1))'caracter
        POKE J * 160 + (I - 1) * 2 + 1, (J + 128)
    NEXT
NEXT

Un ejemplo de como QB64 permite archivos de imagen y audio:

efecto_de_sonido& = _SNDOPEN("sonido.wav")
_SNDPLAY efecto_de_sonido&
imagen& = _LOADIMAGE("archivo_imagen.png")
_PUTIMAGE (0,0), imagen&

Extensiones a QBASIC editar

Los comandos extendidos de QB64 empiezan con un carácter de subrayado para evitar conflictos con cualquier nombre que podría haberse usado en un programa de QuickBASIC. QB64 extiende el lenguaje de varias maneras. Añade nuevos tipos de datos, incluyendo _BIT, _BYTE, _INTEGER64 y _FLOAT, así como tipos de datos sin signo. Los nuevos tipos de datos tienen sufijos tal como los tipos de datos tradicionales de BASIC. QB64 también incluye una biblioteca de audio que permite reproducir los formatos de audio más comunes, incluyendo MP3, Ogg Vorbis, y archivos WAV, además de bibliotecas que ofrecen los usuarios gráficos de resolución más alta que el máximo de 640x480 ofrecido por QuickBASIC, el uso de fuentes tipográficas y el dibujo de imágenes en formatos BMP, PNG y Jpeg, y el uso de 32 bits por pixel en contraste al máximo anterior de 256 colores. El programador no tiene porqué especificar las bibliotecas de programación a incluir puesto que QB64 lo hace automáticamente. El programador tiene la opción de incluir una biblioteca propia mediante el metacomando $INCLUDE, tal como se hacía con QuickBASIC.

Bibliotecas editar

Las versiones actuales (y futuras) integran FreeGLUT para gráficos y texto.

Una rama de desarrollo alojada en GitHub se actualiza con frecuentes adiciones y correcciones del código fuente.

QB64 también puede usar archivos DLL para Windows, funciones y comandos de C++ mediante un bloque de DECLARE LIBRARY. Los usuarios también pueden acceder a archivos de cabecera para ejecutar funciones de C.

Enlaces externos editar