PureBasic - PureBasic

PureBasic
PureBasic IDE 5.10.png
PureBasic VD.png
Парадигмаструктурированный, императив, процедурный
СемьяБАЗОВЫЙ
РазработаноПрограммное обеспечение Fantaisie
РазработчикПрограммное обеспечение Fantaisie
Впервые появился1998 (AmigaOS)
2000 (Windows)
Стабильный выпуск
5.73 LTS / 23 ноября 2020 г.; 3 дня назад (2020-11-23)
Операционные системыкросс-платформенный: Майкрософт Виндоус, Linux, macOS (активный)
AmigaOS (снято с производства, Открытый исходный код )
Лицензиякоммерческий
Расширения имени файла.pb, .pbi, .pbf, .pbp, .pbv
Интернет сайтwww.purebasic.com

PureBasic это коммерчески распространенный процедурный компьютер язык программирования и интегрированная среда разработки на основе БАЗОВЫЙ и разработан Программное обеспечение Fantaisie для Windows 32/64-бит, Linux 32/64-бит и macOS. An Amiga версия доступна, хотя она была прекращена, и некоторые ее части выпущены как Открытый исходный код. Первый публичный выпуск PureBasic для Windows состоялся 17 декабря 2000 года. С тех пор он постоянно обновляется.

PureBasic имеет «пожизненную лицензионную модель». Как указано на веб-сайте, первый пользователь PureBasic (который зарегистрировался в 1998 году) все еще имеет свободный доступ к новым обновлениям, и это не изменится.[1]

PureBasic компилируется прямо в x86, x86-64, PowerPC или 680x0 наборы команд, генерирующие небольшие автономные исполняемые файлы и DLL которым не нужны библиотеки времени выполнения, кроме стандартных системных библиотек. Программы, разработанные без использования специфичных для платформы интерфейсы прикладного программирования (API) можно легко построить из одного исходного файла с небольшими изменениями или без них.

PureBasic поддерживает встроенная сборка, позволяя разработчику включать FASM команды ассемблера в исходном коде PureBasic с использованием переменных, объявленных в исходном коде PureBasic, что позволяет опытным программистам повысить скорость критических по скорости участков кода. PureBasic поддерживает и интегрировал ОГРЭ 3D-среда. Другие 3D-среды, такие как Irrlicht Engine неофициально поддерживаются.

Язык программирования

Характеристики

PureBasic - это собственный кроссплатформенный 32-битный и 64-битный компилятор BASIC. В настоящее время поддерживаются системы Windows, Linux, macOS. Версия AmigaOS является устаревшей и имеет открытый исходный код. Компилятор создает собственные исполняемые файлы, а синтаксис PureBasic прост и понятен, сравним с обычным языком C без скобок, с собственной обработкой строк в Юникоде и большой библиотекой встроенных функций поддержки.[2] Может компилировать консольные приложения,[3] Приложения с графическим интерфейсом,[4] и файлы DLL.[5]

Пример Hello World

Следующая единственная строка кода PureBasic создаст автономный исполняемый файл x86 (4,5 КиБ (4 608 байт) в версии для Windows), который отображает окно сообщения с текстом «Привет мир ".

 MessageRequester("Окно сообщения", "Привет мир")

И следующий вариант того же кода, который вместо этого использует встроенный Windows API вызов без объявления или других внешних ссылок, создаст автономный исполняемый файл x86 для Windows еще меньшего размера 2,0 KiB (2048 байт).

 Окно сообщения_(0, "Привет мир", "Окно сообщения", 0)

Ниже приводится консольная версия примера Hello World.

 OpenConsole()          ; Откройте окно консоли.  Распечатать("Привет мир!")

Процедурное программирование

PureBasic - это язык «BASIC второго поколения», поддерживающий структурированные условные выражения и циклы, а также ориентированное на процедуры программирование. Пользователь не обязан использовать процедуры, поэтому программист может выбрать стиль кодирования, который включает Goto, Gosub Label, и Вернуть.

Ниже приведен пример процедуры сортировки массива, хотя SortArray теперь является встроенной функцией PureBasic.

 1  Процедура bubbleSort(Массив а(1)) 2    Защищено я, itemCount, hasChanged 3    4    itemCount = ArraySize(а()) 5    Повторение 6      hasChanged = #Ложь 7      itemCount - 1 8      Для я = 0 Чтобы itemCount 9        Если а(я) > а(я + 1)10          Своп а(я), а(я + 1)11          hasChanged = #Правда12        Конец Если 13      Следующий  14    До тех пор hasChanged = #Ложь15  Конец процедуры

Ниже приведен пример программы, отображающей большой текстовый редактор с двумя пунктами меню.

