Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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.

Ссылки [ править ]

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

Внешние ссылки [ править ]

  • Официальный веб-сайт
  • qb64 на GitHub