PureBasic - PureBasic
Эта статья включает в себя список общих использованная литература, но он остается в основном непроверенным, потому что ему не хватает соответствующих встроенные цитаты.Июнь 2011 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
Парадигма | структурированный, императив, процедурный |
---|---|
Семья | БАЗОВЫЙ |
Разработано | Программное обеспечение Fantaisie |
Разработчик | Программное обеспечение Fantaisie |
Впервые появился | 1998 (AmigaOS) 2000 (Windows) |
Стабильный выпуск | 5.73 LTS / 23 ноября 2020 г. |
Операционные системы | кросс-платформенный: Майкрософт Виндоус, Linux, macOS (активный) AmigaOS (снято с производства, Открытый исходный код ) |
Лицензия | коммерческий |
Расширения имени файла | .pb, .pbi, .pbf, .pbp, .pbv |
Интернет сайт | www |
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 |
символ | c | 1 байт (8 бит) (ascii) | 0 ... +255 |
слово | ш | 2 байта (16 бит) | −32768 ... +32767 |
Unicode | ты | 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 (Символ) | Безлимитный. |
- Заметка: Лен (строка) используется для подсчета длины строки, не будет превышать первый нулевой символ (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.
использованная литература
- ^ Вопросы-Ответы сведения о бессрочной лицензии
- ^ Домашняя страница PureBasic
- ^ PureBasic - Консоль
- ^ PureBasic - Гаджет
- ^ Сборка DLL
- ^ PureBasic не будет объектно-ориентированным
- ^ PureObject: поддержка PureBasic OOP
- ^ Учебник по ООП
- ^ Другой прекомпилятор ООП
- ^ PureVision, Профессиональный дизайн формы для PureBASIC.
- ^ ProGUI, Библиотека DLL, содержащая более 100 хорошо задокументированных команд для быстрого включения богатых настраиваемых компонентов графического интерфейса в ваши приложения.
- ^ PureFORM, Бесплатный конструктор форм.
- ^ Выпущен PureBasic 5.10
- ^ Английский форум, Официальный форум.
- ^ Страницы программного обеспечения Хорста Шеффера
- ^ PureArea
- ^ Архив кодов Андре Бира.
Общие ссылки
- Хейл Лайт, Майкл (2010). Руководство по анализу вредоносных программ: инструменты для предотвращения вредоносных атак. Индианаполис, IN: John Wiley & Sons Inc., стр. 241. ISBN 0-470-61303-3.
- Гальбрит, Ник (2002). Криптография для Интернета и приложений баз данных: разработка методов секретного и открытого ключа с помощью Java. Индианаполис, штат Индиана: Wiley. стр.300. ISBN 978-0-471-21029-0.
- «Учимся взламывать код». Manly Daily. 25 июня 2004 г.
- Жорж, Филипп. "Программирование на PureBasic". ПРОГРАММЕЗ (141).
- Свобода, Любош (2012). Překvapivý PureBasic (Surprising PureBasic: чешская электронная книга для потенциальных пользователей PureBasic). п. 89.
внешние ссылки
- Статьи
- PureBasic - идеальный кроссплатформенный и собственный язык разработки (2015)
- Небольшой обзор PureBasic (2019)
- Библиотеки и архивы с открытым исходным кодом