QB64
Разработчик | Роб Галлеон, QB64Team |
---|---|
Впервые появился | 8 сентября 2007 г |
Стабильная версия | 2.0.2
/ 7 ноября 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]
Microsoft QBasic Gorillas и Nibbles . QB64 реализует большинство операторов QBasic и может запускать множество программ QBasic, включая игры [3] Более того, QB64 был разработан с использованием интегрированной среды разработки, напоминающей QBASIC IDE. QB64 также расширяет язык программирования QBASIC, включая 64-битные типы данных, а также улучшенную поддержку звука и графики. Он также может эмулировать некоторые специфические функции DOS/x86, такие как доступ к мыши INT 33h и несколько таймеров.
Начиная с версии 2.0, QB64 теперь предлагает возможности отладки с помощью новой метакоманды $DEBUG . [4]
История [ править ]
QB64 изначально был скомпилирован с помощью QuickBASIC 4.5. После значительного развития Роб Галлеон, разработчик, столкнулся с ограничениями памяти QuickBASIC и перешел на Microsoft Basic PDS 7.1, которая на короткое время решила эти проблемы. [5] После версии 0.63 QB64 смог скомпилироваться самостоятельно , поэтому традиционные ограничения памяти больше не применялись.
Что касается стимула для QB64, Галеон сказал: [6]
Я начал видеть необходимость в QB64, когда стало ясно, что появление VISTA нанесет вред QBASIC, отведя его к древнему языку, который можно запустить только на эмуляторах, который практически не дает шансов воспользоваться преимуществами современных функций на компьютерах. Фактическое кодирование QB64 началось в начале этого года, и с тех пор QB64 добился устойчивого прогресса. Раньше у меня был опыт написания языков программирования, поэтому я заранее знал, какие проблемы меня ждут.
Начиная с 2016 года началась работа над конструктором графического пользовательского интерфейса и управляемой событиями интегрированной средой разработки, , под названием InForm, предоставляющей функции, аналогичные Visual Basic . [7]
Синтаксис [ править ]
Синтаксис QB64 полностью обратно совместим с QuickBASIC. Номера строк не обязательны, а операторы завершаются символами новой строки или разделяются двоеточиями ( :
).
Пример «Привет, мир!» программа это:
PRINT "Hello, World!"
Пример эмуляции памяти VGA в QB64 для совместимости:
CLS
S$ = "Hello, World!"
DEF SEG = &HB800 'sets the segment to video memory
FOR I = 1 TO LEN(S$)
POKE 160 + (I - 1) * 2, ASC(MID$(S$, I, 1))'character
NEXT
DEF SEG 'reset the segment to default
Пример того, как QB64 позволяет использовать аудиофайлы:
sound_effect& = _SNDOPEN("sound.wav") 'WAV, OGG or MP3
_SNDPLAY sound_effect&
Пример того, как QB64 позволяет использовать файлы изображений:
SCREEN _NEWIMAGE(800, 600, 32) 'creates a 32-bit screen
imagename& = _LOADIMAGE("image__name.png") 'BMP, JPG, PNG, etc.
_PUTIMAGE (0, 0), imagename&
_FREEIMAGE imagename& 'release assigned memory
Пример того, как QB64 использует несколько таймеров:
t1 = _FREETIMER
t2 = _FREETIMER
ON TIMER(t1, 1) GOSUB Timer.Trap 'the code following the Timer.Trap label will be run every 1 second
ON TIMER(t2, .5) mySub 'QB64 can also trigger a SUB procedure with TIMER;
' in this case mySUB will be triggered every 500 milliseconds
'activate timers:
TIMER(t1) ON
TIMER(t2) ON
DO 'go into an infinite loop until the window is closed
_LIMIT 1 'run the main loop at 1 cycle per second, to show how timers are independent from main program flow
LOOP
Timer.Trap:
PRINT "1s; ";
RETURN
SUB mySub
PRINT "500ms; ";
END SUB
Расширения QBASIC [ править ]
Расширенные команды QB64 начинаются с подчеркивания , чтобы избежать конфликтов с именами, которые могут использоваться в программе QuickBASIC. Начиная с версии 1.4, префикс подчеркивания можно удалить с помощью метакоманды $НОПРЕФИКС . [8]
QB64 расширяет язык QuickBASIC несколькими способами. Он добавляет новые типы данных , включая _BIT
, _BYTE
, _INTEGER64
и _FLOAT
а также беззнаковые типы данных. Новые типы данных имеют суффиксы , как и традиционные типы данных BASIC. QB64 также включает в себя аудиобиблиотеку , которая позволяет воспроизводить наиболее распространенные аудиоформаты, включая файлы MP3 , Ogg Vorbis и WAV , а также библиотеки, позволяющие пользователям использовать графику с более высоким разрешением, чем 640×480, предлагаемое QuickBASIC. [9] используйте разные шрифты и выводите изображения в BMP , PNG и JPEG форматах . Он также позволяет использовать 32-битные цвета вместо изначально предлагаемых ограниченных 256 (или 16, в зависимости от того) цветов.
Программисту также не нужно указывать, какие библиотеки программирования включать, поскольку QB64 делает это автоматически. Программист имеет возможность включить собственную библиотеку через $INCLUDE так же, как это сделал QuickBASIC .
Еще одна важная добавленная функция — это работа в сети. Первоначально это позволяло открыть поток TCP/IP, который можно было читать и записывать с помощью Инструкции ввода#/печати# . Этот режим имеет собственный собственный формат инкапсуляции пакетов, который, хотя и прост в использовании с QBasic, означает, что его можно использовать только для связи с другими программами QB64 или серверными модулями с пользовательскими интерфейсами, созданными специально для приложения. В более поздних версиях добавлено ПОЛУЧИТЬ# и PUT# для чтения и записи необработанных байтов из потока. Это позволяет реализовать встроенные реализации стандартных протоколов, таких как smtp и http.
Преимущества QB64 [ править ]
- Он поддерживает различные форматы файлов, а также обеспечивает доступ к буферу обмена.
- QB64 обеспечивает мгновенный доступ к 32-битным графическим файлам (самых популярных форматов).
- QB64 предоставляет мгновенный доступ к нескольким аудиоформатам.
- Он поддерживается большинством современных операционных систем, поэтому эмуляция не требуется.
Библиотеки [ править ]
QB64 интегрирует FreeGLUT для графики и текста.
Ветка разработки репозитория, размещенная на GitHub, часто обновляется исправлениями и улучшениями, которые в конечном итоге станут следующей стабильной версией. Разработчикские сборки также предлагаются пользователям для бета-тестирования на официальном сайте.
QB64 также может использовать библиотеки DLL для заголовков Windows и C++ с блоком DECLARE LIBRARY. Пользователи также могут получить доступ к файлам заголовков C для запуска функций C.
Вилки [ править ]
Из-за встряски в сообществе в 2022 году сейчас существует как минимум два форка проекта QB64. [10] Репозиторий Github «QB64 Team» больше не активен, и все новые разработки выполняются в новых форках:
- QB64 Team была авторитетной версией до апреля 2022 года.
- QB64 Официальный. Как предыдущие, так и новые разработчики разделились и возобновили разработку.
- QB64 Phoenix (основной сайт) ( Github ) Форк «Phoenix» был создан для возрождения проекта после встряски 2022 года.
Ссылки [ править ]
- ^ Стефан Ришар (16 ноября 2007 г.). «В новостях» . ПКОПИ! Выпуск №50 . Базовое программирование. Архивировано из оригинала 21 декабря 2009 г. Проверено 17 августа 2008 г.
- ^ Э.К.Виртанен (26 мая 2008 г.). «Интервью с Галеоном» . ПКОПИ! Выпуск №70 . Базовое программирование. Архивировано из оригинала 21 августа 2008 г. Проверено 14 июля 2008 г.
- ^ «Скриншоты QB64 — Гориллы QB64/QBASIC в QB64» . Архивировано из оригинала 12 мая 2013 г. Проверено 27 июля 2010 г.
- ^ «Журнал изменений для версии 2.0 – QB64.org» . www.qb64.org . Архивировано из оригинала 10 октября 2021 г.
- ^ «Больше ОШИБОК, пожалуйста! (Серьезно)» . 3 марта 2008 г.
- ^ «Добро пожаловать на форум QB64!» . ФОРУМ QBASIC . 30 сентября 2007 года . Проверено 28 января 2020 г.
- ^ Рогоз, Иван (07.04.2022). «Взрыв из прошлого — QBasic 4.5» . Барн Лаборатория . Проверено 26 сентября 2023 г.
QB64 поставляется с WYSIWYG-редактором IDE под названием InForm, который приближает его к повседневному использованию в качестве быстрого и несложного языка автоматизации для Windows.
- ^ «Журнал изменений для версии 1.4 – QB64.org» . www.qb64.org . Архивировано из оригинала 13 февраля 2020 г.
- ^ «Советник QB: режимы экрана 11, 12 и 13» . Корпорация Майкрософт. 1988. Архивировано из оригинала 5 января 2009 г. Проверено 25 июля 2008 г.
- ^ Провен, Лиам (28 марта 2023 г.). «Ностальгия по VB? BASIC совсем не мертв» . Регистр . Проверено 1 октября 2023 г.
То же самое относится и к QB64, хотя раскол между его разработчиками еще не полностью улегся. Сообщество под названием QB64 Phoenix активно разрабатывает новую версию Phoenix Edition.