QB64

lenguaje de programación

QB64 (originalmente llamado QB32) es un compilador auto-alojado del lenguaje BASIC para Microsoft Windows, GNU/Linux y MacOS X. Está diseñado para ser compatible con QBASIC y Quick BASIC de Microsoft. El QB64 es un emisor de C++, que está integrado con un compilador de C++ para proveer compilación via código y optimización GCC.

QB64
La IDE de QB64


El logo de QB64, y una captura de pantalla del IDE
Desarrollador(es)
Galleon, QB64 Team
https://www.qb64.org
Información general
Extensiones comunes .bas, .bi, .bm
Paradigma Programación por procedimientos
Apareció en 2007
Última versión estable 1.5 (28 de febrero de 2021 (5 meses))
Última versión en pruebas qb64_2021-02-28-18-27-25_3043116
Influido por QuickBASIC, QBASIC
Sistema operativo Microsoft Windows, Linux, macOS
Licencia LGPLv2.1

El QB64 implementa la mayoría de los comandos de QBasic, y puede ejecutar muchos programas escritos en él, incluyendo el QBasic Gorillas de Microsoft y los juegos Nibbles. Además, el QB64 fue diseñado para contener un IDE (Siglas en inglés para Entorno de Desarrollo Integrado) similar al IDE del QBasic. QB64, a su vez extiende el lenguaje de programación QBasic para incluir tipos de datos de 64 bits, también como un mejor soporte para sonido y gráficos. También es capaz de emular algunas características específicas de DOS/x86, como acceso al mouse con la Interrupción 33h, y contadores.

HistoriaEditar

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

SintaxisEditar

La sintaxis de QB64 está diseñada para ser completamente retrocompatible con QuickBASIC. Los números de línea no son un requisito, y los comandos son terminados por líneas nuevas 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 de QB64 con el fin de mantener retrocompatibilidad:

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 imágenes y archivos de audio:

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

Extensiones a QBASICEditar

Los comandos extendidos de QB64 empiezan con un guion bajo para evadir conflictos con cualquier nombre que podría haberse usado en un programa de QuickBASIC. QB64 extiende el lenguaje QuickBASIC en varias maneras. Añade nuevos tipos de datos, incluyendo _BIT, _BYTE, _INTEGER64 y _FLOAT, también 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 librería de audio que permite reproducir los formatos de audio más comunes, incluyendo MP3, Ogg Vorbis, y archivos WAV, también como librerías ofreciendoles usar a los usuarios gráficos de resolución más alta que la resolución de 640x480 ofrecida por QuickBASIC, usar fuentes distintas, y dibujar imágenes en formatos BMP, PNG y Jpeg, también permite el uso de colores de 32 bits, en contraste a la originalmente ofrecida paleta de 256 (o 16, en ciertos casos) colores. Además, el programador no tiene que especificar que librerías de programación incluir, ya que QB64 lo hace automáticamente. El programador tiene la opción de incluir una librería propia mediante el metacomando $INCLUDE, tal como QuickBASIC lo hizo.

LibreríasEditar

Las versiones actuales (y futuras) integran FreeGLUT para sus gráficos y texto. Builds diarios son generados con adiciones y reparaciones al código base, son alojados en GitHub.

QB64 también puede usar librerías 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 externosEditar