Эта статья включает в себя список общих ссылок , но он остается в значительной степени непроверенным, поскольку в нем отсутствует достаточное количество соответствующих встроенных ссылок . ( Июнь 2011 г. ) ( Узнайте, как и когда удалить этот шаблон сообщения ) |
Парадигма | структурированный , императивный , процедурный |
---|---|
Семья | БАЗОВЫЙ |
Разработано | Программное обеспечение 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 году) все еще имеет свободный доступ к новым обновлениям, и это не изменится. [1]
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 и большой библиотекой встроенных функций поддержки. [2] Он может компилировать консольные приложения, [3] приложения с графическим интерфейсом, [4] и файлы DLL. [5]
Пример Hello World [ править ]
Следующая единственная строка кода PureBasic создаст автономный исполняемый файл x86 (4,5 КиБ (4 608 байт) в версии для Windows), который отображает окно сообщения с текстом « Hello World ».
MessageRequester ( «Окно сообщения» , «Привет, мир» )
И следующий вариант того же кода, который вместо этого использует встроенный вызов Windows API без необходимости в объявлениях или других внешних ссылках, создаст автономный исполняемый файл x86 для Windows еще меньшего размера 2,0 КиБ (2048 байт).
MessageBox_ ( 0 , «Привет, мир» , «Окно сообщения» , 0 )
Ниже приводится консольная версия примера Hello World.
OpenConsole () ; Откройте окно консоли. Печать ( «Привет, мир!» )
Процедурное программирование [ править ]
PureBasic - это язык «BASIC второго поколения», поддерживающий структурированные условные выражения и циклы, а также ориентированное на процедуры программирование. От пользователя не требуется использовать процедуры, поэтому программист может выбрать стиль кодирования, который включает Goto, Gosub Label и Return .
Ниже приведен пример процедуры сортировки массива, хотя SortArray теперь является встроенной функцией PureBasic.
Процедура bubbleSort ( массив a ( 1 )) Защищено i , itemCount , hasChanged itemCount = Размер массива ( a ()) Повторить hasChanged = # Ложь itemCount - 1 Для i = 0 To itemCount Если a ( i ) > a ( i + 1 ) Поменять местами a ( i ), a ( i + 1 ) hasChanged = # Истина Конец Если Следующий Пока hasChanged = # False Конец процедуры
Ниже приведен пример программы, отображающей большой текстовый редактор с двумя пунктами меню.
; Создать окно: OpenWindow ( 0 , # PB_Ignore , # PB_Ignore , 800 , 600 , «Простой текстовый редактор» , # PB_Window_SystemMenu | # PB_Window_MinimizeGadget | # PB_Window_MaximizeGadget | # PB_Window_SizeGadget ); Добавить 2 меню: CreateMenu ( 0 , WindowID ( 0 )) MenuItem ( 1 , «& OK» ) MenuItem ( 2 , «& Cancel» ); Добавить редактор: EditorGadget ( 0 , 0 , 0 , 0 , 0 ) SetGadgetFont ( 0 , LoadFont ( 0 , "Courier New" , 10 )); Обработка сообщений окна до закрытого: Повтор Выбор WaitWindowEvent () Case # PB_Event_Menu Выбор EventMenu () Случай 1 : MessageRequester ( "OK щелкнул непосредственно или с '&' мнемической". , GetGadgetText ( 0 )) Случай 2 : Перерыв EndSelect Case # PB_Event_SizeWindow : ResizeGadget ( 0 , 0 , 0 , WindowWidth ( 0 , #PB_Window_InnerCoordinate ), WindowHeight ( 0 , # PB_Window_InnerCoordinate )) Дело # PB_Event_CloseWindow : Перерыв EndSelect ForEver
Обратите внимание, что 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 |
Юникод | ты | 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) ).
Помимо основных типов, пользователь может определить тип конструкции через
Структура type_name field_name.type; Одно поле. Возможно крепление конструкций. имя_поля [количество] .тип; Статические массивы. ; ... ; Дополнительная конструкция StructureUnion .. EndStructureUnion позволяет вам ; объединить несколько полей в одну область памяти ; что иногда требуется для типов преобразования. 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 имеет собственный конструктор форм, помогающий создавать формы для приложений, но доступны и другие сторонние решения. [10] [11] [12] 14 февраля 2013 года исходный неинтегрированный Visual Designer был заменен новым интегрированным конструктором форм . [13]
Сообщество пользователей [ править ]
PureBasic представляет собой онлайн-форум, где пользователи могут задавать вопросы и делиться знаниями. 6 мая 2013 года англоязычный форум насчитывал 4 769 участников и содержал 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 (Удивительный PureBasic: чешская электронная книга для потенциальных пользователей PureBasic) . п. 89.
Внешние ссылки [ править ]
- Официальный веб-сайт
- Официальные форумы Purebasic (английский)
- PureBasic в Керли
- Статьи
- PureBasic - идеальный кроссплатформенный и собственный язык разработки (2015)
- Небольшой обзор PureBasic (2019)
- Библиотеки и архивы с открытым исходным кодом
- Архив PB с открытым исходным кодом Андре Бира