PureBasic
![]() | Эта статья включает список общих ссылок , но в ней отсутствуют достаточные соответствующие встроенные цитаты . ( июнь 2011 г. ) |
![]() | |
Парадигма | Структурированный , императивный , процедурный. |
---|---|
Семья | БАЗОВЫЙ |
Разработано | Фэнтези-программное обеспечение |
Разработчик | Фэнтези-программное обеспечение |
Впервые появился | 1998 |
Стабильная версия | 6.10 ЛТС
/ 27 марта 2024 г |
ТЫ | Windows , Linux , macOS , ОС Raspberry Pi , AmigaOS |
Лицензия | Пробная версия |
Расширения имен файлов | .pb, .pbi, .pbf, .pbp |
Веб-сайт | www |
![](http://upload.wikimedia.org/wikipedia/commons/thumb/f/f7/PureBasic_IDE_5.10.png/220px-PureBasic_IDE_5.10.png)
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]
Пример Hello World [ править ]
Следующая строка кода PureBasic создаст автономный исполняемый файл x86 (4,5 КиБ (4608 байт) в версии для Windows), который отображает окно сообщения с текстом « Hello World ».
MessageRequester ( «Окно сообщения» , «Привет, мир» )
А следующий вариант того же кода, который вместо этого использует встроенный вызов Windows API без необходимости в объявлениях или других внешних ссылках, создаст еще меньший по размеру 2,0 КиБ (2048 байт) автономный исполняемый файл x86 для Windows.
MessageBox_ ( 0 , «Привет, мир» , «Окно сообщения» , 0 )
Ниже приведена консольная версия примера Hello World.
ОпенКонсоль () ; Откройте окно консоли.
Печать ( «Привет, мир!» )
Задержка ( 5000 ) ; Пауза на 5 секунд
Процедурное программирование [ править ]
PureBasic — это язык BASIC второго поколения со структурированными условиями и циклами, а также поддерживаемым процедурно-ориентированным программированием. Пользователю не требуется использовать процедуры, поэтому программист может выбрать стиль кодирования, включающий Goto, Gosub Label и Возвращаться .
Ниже приведен пример процедуры сортировки массива, хотя SortArray теперь является встроенной функцией PureBasic.
Процедура bubbleSort ( Массив a ( 1 ))
Protected i , itemCount , hasChanged
itemCount = ArraySize ( a ())
Повторить
hasChanged = # False
itemCount - 1
For i = 0 To itemCount
Если a ( i ) > a ( i + 1 )
Поменять местами a ( i ), a ( i + 1 )
hasChanged = # True
EndIf
Next
Until hasChanged = # False
EndProcedure
Ниже приведен пример программы, отображающей большой текстовый редактор с двумя пунктами меню.
;Создать окно:
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 ) )
; Процесс сообщения окна до закрытия:
Повторить
Select WaitWindowEvent ()
Case # PB_Event_Menu
Select EventMenu ()
Case 1 : MessageRequester ( «Нажата кнопка «ОК» напрямую или с помощью мнемоники «&». , GetGadgetText ( 0 ))
Case 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 не экранирует двойные кавычки в строках, поэтому их необходимо объединить с помощью Хр(34) .
Объектно-ориентированное программирование [ править ]
Фред, разработчик PureBasic, заявил, что PureBasic никогда не будет объектно-ориентированным . [6] Однако многие пользователи создали объектно-ориентированные системы поддержки. [7] [8] [9]
Типы данных [ править ]
Тип данных переменной указывается при первом ее использовании (и при необходимости — в дальнейшем) и отделяется от имени точки. Существует набор основных типов - .f, .d (числа с плавающей запятой и двойные числа), .b, .c, .w, .l, .q (целые числа – от однобайтовых до 8-байтовых), .s — строки.
Тип | Суффикс | Использование памяти | Числовой диапазон |
---|---|---|---|
Байт | б | 1 байт (8 бит) | −128 ... +127 |
Аскии | а | 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) ).
Помимо основных типов, пользователь может определить тип конструкции через
Имя_типа структуры
имя_поля.тип; Одно поле. Возможно, прикрепление конструкций.
имя_поля[количество].тип ; Статические массивы.
; ...
; Необязательная конструкция StructureUnion.. EndStructureUnion позволяет
; объединить несколько полей в одну область памяти
; это иногда требуется для типов преобразования.
СтруктураСоюз
имя_типа.тип
; ...
КонецСтруктураЮнион
Конечная структура
Переменные могут быть одиночными (фактически стандартными переменными), динамическими массивами (объявленными с помощью Dim var_name.type_name (size1, size2, ... )
, связанный список ( List() var_name.type_name
), ассоциативный массив (в новых версиях языка) ( Map var_name.type_name()
)
Дизайнер форм RAD [ править ]
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