PureBasic
Эта статья включает список общих ссылок , но в ней отсутствуют достаточные соответствующие встроенные цитаты . ( июнь 2011 г. ) |
Парадигма | Структурированный , императивный , процедурный. |
---|---|
Семья | БАЗОВЫЙ |
Разработано | Фэнтези-программное обеспечение |
Разработчик | Фэнтези-программное обеспечение |
Впервые появился | 1998 |
Стабильная версия | 6.11 ЛТС
/ 5 июня 2024 г |
ТЫ | Windows , Linux , macOS , ОС Raspberry Pi , AmigaOS |
Лицензия | Пробная версия |
Расширения имен файлов | .pb, .pbi, .pbf, .pbp |
Веб-сайт | www |
PureBasic — это коммерчески распространяемый процедурный и язык программирования интегрированная среда разработки на основе BASIC , разработанный Fantaisie Software для Windows , Linux и macOS . Доступна версия для Amiga , хотя ее выпуск был прекращен, а некоторые ее части выпущены с открытым исходным кодом . Первый общедоступный выпуск PureBasic для Windows состоялся 17 декабря 2000 года. С тех пор он постоянно обновляется.
PureBasic имеет «модель пожизненной лицензии». Как указано на сайте, первый пользователь PureBasic (зарегистрированный в 1998 году) по-прежнему имеет бесплатный доступ к новым обновлениям, и это не изменится. [ 1 ]
PureBasic компилируется непосредственно в IA-32 , x86-64 , PowerPC или 680x0 наборы инструкций , генерируя небольшие автономные исполняемые файлы и библиотеки DLL , которым не нужны библиотеки времени выполнения, кроме стандартных системных библиотек. (API) для конкретной платформы, Программы, разработанные без использования интерфейсов прикладного программирования можно легко собрать из одного и того же исходного файла с небольшими изменениями или без них.
PureBasic поддерживает встроенную ассемблерную сборку , что позволяет разработчику включать команды ассемблера FASM в исходный код PureBasic, используя при этом переменные, объявленные в исходном коде PureBasic, что позволяет опытным программистам повысить скорость критичных по скорости разделов кода. PureBasic поддерживает и интегрировал 3D-среду OGRE . Другие 3D-среды, такие как Irrlicht Engine, поддерживаются неофициально.
Язык программирования
[ редактировать ]Характеристики
[ редактировать ]PureBasic — это собственный кроссплатформенный 32-битный и 64-битный компилятор BASIC. В настоящее время поддерживаются системы Windows, Linux, macOS. Версия AmigaOS является устаревшей и имеет открытый исходный код. Компилятор создает собственные исполняемые файлы, а синтаксис PureBasic прост и понятен, сравним с обычным C без скобок, со встроенной обработкой строк в Юникоде и большой библиотекой встроенных вспомогательных функций. [ 2 ] Он может компилировать консольные приложения, [ 3 ] приложения с графическим интерфейсом, [ 4 ] и DLL-файлы. [ 5 ]
Привет, мир, пример
[ редактировать ]Следующая единственная строка кода PureBasic создаст автономный исполняемый файл x86 (4,5 КиБ (4608 байт) в версии для Windows), который отображает окно сообщения с текстом « Hello World ».
MessageRequester("Message Box", "Hello World")
А следующий вариант того же кода, который вместо этого использует встроенный вызов Windows API без необходимости в объявлениях или других внешних ссылках, создаст еще меньший по размеру 2,0 КиБ (2048 байт) автономный исполняемый файл x86 для Windows.
MessageBox_(0, "Hello World", "Message Box", 0)
Ниже приведена консольная версия примера Hello World.
OpenConsole() ; Open a console window.
Print("Hello, World!")
Delay(5000) ; Pause for 5 seconds
Процедурное программирование
[ редактировать ]PureBasic — это язык BASIC второго поколения со структурированными условиями и циклами, а также поддерживаемым процедурно-ориентированным программированием. Пользователю не требуется использовать процедуры, поэтому программист может выбрать стиль кодирования, включающий Goto, Gosub Label и Возвращаться .
Ниже приведен пример процедуры сортировки массива, хотя 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 не экранирует двойные кавычки в строках, поэтому их необходимо объединить с помощью Хр(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), используемый для подсчета длины строки, не превышает первого нулевого символа ( Хр(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()
)
Дизайнер форм РАД
[ редактировать ]PureBasic имеет собственный конструктор форм , помогающий создавать формы для приложений, но также доступны и другие сторонние решения. [ 10 ] [ 11 ] [ 12 ] Исходный неинтегрированный визуальный дизайнер был заменен новым интегрированным дизайнером форм 14 февраля 2013 года. [ 13 ]
Сообщество пользователей
[ редактировать ]PureBasic предоставляет пользователям онлайн-форум, где они могут задавать вопросы и делиться знаниями. По состоянию на 6 мая 2013 года англоязычный форум насчитывал 4769 участников и содержал 44 043 темы, содержащие 372 200 сообщений с 17 мая 2002 года. [ 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.
- ^ Учебник ООП
- ^ Еще один прекомпилятор ООП
- ^ PureVision , Профессиональный дизайн форм для PureBASIC.
- ^ ProGUI , библиотека DLL, содержащая более 100 хорошо документированных команд для быстрого включения богатых настраиваемых компонентов графического интерфейса в ваши приложения.
- ^ PureFORM , бесплатный конструктор форм.
- ^ Выпущен PureBasic 5.10.
- ^ Английский форум , Официальный форум.
- ^ Страницы программного обеспечения Хорста Шеффера
- ^ ЧистаяОбласть
- ^ Архив кода Андре Бира.
Общие ссылки
[ редактировать ]- Хейл Лайт, Майкл (2010). Справочник аналитиков вредоносного ПО. Инструменты для предотвращения вредоносных атак . Индианаполис, Индиана: John Wiley & Sons Inc., с. 241. ИСБН 978-0-470-61303-0 .
- Гэлбрит, Ник (2002). Криптография для Интернета и приложений баз данных: разработка методов секретных и открытых ключей с помощью Java . Индианаполис, Индиана: Уайли. стр. 300 . ISBN 978-0-471-21029-0 .
- «Учимся взламывать код» . Мэнли Дейли . 25 июня 2004 г.
- Жорж, Филипп. «Программирование с помощью PureBasic» . ПРОГРАММА (141).
- Свобода, Любош (2012). Surprising PureBasic (Удивительный PureBasic: электронная книга на чешском языке для потенциальных пользователей PureBasic) . стр. 89.
Внешние ссылки
[ редактировать ]- Статьи
- PureBasic — идеальный кроссплатформенный и собственный язык разработки (2015)
- Небольшой обзор PureBasic (2023 г.)
- Библиотеки и архивы открытого исходного кода
- программное обеспечение 1998 года
- БЕЙСИК-компиляторы
- Семейство языков программирования BASIC
- Языки программирования высокого уровня
- Интегрированные среды разработки
- Интегрированные среды разработки Linux
- Инструменты программирования MacOS
- Процедурные языки программирования
- Языки программирования
- Языки программирования, созданные в 1998 году.
- Разработчики пользовательского интерфейса
- Интегрированные среды разработки Windows