PureBasic - PureBasic
Парадигма | структурированный , императивный , процедурный |
---|---|
Семья | БАЗОВЫЙ |
Разработано | Программное обеспечение Fantaisie |
Разработчик | Программное обеспечение Fantaisie |
Впервые появился | 1998 (AmigaOS) 2000 (Windows) |
Стабильный выпуск | 5.73 LTS / 23 ноября 2020 г .
|
Операционные системы |
кроссплатформенность : Microsoft Windows , Linux , macOS (активная), AmigaOS (прекращена, с открытым исходным кодом ) |
Лицензия | коммерческий |
Расширения имени файла | .pb, .pbi, .pbf, .pbp, .pbv |
Интернет сайт | www |
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_name
Map 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.
использованная литература
Общие ссылки
- Хейл Лайт, Майкл (2010). Руководство по анализу вредоносных программ для предотвращения вредоносных атак . Индианаполис, IN: John Wiley & Sons Inc., стр. 241. ISBN. 978-0-470-61303-0.
- Гальбрет, Ник (2002). Криптография для Интернета и приложений баз данных: разработка методов секретного и открытого ключа с помощью Java . Индианаполис, штат Индиана: Wiley. С. 300 . ISBN 978-0-471-21029-0.
- «Учимся взламывать код» . Manly Daily . 25 июня 2004 г.
- Жорж, Филипп. "Программирование на PureBasic" . ПРОГРАММЕЗ (141).
- Свобода, Любош (2012). Překvapivý PureBasic (Удивительный PureBasic: чешская электронная книга для потенциальных пользователей PureBasic) . п. 89.
внешние ссылки
- Статьи
- PureBasic - идеальный кроссплатформенный и собственный язык разработки (2015)
- Небольшой обзор PureBasic (2019)
- Библиотеки и архивы с открытым исходным кодом