ЧистыйБазовый

Процедурный язык программирования

ЧистыйБазовый
ПарадигмаСтруктурированный , императивный , процедурный
СемьяБАЗОВЫЙ
РазработаноПрограммное обеспечение Fantaisie
РазработчикПрограммное обеспечение Fantaisie
Впервые появился1998 (1998)
Стабильный релиз
6.12 LTS / 13 сентября 2024 г. ; 4 месяца назад (2024-09-13)
ОСWindows , Linux , macOS , ОС Raspberry Pi , AmigaOS
ЛицензияПробная версия
Расширения имени файла.pb, .pbi, .pbf, .pbp
Веб-сайтwww.purebasic.com
PureBasic IDE 5.10

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

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

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

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

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

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

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

Пример «Привет, мир»

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

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

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

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

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

 OpenConsole () ; Открыть окно консоли. Print ( "Hello, World!" ) Delay ( 5000 ) ; Пауза на 5 секунд    

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

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

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

 Процедура bubbleSort ( Массив a ( 1 ))   Защищено i , itemCount , hasChanged     itemCount = ArraySize ( a ())   Повторить hasChanged = # Ложь   Количество предметов - 1   Для i = 0 Для itemCount      Если а ( я ) > а ( я + 1 )      Поменять местами a ( i ), a ( i + 1 )     hasChanged = # Истина   EndIf  Следующий  Пока hasChanged = # Ложь    КонецПроцедуры

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

; Создать окно : 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,0 ) SetGadgetFont ( 0 , LoadFont ( 0 , " Courier New " , 10 ) )       ;Обрабатывать сообщения окна до закрытия: Повторить Select WaitWindowEvent () Случай # PB_Event_Menu Select EventMenu () Случай 1 : MessageRequester ( "OK нажато напрямую или с помощью мнемоники '&'." , GetGadgetText ( 0 )) Случай 2 : Break EndSelect Случай # PB_Event_SizeWindow : ResizeGadget ( 0 , 0 , 0 , WindowWidth ( 0 , # PB_Window_InnerCoordinate ), WindowHeight ( 0 , # PB_Window_InnerCoordinate )) Случай # PB_Event_CloseWindow : Break 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
Характерс1 байт (8 бит) (ascii)0 ... +255
Словож2 байта (16 бит)−32768 ... +32767
Юникодты2 байта (16 бит)0 ... +65535
Характерс2 байта (16 бит) (юникод)0 ... +65535
Длинныйл4 байта (32 бита)−2147483648 ... +2147483647
Целое числоя4 байта (32 бита) x86−2147483648 ... +2147483647
Плаватьф4 байта (32 бита)В зависимости от соотношения десятичных чисел.
Целое числоя8 байт (64 бита) x64−9223372036854775808 ... +9223372036854775807
Квадд8 байт (64 бита)−9223372036854775808 ... +9223372036854775807
Двойнойг8 байт (64 бита)В зависимости от соотношения десятичных чисел.
Нитьс(Длина строки + 1) * SizeOf (Символ)Нет ограничений.
Фиксированная строкаs{длина }(Длина строки) * SizeOf(Символ)Нет ограничений.
  • Len(String), используемая для подсчета длины строки, не будет превышать первый нулевой символ ( Chr(0) ).

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

Имя_типа_структуры field_name.type ; Одно поле. Возможно, присоединение структур. field_name[count].type ; Статические массивы.  ; ...  ; Необязательная конструкция StructureUnion.. EndStructureUnion позволяет  ; для объединения нескольких полей в одну область памяти  ; это иногда требуется для типов преобразования. СтруктураСоюз имя_типа.тип  ; ... EndStructureUnionКонецСтруктуры

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

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

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

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

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

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

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

  • Уиллоуби, Гэри (2006). Purebasic: Руководство для начинающих по программированию . Aardvark Global. 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. ^ FAQ подробности о бессрочной лицензии
  2. ^ Домашняя страница PureBasic
  3. ^ PureBasic - Консоль
  4. ^ PureBasic - Гаджет
  5. ^ Создание DLL
  6. ^ PureBasic не будет объектно-ориентированным
  7. ^ PureObject: поддержка PureBasic ООП
  8. ^ Учебник ООП
  9. ^ Еще один ООП-прекомпилятор
  10. ^ PureVision, профессиональный дизайн форм для PureBASIC.
  11. ^ ProGUI, библиотека DLL, включающая более 100 хорошо документированных команд для быстрого включения расширенных, настраиваемых компонентов графического интерфейса в ваши приложения.
  12. ^ PureFORM, бесплатный конструктор форм.
  13. ^ Выпущен PureBasic 5.10
  14. ^ Английский форум, Официальный форум.
  15. ^ Страницы программного обеспечения Хорста Шеффера
  16. ^ Чистая область
  17. ^ Архив кода Андре Бира.

Общие ссылки

  • Хейл Лиг, Майкл (2010). Справочник по анализу вредоносных программ. Инструменты для предотвращения вредоносных атак . Индианаполис, Индиана: 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 (на английском языке)
Статьи
  • PureBasic — идеальный кроссплатформенный и собственный язык разработки (2015)
  • Небольшой обзор PureBasic (2023)
Библиотеки и архивы открытого исходного кода
  • Архив открытого исходного кода PB Андре Бира
Retrieved from "https://en.wikipedia.org/w/index.php?title=PureBasic&oldid=1268465970"