Бесплатный компилятор QuickBasic 4.5

Обзор

QB64 - это современная версия языка программирования Basic и бесплатный компилятор, который позволяет запускать программы, созданные с использованием Quick Basic 4.5 или Qbasic, в Windows XP, Vista, 7, 8, 8.1 и 10, Linux и Mac OSX.

QB64 - это эмиттер C++, который интегрирован с компилятором C++ для обеспечения компиляции с помощью кода C++ и оптимизации GCC.

Основная информация

Разработчик - Galleon, QB64 Team

Год выпуска - 2007

Лицензия - LGPLv2.1

Сходство с QBasic и QuickBasic

QB64 может компилировать и запускать все программы, написанные на QBasic или QuickBasic, так как его синтаксис полностью обратно совместим с QuickBASIC.

Он реализует большинство операторов QBasic и может запускать многие программы QBasic, включая игры Microsoft QBasic Gorillas и Nibbles. Кроме того, QB64 был разработан, чтобы содержать IDE, похожую на QBASIC IDE.

Он также может имитировать некоторые DOS/x86 специфические особенности, такие как INT 33ч доступ к мыши, SHELL и таймеры.

Расширения QBasic и QuickBasic

QB64 работает на 32- или 64-битных машинах и может компилировать приложения для Windows, Linux, MacOS X и даже Android. Он имеет много новых функций, таких как

  • стереозвук
  • улучшенная графика
  • Возможности Интернета TCP/IP.

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

QB64 расширяет язык QuickBASIC, включая 64-bitтипы данных. Он добавляет новые типы данных, включая

  • _BIT
  • _BYTE
  • _INTEGER64
  • _FLOAT
  • Беззнаковые типы данных.

Новые типы данных имеют суффиксы, как и традиционные типы данных BASIC.

QB64 также включает в себя аудио библиотеку, которая позволяет воспроизводить наиболее распространенные аудиоформаты, включая

  • MP3
  • OGG Vorbis
  • WAV

Он также имеет библиотеки, позволяющие пользователям

  • используйте графику с более высоким разрешением, чем 640 × 480 автор: QuickBASIC
  • использовать разные шрифты
  • печатать изображения в следующих форматах:
    • BMP
    • PNG
    • JPEG

Это также позволяет использовать 32-bit цвета в отличие от ограниченного 256 (или 16) изначально предложенные цвета.

Программисту также не нужно указывать, какие библиотеки программирования включать, поскольку QB64 делает это автоматически. У программиста есть возможность включить собственную библиотеку через$INCLUDE так же, как это сделал QuickBASIC.

Синтаксис

Базовая программа Hello World:

PRINT "Hello World!"

Номера строк писать не нужно. Операторы заканчиваются новой строкой или двоеточием (:).

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

CLS
S$ = "Hello, World!"
DEF SEG = &HB800 'sets the segment to video memory
FOR J = 1 TO 15
  FOR I = 1 TO LEN(S$)
    POKE J * 160 + (I - 1) * 2, ASC(MID$(S$, I, 1))'character
    POKE J * 160 + (I - 1) * 2 + 1, (J + 128)
  NEXT
NEXT

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

sound_effect& = _SNDOPEN("sound.wav")
_SNDPLAY sound_effect&
imagename& = _LOADIMAGE("image__name.png")

В QB64 комментарии даются в одинарной кавычке (') с начала

PRINT "Something!" 'This is a comment
'Comments can be put anywhere

Двойные кавычки (") используются в строках и не могут быть экранированы. Чтобы поместить в строку двойные кавычки, необходимо вывести символ ASCII.

PRINT "Mark said, "I am fine!""

Это приведет к ошибке, поскольку будет проанализировано как

1st String        | "Mark said,"
Variable (INTEGER)| I
Variable (INTEGER)| am
Variable (SINGLE) | fine!
2nd String        | ""

Но поскольку строки и переменные не объединены точкой с запятой, будет выдана ошибка. Вместо этого вы должны сделать это:

PRINT "Mark said, "; CHR$(34); "I am fine!"; CHR$(34)

Это будет проанализировано как

1st String         | "Mark said, "
                     T;
ASCII Character 34 | "
                     ;
2nd String         | "I am fine!"
                     ;
ASCII Character 34 | "

Таким образом, это будет выводиться на

Mark said, "I am fine!"

Однако нормально помещать в строки одинарные кавычки, как в

PRINT "Let's Go and ride John's bicycle"

Будет выводиться на

Let's Go and ride John's bicycle

История

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

После версии 0.63 QB64 смог скомпилировать себя, поэтому обычные ограничения памяти больше не применялись.

Всю информацию о различных версиях и сравнениях можно посмотреть на QB64.net/Wiki. Различные исторические версии QB64 можно скачать на QB64.org.

Библиотеки

По версии 0.954, то SDLверсия QB64 снята с производства. Текущие (и будущие) версии QB64 интегрируютFreeGLUTза его графику и текст. Ежедневные сборки создаются с дополнениями и исправлениями к базе кода, размещенной на GitHub.

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

Список полезных библиотек QBasic можно посмотреть на сайте Пита QB.

Исходный код

QB64 имеет открытый исходный код, и исходный код можно увидеть на GitHub. Многие пользователи постоянно создают свои собственные версии QB64 с исправлениями buf и т.д., которые называются Daily Builds. Ежедневные сборки можно посмотреть на официальном сайте.

Ресурсы

  1. Официальный веб - сайт в QB64.net для программы
  2. QB64.org, партнерский сайт, поддерживаемый членами сообщества, активно участвующими в кодовой базе компилятора.
  3. Официальный Wiki для информации обо всех командах и функциях.
  4. Официальный форум для обсуждения QB64
  5. GitHub Repository

Вопросы

Вопросы, заданные в [QB64]Тег должен соответствовать объему и возможностям этого языка / компилятора. Они могут быть связаны с

  • Сборка и компиляция
  • Исполнение
  • Обработка файлов
  • URLs и HTTP
  • Отладочный код, написанный для достижения вышеуказанного

Вопросы, требующие помощи по отладке, должны содержать фрагмент кода на QB64. Если код не содержит команд, которые были расширены в QB64 из QBasic, то также может быть дана ссылка на код в Repl.it Online QBasic Compiler. Вопрос также может быть помечен[QBasic] или [QuickBasic] теги, если программа с ними совместима.

Чат

Присоединяйтесь к обсуждению в этом чате по переполнению стека