QB64 (originalmente QB32 ) [1] es un autoalojamiento BASIC compilador para Microsoft Windows , Linux y Mac OS X , diseñado para ser compatible con Microsoft QBasic y QuickBASIC . QB64 es un emisor de C ++ , que está integrado con un compilador de C ++ para proporcionar compilación a través de código C ++ y optimización de GCC . [2]
Desarrollador | Rob Galleon, QB64 Equipo |
---|---|
Apareció por primera vez | 2007 |
Lanzamiento estable | 1.5 / 28 de febrero de 2021 |
SO | Microsoft Windows , Linux , macOS |
Licencia | MIT |
Sitio web | www |
Influenciado por | |
QuickBASIC , QBASIC |
QB64 implementa la mayoría de las declaraciones de QBasic y puede ejecutar muchos programas de QBasic, incluidos los juegos QBasic Gorillas y Nibbles de Microsoft . [3] Además, QB64 ha sido diseñado para contener un IDE parecido al IDE QBASIC. QB64 también amplía el lenguaje de programación QBASIC para incluir tipos de datos de 64 bits , así como un mejor soporte de sonido y gráficos. También puede emular algunas características específicas de DOS / x86, como el acceso al mouse INT 33h y varios temporizadores.
Historia
QB64 se compiló originalmente con QuickBASIC 4.5. Después de un desarrollo significativo, Rob Galleon, el desarrollador, se vio obstaculizado por las limitaciones de memoria de QuickBASIC y cambió a Microsoft Basic PDS 7.1, que resolvió estos problemas durante un breve período de tiempo. [4] Después de la versión 0.63, QB64 pudo compilarse a sí mismo, por lo que las limitaciones de memoria convencionales ya no se aplicaban.
Con respecto al ímpetu para QB64, Galleon dijo: [5]
Comencé a ver la necesidad de QB64 cuando estaba claro que la introducción de VISTA paralizaría QBASIC, relegándolo a un lenguaje antiguo que solo se puede ejecutar en emuladores que permiten pocas o ninguna posibilidad de aprovechar las características modernas de las computadoras. La codificación real de QB64 comenzó a principios de este año y desde entonces QB64 ha progresado constantemente. Ya tenía experiencia escribiendo lenguajes de programación antes, así que sabía de antemano los desafíos que me aguardaban.
Sintaxis
La sintaxis de QB64 está diseñada para ser completamente compatible con QuickBASIC. Los números de línea no son obligatorios y las declaraciones terminan con nuevas líneas o separadas por dos puntos ( :
).
Un ejemplo de "¡Hola, mundo!" el programa es:
IMPRIMIR "¡Hola, mundo!"
Un ejemplo de la emulación de memoria VGA de QB64 para compatibilidad:
CLS S $ = "¡Hola, mundo!" DEF SEG = & HB800 'establece el segmento en la memoria de video FOR I = 1 TO LEN ( S $ ) POKE 160 + ( I - 1 ) * 2 , ASC ( MID $ ( S $ , I , 1 )) ' carácter NEXT DEF SEG 'restablece el segmento a los valores predeterminados
Un ejemplo de cómo QB64 permite archivos de audio:
sound_effect & = _SNDOPEN ( "sound.wav" ) 'WAV, OGG o MP3 _SNDPLAY sound_effect &
Un ejemplo de cómo QB64 permite archivos de imágenes:
SCREEN _NEWIMAGE ( 800 , 600 , 32 ) 'crea un nombre de imagen de pantalla de 32 bits & = _LOADIMAGE ( "image__name.png" ) ' BMP, JPG, PNG, etc. _PUTIMAGE ( 0 , 0 ), nombre de imagen & _FREEIMAGE nombre de imagen & 'libera memoria asignada
Un ejemplo de cómo QB64 usa varios temporizadores:
t1 = _FREETIMER t2 = _FREETIMER ON TIMER ( t1 , 1 ) Temporizador GOSUB . Trap 'el código que sigue a la etiqueta Timer.Trap se ejecutará cada 1 segundo ON TIMER ( t2 , .5 ) mySub 'QB64 también puede activar un procedimiento SUB con TIMER; 'en este caso mySUB se activará cada 500 milisegundos 'activar temporizadores: TIMER ( t1 ) ON TIMER ( t2 ) ON DEBE 'entrar en un bucle infinito hasta que se cierre la ventana _LIMIT 1 ' ejecutar el bucle principal a 1 ciclo por segundo, para mostrar cómo los temporizadores son independientes del flujo del programa principal BUCLE Temporizador . Trampa: PRINT "1s;" ; REGRESO SUB mySub PRINT "500ms;" ; FIN SUB
Extensiones de QBASIC
Los comandos extendidos de QB64 comienzan con un guión bajo para evitar conflictos con cualquier nombre que pueda usarse en un programa QuickBASIC. A partir de la versión 1.4, el prefijo de subrayado se puede eliminar mediante el metacomando $ NOPREFIX . [6] QB64 amplía el lenguaje QuickBASIC de varias formas. Agrega los nuevos tipos de datos_BIT
, incluidos _BYTE
, _INTEGER64
y _FLOAT
también los tipos de datos sin firmar . Los nuevos tipos de datos tienen sufijos al igual que los tipos de datos BASIC tradicionales. QB64 también incluye una biblioteca de audio que permite reproducir los formatos de audio más comunes, incluidos archivos MP3 , Ogg Vorbis y WAV , así como bibliotecas que permiten a los usuarios usar gráficos de mayor resolución que los 640 × 480 ofrecidos por QuickBASIC, [7] usar diferentes fuentes y trazar imágenes en formatos BMP , PNG y JPEG . También permite el uso de colores de 32 bits en lugar de los limitados 256 (o 16, según) colores ofrecidos originalmente. El programador tampoco tiene que especificar qué bibliotecas de programación incluir, ya que QB64 lo hace automáticamente. El programador tiene la opción de incluir una biblioteca propia mediante el comando $ INCLUDE tal como lo hizo QuickBASIC .
Otra característica importante que se ha agregado es la creación de redes. Inicialmente, esto permitió la apertura de una secuencia TCP / IP que podía leerse y escribirse usando las instrucciones Input # / Print #. Este modo tiene su propio formato de encapsulación de paquetes que, aunque es fácil de usar con QBasic, significa que solo se puede usar para comunicarse con otros programas QB64 o servidores con interfaces personalizadas creadas específicamente para la aplicación. Las versiones posteriores agregan GET # y PUT # para leer y escribir bytes sin procesar de la secuencia. Esto permite implementaciones nativas de protocolos estándar como smtp y http.
Ventajas de QB64
- Admite diferentes formatos de archivo y también proporciona acceso al portapapeles.
- QB64 brinda acceso instantáneo a archivos gráficos de 32 bits (formatos más populares).
- QB64 brinda acceso instantáneo a varios formatos de audio.
- Es compatible con la mayoría de los sistemas operativos modernos, por lo que no se requiere emulación.
Bibliotecas
QB64 integra FreeGLUT para sus gráficos y texto.
Una rama de desarrollo del repositorio alojado en GitHub se actualiza con frecuencia con correcciones y mejoras, que eventualmente se convertirán en la próxima versión estable. Las compilaciones de desarrollo también se ofrecen a través del sitio web oficial para que los usuarios realicen pruebas beta.
QB64 también puede usar bibliotecas DLL para encabezados de Windows y C ++ con un bloque DECLARE LIBRARY. Los usuarios también pueden acceder a los archivos de encabezado C para ejecutar funciones C.
Referencias
- ↑ Stephane Richard (16 de noviembre de 2007). "En las noticias" . PCOPY! Número 50 . Programación básica. Archivado desde el original el 21 de diciembre de 2009 . Consultado el 17 de agosto de 2008 .
- ^ EKVirtanen (26 de mayo de 2008). "Entrevista con Galeón" . PCOPY! Número 70 . Programación básica. Archivado desde el original el 21 de agosto de 2008 . Consultado el 14 de julio de 2008 .
- ^ "Capturas de pantalla de QB64 - QB64 / QBASIC Gorillas en QB64" . Archivado desde el original el 12 de mayo de 2013 . Consultado el 27 de julio de 2010 .
- ^ https://www.tapatalk.com/groups/qbasic/more-bugs-please-serively-t36524.html#p165571
- ^ "¡Bienvenido al Foro QB64!" . EL FORO QBASIC . Consultado el 28 de enero de 2020 .
- ^ https://www.qb64.org/portal/changelog-of-v1-4/
- ^ "QB Advisor: Modos de pantalla 11, 12 y 13" . Corporación Microsoft. 1988. Archivado desde el original el 5 de enero de 2009 . Consultado el 25 de julio de 2008 .
enlaces externos
- Página web oficial
- qb64 en GitHub