PureBasic - PureBasic

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

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

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

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

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

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

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

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

Пример Hello World

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

 MessageRequester("Message Box", "Hello World")

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

 MessageBox_(0, "Hello World", "Message Box", 0)

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

 OpenConsole()          ; Open a console window. 
 Print("Hello, World!")

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

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

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

 Procedure bubbleSort(Array a(1))
   Protected i, itemCount, hasChanged
  
   itemCount = ArraySize(a())
   Repeat
     hasChanged = #False
     itemCount - 1
     For i = 0 To itemCount
       If a(i) > a(i + 1)
         Swap a(i), a(i + 1)
         hasChanged = #True
       EndIf 
     Next  
   Until hasChanged = #False
 EndProcedure

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

;Create Window:
OpenWindow(0, #PB_Ignore, #PB_Ignore, 800, 600, "Simple Text Editor", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget)

;Add 2 menus:
CreateMenu(0, WindowID(0))
MenuItem(1, "&OK")
MenuItem(2, "&Cancel")

;Add Editor:
EditorGadget(0, 0, 0, 0, 0)
SetGadgetFont(0, LoadFont(0, "Courier New", 10))

;Process window messages until closed:
Repeat
    Select WaitWindowEvent()
    Case #PB_Event_Menu
        Select EventMenu()
        Case 1: MessageRequester("OK clicked directly or with '&' mnemonic.", GetGadgetText(0))
        Case 2: Break
        EndSelect
    Case #PB_Event_SizeWindow: ResizeGadget(0, 0, 0, WindowWidth(0, #PB_Window_InnerCoordinate), WindowHeight(0, #PB_Window_InnerCoordinate))
    Case #PB_Event_CloseWindow: Break
    EndSelect
ForEver

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

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

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

Типы данных

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

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

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

Structure type_name
   field_name.type ; Single field. Perhaps the structures attachment.
   field_name[count].type ; Static arrays.
   ; ... 
   ; Optional construction StructureUnion .. EndStructureUnion allows you
   ; to combine multiple fields into one area of memory
   ; that is sometimes required for the conversion types.
   StructureUnion
      type_name.type
      ; ... 
   EndStructureUnion 
EndStructure

Переменные могут быть одиночными (фактически стандартные переменные), динамическим массивом (объявленным с помощью , связным списком ( ), ассоциативным массивом (в новых версиях языка) ( ) Dim var_name.type_name (size1, size2, ... )List() var_name.type_nameMap var_name.type_name()

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

PureBasic имеет собственный конструктор форм, помогающий создавать формы для приложений, но доступны и другие сторонние решения. Первоначальный неинтегрированный Visual Designer был заменен новым интегрированным конструктором форм 14 февраля 2013 года.

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

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

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

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

  • Уиллоуби, Гэри (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.

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

Общие ссылки

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

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