QB64
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 | ||
---|---|---|
![]() 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, 9 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
editarQB64 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
editarLa 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
editarLos 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
editarLas 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- QB64.org (sitio web desarrollador QB64 Team) Archivado el 7 de abril de 2019 en Wayback Machine.
- Página del proyecto en GitHub