Jump to content

QB64

QB64
Логотип QB64
Разработчик Роб Галлеон, QB64Team
Впервые появился 8 сентября 2007 г .; 16 лет назад ( 08.09.2007 )
Стабильная версия
2.0.2 / 7 ноября 2021 г .; 2 года назад ( 07.11.2021 )
ТЫ Microsoft Windows , Linux , MacOS
Лицензия С
Веб-сайт www .qb64
Под влиянием
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 года.

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

  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.

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

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 1b9cdb2b588688410394ee3ab57d333b__1696174020
URL1:https://arc.ask3.ru/arc/aa/1b/3b/1b9cdb2b588688410394ee3ab57d333b.html
Заголовок, (Title) документа по адресу, URL1:
QB64 - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)