Разработчик | Роб Галеон, команда QB64 |
---|---|
Впервые появился | 2007 |
Стабильный выпуск | 1.5 / 28 февраля 2021 г . |
Операционные системы | Microsoft Windows , Linux , macOS |
Лицензия | Массачусетский технологический институт |
Интернет сайт | www |
Под влиянием | |
QuickBASIC , QBASIC |
QB64 (первоначально QB32 ) [1] - это компилятор BASIC с собственным хостом для Microsoft Windows , Linux и Mac OS X , разработанный для совместимости с Microsoft QBasic и QuickBASIC . QB64 - это эмиттер C ++ , который интегрирован с компилятором C ++ для обеспечения компиляции с помощью кода C ++ и оптимизации GCC . [2]
QB64 реализует большинство операторов QBasic и может запускать многие программы QBasic, включая игры Microsoft QBasic Gorillas и Nibbles . [3] Кроме того, QB64 был разработан, чтобы содержать IDE, похожую на QBASIC IDE. QB64 также расширяет язык программирования QBASIC, добавляя 64-битные типы данных, а также улучшенную поддержку звука и графики. Он также может эмулировать некоторые особенности DOS / x86, такие как доступ мыши INT 33h и несколько таймеров.
История [ править ]
QB64 изначально был скомпилирован с QuickBASIC 4.5. После значительных разработок Роб Галеон, разработчик, столкнулся с ограничениями памяти QuickBASIC и переключился на Microsoft Basic PDS 7.1, который решил эти проблемы на короткое время. [4] После версии 0.63 QB64 смог скомпилировать себя, поэтому обычные ограничения памяти больше не применялись.
Что касается импульса для QB64, Галеон сказал: [5]
Я начал видеть потребность в QB64, когда стало ясно, что внедрение VISTA нанесет вред QBASIC, превратив его в древний язык, работающий только на эмуляторах, которые дают мало / никакие шансы воспользоваться преимуществами современных функций на компьютерах. Фактическое кодирование QB64 началось в начале этого года, и с тех пор QB64 стабильно продвигается вперед. У меня уже был опыт написания языков программирования, поэтому я заранее знал, какие проблемы меня ждут.
Синтаксис [ править ]
Синтаксис QB64 полностью обратно совместим с QuickBASIC. Номера строк не требуются, а операторы заканчиваются символом новой строки или разделяются двоеточием ( :
).
Пример "Hello, World!" программа :
ПЕЧАТЬ "Hello, World!"
Пример эмуляции памяти VGA QB64 для совместимости:
CLS S $ = "Привет, мир!" DEF SEG = & HB800 'устанавливает сегмент в видеопамять FOR I = 1 TO LEN ( S $ ) POKE 160 + ( I - 1 ) * 2 , ASC ( MID $ ( S $ , I , 1 )) ' символ NEXT DEF SEG 'сбросить сегмент по умолчанию
Пример того, как QB64 разрешает аудиофайлы:
sound_effect & = _SNDOPEN ( "sound.wav" ) 'WAV, OGG или MP3 _SNDPLAY sound_effect &
Пример того, как QB64 разрешает файлы изображений:
SCREEN _NEWIMAGE ( 800 , 600 , 32 ) 'создает 32-битное экранное имя изображения & = _LOADIMAGE ( "image__name.png" ) ' BMP, JPG, PNG и т. Д. _PUTIMAGE ( 0 , 0 ), имя изображения & _FREEIMAGE имя изображения & 'освобождает выделенную память
Пример того, как QB64 использует несколько таймеров:
t1 = _FREETIMER t2 = _FREETIMER ON TIMER ( t1 , 1 ) Таймер GOSUB . Trap 'код, следующий за меткой Timer.Trap, будет запускаться каждую секунду ON TIMER ( t2 , .5 ) mySub 'QB64 также может запускать процедуру SUB с TIMER; 'в этом случае mySUB будет запускаться каждые 500 миллисекунд 'активировать таймеры: ТАЙМЕР ( t1 ) ВКЛ ТАЙМЕР ( t2 ) ВКЛ DO 'войти в бесконечный цикл, пока окно не закроется _LIMIT 1 ' запустить основной цикл со скоростью 1 цикл в секунду, чтобы показать, как таймеры независимы от основного потока программы LOOP Таймер . Ловушка: ПЕЧАТЬ «1s;» ; ВОЗВРАЩАТЬСЯ SUB mySub PRINT "500 мс;" ; КОНЕЦ ПОДПИСКИ
Расширения QBASIC [ править ]
Расширенные команды QB64 начинаются с подчеркивания , чтобы избежать конфликтов с любыми именами, которые могут использоваться в программе QuickBASIC. Начиная с версии 1.4, префикс подчеркивания можно удалить с помощью метакоманды $ NOPREFIX . [6]
QB64 расширяет язык QuickBASIC несколькими способами. Он добавляет новые типы данных , в том числе _BIT
, _BYTE
, _INTEGER64
и _FLOAT
, а также беззнаковых типов данных. Новые типы данных имеют суффиксы, как и традиционные типы данных BASIC. QB64 также включает в себя аудио- библиотеку, которая позволяет воспроизводить наиболее распространенные аудиоформаты, включая MP3 , Ogg Vorbis., и файлы WAV, а также библиотеки, позволяющие пользователям использовать графику с более высоким разрешением, чем 640 × 480, предлагаемый QuickBASIC, [7] использовать другие шрифты и печатать изображения в форматах BMP , PNG и JPEG . Он также позволяет использовать 32-битные цвета вместо изначально предложенных ограниченных 256 (или 16, в зависимости от того, что). Программисту также не нужно указывать, какие библиотеки программирования включать, поскольку QB64 делает это автоматически. Программист имеет возможность включить собственную библиотеку с помощью команды $ INCLUDE, как это сделал QuickBASIC .
Преимущества QB64 [ править ]
- Он поддерживает различные форматы файлов, а также обеспечивает доступ к буферу обмена.
- QB64 дает мгновенный доступ к 32-битным графическим файлам (самые популярные форматы).
- QB64 дает мгновенный доступ к нескольким аудиоформатам.
- Он поддерживается в большинстве современных операционных систем, поэтому эмуляция не требуется.
Библиотеки [ править ]
QB64 интегрирует FreeGLUT для графики и текста.
Разрабатываемая ветка репозитория, размещенная на GitHub , часто обновляется исправлениями и улучшениями, которые в конечном итоге станут следующей стабильной версией. Сборки для разработки также предлагаются пользователям через официальный сайт для бета-тестирования.
QB64 также может использовать библиотеки DLL для заголовков Windows и C ++ с блоком DECLARE LIBRARY. Пользователи также могут получить доступ к файлам заголовков C для выполнения функций C.
Ссылки [ править ]
- ^ Стефан Ричард (2007-11-16). «В новостях» . PCOPY! Выпуск №50 . Основное программирование. Архивировано из оригинала на 2009-12-21 . Проверено 17 августа 2008 .
- ^ EKVirtanen (2008-05-26). «Интервью с Галеоном» . PCOPY! Выпуск №70 . Основное программирование. Архивировано из оригинала на 2008-08-21 . Проверено 14 июля 2008 .
- ^ "Скриншоты QB64 - Гориллы QB64 / QBASIC в QB64" . Архивировано из оригинала на 2013-05-12 . Проверено 27 июля 2010 .
- ^ https://www.tapatalk.com/groups/qbasic/more-bugs-please-seriously-t36524.html#p165571
- ^ "Добро пожаловать на форум QB64!" . БАЗОВЫЙ ФОРУМ . Проверено 28 января 2020 .
- ^ https://www.qb64.org/portal/changelog-of-v1-4/
- ^ «QB Advisor: режимы экрана 11, 12 и 13» . Корпорация Майкрософт. 1988. Архивировано из оригинала на 2009-01-05 . Проверено 25 июля 2008 .
Внешние ссылки [ править ]
- Официальный веб-сайт
- qb64 на GitHub