QB64 - QB64

QB64
Логотип QB64
РазработчикРоб Галеон, команда QB64
Впервые появился2007; 13 лет назад (2007)
Стабильный выпуск
1.4 / 13 февраля 2020 г.; 9 месяцев назад (2020-02-13)
Операционные системыМайкрософт Виндоус, Linux, macOS
ЛицензияМассачусетский технологический институт
Интернет сайтwww.qb64.org
Под влиянием
QuickBASIC, QBASIC

QB64 (первоначально QB32)[1] это самостоятельный хостинг БАЗОВЫЙ компилятор для Майкрософт Виндоус, Linux и Mac OS X, разработан для совместимости с Microsoft QBasic и QuickBASIC. QB64 - это C ++ эмиттер, который интегрирован с компилятором C ++ для обеспечения компиляции через код C ++ и GCC оптимизация.[2]

QB64 реализует большинство операторов QBasic и может запускать многие программы QBasic, включая Microsoft QBasic. Гориллы и Грызть игры.[3] Кроме того, QB64 был разработан, чтобы содержать IDE, похожую на QBASIC IDE. QB64 также расширяет язык программирования QBASIC, включая 64-битный типы данных, а также улучшенная поддержка звука и графики. Он также может эмулировать некоторые особенности DOS / x86, такие как INT 33 часа доступа с помощью мыши и несколько таймеров.

История

QB64 изначально был скомпилирован с QuickBASIC 4.5. После значительного развития разработчик Роб Галеон столкнулся с ограничениями памяти QuickBASIC и переключился на Microsoft Basic PDS 7.1, который решил эти проблемы на короткое время.[4] После версии 0.63 QB64 был способен скомпилировать себя Итак обычная память ограничения больше не применяются.

Что касается импульса для QB64, Галеон сказал:[5]

Я начал видеть потребность в QB64, когда стало ясно, что внедрение VISTA нанесет вред QBASIC, превратив его в древний язык, работающий только на эмуляторах, которые дают мало / никакие шансы воспользоваться преимуществами современных функций на компьютерах. Фактическое кодирование QB64 началось в начале этого года, и с тех пор QB64 стабильно продвигается вперед. У меня уже был опыт написания языков программирования, поэтому я заранее знал, какие проблемы меня ждут.

Синтаксис

Синтаксис QB64 полностью обратно совместим с QuickBASIC. Номера строк не требуются, и утверждения завершаются новые строки или разделены двоеточия (:).

Пример "Привет, мир!" программа является:

РАСПЕЧАТАТЬ"Привет, мир!"

Пример эмуляции памяти VGA QB64 для совместимости:

CLSS $="Привет, мир!"DEF SEG=&HB800'устанавливает сегмент в видеопамятьЗАя=1КLEN(S $)POKE160+(я-1)*2,ASC(MID $(S $,я,1))'персонажСЛЕДУЮЩИЙDEF SEG'сбросить сегмент по умолчанию

Пример того, как QB64 разрешает аудиофайлы:

звуковой эффект&=_SNDOPEN("sound.wav")'WAV, OGG или MP3_SNDPLAYзвуковой эффект&

Пример того, как QB64 разрешает файлы изображений:

ЭКРАН_НОВОЕ ИЗОБРАЖЕНИЕ(800,600,32)'создает 32-битный экранImagename &=_LOADIMAGE("image__name.png")'BMP, JPG, PNG и т. Д._PUTIMAGE(0,0),Imagename &_FREEIMAGEImagename &'освободить назначенную память

Пример того, как QB64 использует несколько таймеров:

t1=_FREETIMERt2=_FREETIMERНА ТАЙМЕРЕ(t1,1)GOSUBТаймер.Ловушка'код, следующий за меткой Timer.Trap, будет запускаться каждую секундуНА ТАЙМЕРЕ(t2,.5)mySubQB64 может также запускать процедуру SUB с ТАЙМЕРОМ;'в этом случае mySUB будет запускаться каждые 500 миллисекунд'активировать таймеры:ТАЙМЕР(t1)НАТАЙМЕР(t2)НАДЕЛАТЬ'зайти в бесконечный цикл, пока окно не закроется_LIMIT1'запускать основной цикл с частотой 1 цикл в секунду, чтобы показать, как таймеры независимы от основного потока программыПЕТЛЯТаймер.Ловушка:РАСПЕЧАТАТЬ"1с;";ВОЗВРАЩАТЬСЯSUBmySubРАСПЕЧАТАТЬ"500 мс;";КОНЕЦSUB

Расширения QBASIC

Расширенные команды QB64 начинаются с символа подчеркивать во избежание конфликтов с любыми именами, которые могут использоваться в программе QuickBASIC. Начиная с версии 1.4, префикс подчеркивания можно удалить с помощью метакоманды $ NOPREFIX.[6]QB64 расширяет язык QuickBASIC несколькими способами. Он добавляет новый типы данных включая _КУСОЧЕК, _БАЙТ, _INTEGER64 и _ПЛАВАТЬ а также беззнаковый типы данных. Новые типы данных имеют суффиксы точно так же, как традиционные типы данных 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 ++ и SDL с блоком DECLARE LIBRARY. Пользователи также могут получить доступ к файлам заголовков C для выполнения функций C.

Рекомендации

  1. ^ Стефан Ричард (16 ноября 2007 г.). "В новостях". PCOPY! Выпуск # 50. Основное программирование. Архивировано из оригинал 21 декабря 2009 г.. Получено 2008-08-17.
  2. ^ Э.К. Виртанен (26.05.2008). "Интервью с Галеоном". PCOPY! Выпуск # 70. Основное программирование. Архивировано из оригинал на 2008-08-21. Получено 2008-07-14.
  3. ^ "Скриншоты QB64 - Гориллы QB64 / QBASIC в QB64". Архивировано из оригинал на 2013-05-12. Получено 2010-07-27.
  4. ^ https://www.tapatalk.com/groups/qbasic/more-bugs-please-seriously-t36524.html#p165571
  5. ^ "Добро пожаловать на форум QB64!". QBASIC ФОРУМ. Получено 2020-01-28.
  6. ^ https://www.qb64.org/portal/changelog-of-v1-4/
  7. ^ «QB Advisor: режимы экрана 11, 12 и 13». Корпорация Майкрософт. 1988. Архивировано с оригинал на 2009-01-05. Получено 2008-07-25.

внешняя ссылка