; Создать окно:Открытое окно(0, #PB_Ignore, #PB_Ignore, 800, 600, «Простой текстовый редактор», #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget); Добавьте 2 меню:CreateMenu(0, WindowID(0))Пункт меню(1, "&ОК")Пункт меню(2, "&Отмена"); Добавить редактор:EditorGadget(0, 0, 0, 0, 0)SetGadgetFont(0, LoadFont(0, "Новый Курьер", 10)); Обработка оконных сообщений до закрытия:Повторение    Выбрать WaitWindowEvent()    случай #PB_Event_Menu        Выбрать EventMenu()        случай 1: MessageRequester(«OK нажал напрямую или с мнемоникой '&'»., GetGadgetText(0))        случай 2: Перерыв        КонецВыбрать    случай #PB_Event_SizeWindow: ResizeGadget(0, 0, 0, WindowWidth(0, #PB_Window_InnerCoordinate), WindowHeight(0, #PB_Window_InnerCoordinate))    случай #PB_Event_CloseWindow: Перерыв    КонецВыбратьНавсегда

Обратите внимание, что PureBasic не избегает двойных кавычек в строках, поэтому они должны быть объединены с Chr (34).

Объектно-ориентированного программирования

Фред, разработчик PureBasic, заявил, что PureBasic никогда не будет объектно-ориентированный.[6] Однако многие пользователи создали объектно-ориентированные системы поддержки.[7][8][9]

Типы данных

Переменный тип данных указывается при первом использовании (и при желании - в будущем) и отделяется от имени точки. Есть набор основных типов - .f, .d (числа с плавающей запятой и двойные числа), .b, .c, .w, .l, .q (целые числа - от однобайтовых и 8-ми байтовых), .s - струны.

ТипСуффиксИспользование памятиЧисловой диапазон
Байтб1 байт (8 бит)−128 ... +127
Asciiа1 байт (8 бит)0 ... +255
символc1 байт (8 бит) (ascii)0 ... +255
словош2 байта (16 бит)−32768 ... +32767
Unicodeты2 байта (16 бит)0 ... +65535
символc2 байта (16 бит) (юникод)0 ... +65535
Длиннаял4 байта (32 бита)−2147483648 ... +2147483647
Целое числоя4 байта (32 бита) x86−2147483648 ... +2147483647
Плаватьж4 байта (32 бита)В зависимости от соотношения десятичного числа.
Целое числоя8 байт (64 бит) x64−9223372036854775808 ... +9223372036854775807
Quadq8 байт (64 бита)−9223372036854775808 ... +9223372036854775807
Двойнойd8 байт (64 бита)В зависимости от соотношения десятичного числа.
Строкаs(Длина строки + 1) * SizeOf (Символ)Безлимитный.
Фиксированная строкаs {длина}(Длина строки) * SizeOf (Символ)Безлимитный.
  • Заметка: Лен (строка) используется для подсчета длины строки, не будет превышать первый нулевой символ (Chr (0)).

Помимо базовых типов, пользователь может определить тип конструкции через

Структура type_name   field_name.тип ; Одно поле. Возможно крепление конструкций.   field_name[считать].тип ; Статические массивы.   ; ...    ; Дополнительная конструкция StructureUnion .. EndStructureUnion позволяет   ; объединить несколько полей в одну область памяти   ; что иногда требуется для типов преобразования.   StructureUnion      type_name.тип      ; ...    EndStructureUnion EndStructure

Переменные могут быть одиночными (фактически стандартные переменные), динамическими массивами (объявленными с использованием Тусклый var_name.type_name (размер1, размер2, ... ), связанный список (Список() var_name.type_name), ассоциативный массив (в новых версиях языка) (карта var_name.type_name())

Конструктор форм RAD

PureBasic имеет собственный форма дизайнер, чтобы помочь в создании форм для приложений, но также доступны другие сторонние решения.[10][11][12] Оригинальный неинтегрированный Визуальный дизайнер был заменен на новый интегрированный Конструктор форм 14 февраля 2013 г.[13]

Сообщество пользователей

PureBasic представляет собой онлайн-форум, где пользователи могут задавать вопросы и делиться знаниями. 6 мая 2013 года англоязычный форум насчитывал 4769 участников и содержал 44 043 темы, в которых с 17 мая 2002 года было 372 200 сообщений.[14]

Многочисленные сайты по обмену кодом показывают, что PureBasic используется для создания инструментов.[15] и игры быстро и легко,[16] и делитесь большими объемами открытого исходного кода.[17]

дальнейшее чтение

  • Уиллоуби, Гэри (2006). Purebasic: Руководство по компьютерному программированию для новичков. ISBN  1-4276-0428-2.
  • Логсдон, Джон. Программирование 2D-игр с прокруткой.Эта книга теперь доступна для свободного скачивания
  • Базовые компиляторы: QuickBASIC, PureBasic, PowerBASIC, Blitz Basic, XBasic, Turbo Basic, Visual Basic, FutureBASIC, REALbasic, FreeBASIC. ISBN  1-155-32445-5.

использованная литература

  1. ^ Вопросы-Ответы сведения о бессрочной лицензии
  2. ^ Домашняя страница PureBasic
  3. ^ PureBasic - Консоль
  4. ^ PureBasic - Гаджет
  5. ^ Сборка DLL
  6. ^ PureBasic не будет объектно-ориентированным
  7. ^ PureObject: поддержка PureBasic OOP
  8. ^ Учебник по ООП
  9. ^ Другой прекомпилятор ООП
  10. ^ PureVision, Профессиональный дизайн формы для PureBASIC.
  11. ^ ProGUI, Библиотека DLL, содержащая более 100 хорошо задокументированных команд для быстрого включения богатых настраиваемых компонентов графического интерфейса в ваши приложения.
  12. ^ PureFORM, Бесплатный конструктор форм.
  13. ^ Выпущен PureBasic 5.10
  14. ^ Английский форум, Официальный форум.
  15. ^ Страницы программного обеспечения Хорста Шеффера
  16. ^ PureArea
  17. ^ Архив кодов Андре Бира.

Общие ссылки

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

Статьи
Библиотеки и архивы с открытым исходным кодом