stringtranslate.com

QB64

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 был разработан с учетом интегрированной среды разработки, напоминающей 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. Номера строк не обязательны, а операторы завершаются символами новой строки или разделяются двоеточиями ( :).

Пример «Привет, мир!» программа это:

ПЕЧАТЬ «Привет, Мир!» 

Пример эмуляции памяти 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, будет запускаться каждую 1 секунду.        ON TIMER ( t2 , .5 ) mySub 'QB64 также может запускать процедуру SUB с помощью TIMER; ' в этом случае mySUB будет запускаться каждые 500 миллисекунд   'активировать таймеры: TIMER ( t1 ) ON TIMER ( t2 ) ON  DO 'перейти в бесконечный цикл, пока окно не закроется. _LIMIT 1 'запустить основной цикл со скоростью 1 цикл в секунду, чтобы показать, как таймеры независимы от основного потока программы LOOP    Таймер . Ловушка: PRINT "1s;" ; ВОЗВРАЩАТЬСЯ SUB mySub PRINT "500ms;" ; КОНЕЦ ПОДПИСКИ    

Расширения QBASIC

Расширенные команды QB64 начинаются с подчеркивания , чтобы избежать конфликтов с именами, которые могут использоваться в программе QuickBASIC. Начиная с версии 1.4, префикс подчеркивания можно удалить с помощью метакоманды $NOPREFIX . [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, который можно было читать и записывать с помощью инструкций Input#/Print# . Этот режим имеет собственный собственный формат инкапсуляции пакетов, который, хотя и прост в использовании с QBasic, означает, что его можно использовать только для связи с другими программами QB64 или серверными модулями с пользовательскими интерфейсами, созданными специально для приложения. В более поздних версиях добавлены GET# и PUT# для чтения и записи необработанных байтов из потока. Это позволяет реализовать собственные реализации стандартных протоколов, таких как smtp и http.

Преимущества QB64

Библиотеки

QB64 интегрирует FreeGLUT для графики и текста.

Ветка разработки репозитория, размещенная на GitHub, часто обновляется исправлениями и улучшениями, которые в конечном итоге станут следующей стабильной версией. Разработчикские сборки также предлагаются пользователям для бета-тестирования на официальном сайте.

QB64 также может использовать библиотеки DLL для заголовков Windows и C++ с блоком DECLARE LIBRARY. Пользователи также могут получить доступ к файлам заголовков C для запуска функций C.

Вилки

Из-за встряски в сообществе в 2022 году сейчас существует как минимум два форка проекта QB64. [10] Репозиторий Github «QB64 Team» больше не активен, и все новые разработки выполняются в новых форках:

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

  1. ^ Стефан Ричард (16 ноября 2007 г.). "В новостях". ПКОПИ! Выпуск №50 . Базовое программирование. Архивировано из оригинала 21 декабря 2009 г. Проверено 17 августа 2008 г.
  2. ^ Э.К.Виртанен (26 мая 2008 г.). «Интервью с Галеоном». ПКОПИ! Выпуск №70 . Базовое программирование. Архивировано из оригинала 21 августа 2008 г. Проверено 14 июля 2008 г.
  3. ^ «Скриншоты QB64 — Гориллы QB64/QBASIC в QB64» . Архивировано из оригинала 12 мая 2013 г. Проверено 27 июля 2010 г.
  4. ^ «Журнал изменений для версии 2.0 – QB64.org» . www.qb64.org . Архивировано из оригинала 10 октября 2021 г.
  5. ^ «Пожалуйста, больше ОШИБОК! (Серьезно)» . 3 марта 2008 г.
  6. ^ «Добро пожаловать на форум QB64!». ФОРУМ QBASIC . 30 сентября 2007 года . Проверено 28 января 2020 г.
  7. ^ Рогоз, Иван (07.04.2022). «Взрыв из прошлого — QBasic 4.5». Барн Лаборатория . Проверено 26 сентября 2023 г. QB64 поставляется с WYSIWYG-редактором IDE под названием InForm, который приближает его к повседневному использованию в качестве быстрого и несложного языка автоматизации для Windows.
  8. ^ «Журнал изменений для версии 1.4 – QB64.org» . www.qb64.org . Архивировано из оригинала 13 февраля 2020 г.
  9. ^ «Советник QB: режимы экрана 11, 12 и 13» . Корпорация Майкрософт. 1988. Архивировано из оригинала 5 января 2009 г. Проверено 25 июля 2008 г.
  10. ^ Доказано, Лиам (28 марта 2023 г.). «Ностальгия по VB? BASIC совсем не мертв». Регистр . Проверено 1 октября 2023 г. То же самое относится и к QB64, хотя раскол между его разработчиками еще не полностью улегся. Сообщество под названием QB64 Phoenix активно разрабатывает новую версию Phoenix Edition.

Внешние ссылки