Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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 - струны.

  • Примечание. 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_nameMap 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.

Ссылки [ править ]

  1. ^ Часто задаваемые вопросы о бессрочной лицензии
  2. ^ Домашняя страница PureBasic
  3. ^ PureBasic - Консоль
  4. ^ PureBasic - Гаджет
  5. ^ Сборка DLL
  6. ^ PureBasic не будет объектно-ориентированным
  7. ^ PureObject: поддержка PureBasic OOP
  8. ^ Учебник по ООП
  9. ^ Другой прекомпилятор ООП
  10. ^ PureVision , Профессиональный дизайн форм для PureBASIC.
  11. ^ ProGUI , библиотека DLL, содержащая более 100 хорошо документированных команд для быстрого включения богатых настраиваемых компонентов графического интерфейса в ваши приложения.
  12. ^ PureFORM , бесплатный конструктор форм.
  13. ^ Выпущен PureBasic 5.10
  14. ^ Английский форум , Официальный форум.
  15. ^ Страницы программного обеспечения Хорста Шеффера
  16. ^ PureArea
  17. ^ Архив кодов Андре Бира.

Общие ссылки [ править ]

  • Хейл Лайт, Майкл (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 с открытым исходным кодом Андре Бира