Описание тега qb64
Обзор
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
VorbisWAV
Он также имеет библиотеки, позволяющие пользователям
- используйте графику с более высоким разрешением, чем
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. Ежедневные сборки можно посмотреть на официальном сайте.
Ресурсы
- Официальный веб - сайт в QB64.net для программы
- QB64.org, партнерский сайт, поддерживаемый членами сообщества, активно участвующими в кодовой базе компилятора.
- Официальный Wiki для информации обо всех командах и функциях.
- Официальный форум для обсуждения QB64
- GitHub Repository
Вопросы
Вопросы, заданные в [QB64]
Тег должен соответствовать объему и возможностям этого языка / компилятора. Они могут быть связаны с
- Сборка и компиляция
- Исполнение
- Обработка файлов
URL
s иHTTP
- Отладочный код, написанный для достижения вышеуказанного
Вопросы, требующие помощи по отладке, должны содержать фрагмент кода на QB64. Если код не содержит команд, которые были расширены в QB64 из QBasic, то также может быть дана ссылка на код в Repl.it Online QBasic Compiler. Вопрос также может быть помечен[QBasic]
или [QuickBasic]
теги, если программа с ними совместима.
Чат
Присоединяйтесь к обсуждению в этом чате по переполнению стека