PureBasic
Реализация языка программирования BasicPureBasic — кроссплатформенный компилятор бейсика, созданный компанией “Fantaisie Software”. На данный момент существуют версии для платформ MS Windows (x86, x64), Linux (x86, x64), MacOS X (Intel, PowerPC), а так-же, больше не поддерживаемая версия для AmigaOS. Текущая версия — 4.60. Компиляция производится в два этапа: сначала код транслируется из языка бейсик, в ассемблер, после чего, компилируется с помощью FASM или NASM в зависимости от версии и реализации. Этот факт позволяет легко добавлять в код ассемблерные вставки и директивы ассемблера. В результате компиляции получаются исполняемые файлы и динамические библиотеки небольшого размера. В приложении может использоваться как стандартный набор символов (ASCII) либо расширенный (Unicode) в зависимости от опций компиляции.
Библиотеки функций
В PureBasic есть кроссплатформенные библиотеки, состоящие из более чем 1100 функций, благодаря которым можно переносить программу с одной платформы на другую (например, с Windows на Linux) иногда даже без правки кода. Можно так-же использовать API функции конкретной платформы, если нет необходимости в кроссплатформенности приложения.
В текущей версии PureBasic 4.60 присутствуют следующие библиотеки:
Основные библиотеки.
- 2D Drawing — Графическая библиотека для рисования линий, окружностей, градиента и т. д. на всех объектах, имеющих графический контекст (например, элементах GUI, спрайтах, изображениях, текстурах и т. д.). Поддерживаются 32-ух битные изображения с альфа каналом.
- Array — Работа с массивами — копирование, удаление массивов и т. д.
- AudioCD — Работа с CD/DVD.
- Cipher — Библиотека шифрования. Присутствуют функции для работы с AES, Base64, CRC32, DES, MD5, SHA1.
- Clipboard — Работа с буфером обмена.
- Console — Работа с консолью.
- Database — Работа с базами данных, типа Oracle, MySQL, Access, SQLite и др.
- Date — Функции работы с датой и временем.
- Debugger — Функции отладчика. Они действуют только при запуске программы из IDE с включенной опцией отладки программы.
- Desktop — Получение данных об параметрах рабочего стола, таких как разрешение экрана, глубина цвета, частота кадров и т. д.
- Drag & Drop — Функции поддержки технологии перетаскивания объектов.
- File — Работа с файлами — запись и чтение.
- FileSystem — работа с файловой системой. Позволяет удалять, копировать, перемещать файлы, сканировать каталоги(получая список файлов в папке) и т.д.
- Ftp — Функции создания FTP-клиента.
- Font — Работа со шрифтами.
- Gadget — Библиотека функций для создания и работы с элементами управления, известными еще как “контролы”.
- Help — Работа со справочной системой.
- Http — Функции для работы с Http.
- Image — Создание изображений и работа с ними. Поддерживаются 32-ух битные изображения с альфа каналом.
- ImagePlugin — Набор функций-плагинов для работы с форматами JPEG, PNG, TGA, TIFF.
- Library — Работа с динамическими библиотеками (в Windows — DLL, в Linux — SO, а в MacOS X — dylib).
- Linked List — Функции для работы с динамически связанным списком.
- Mail — Работа с электронной почтой.
- Map — Работа с ассоциативными массивами.
- Math — Математические функции.
- Memory — Функции для работы с памятью. Выделение и освобождение памяти, чтение/запись, копирование и перемещение данных в памяти.
- Menu — Работа с меню.
- Misc — Различные функции, не вошедшие в другие библиотеки, такие как измерение промежутков времени, генерирование псевдослучайных чисел и др.
- Movie — Работа с видео.
- Network — Работа с сетью — создание клиент-серверных приложений.
- OnError — Библиотека обработки критических ошибок (исключений).
- Packer — Небольшая библиотека для сжатия и распаковки данных.
- Preference — Работа с INI файлами.
- Printer — Работа с принтером.
- Process — предоставляет возможность запускать, прерывать выполнение и получать информацию о процессах.
- Regular Expression — Регулярные выражения.
- Requester — Набор функций для создания CommonDialog’ов вроде окна ввода текста, окна выбора файла, окна выбора цвета и т. д.
- Scintilla — Работа с текстовый редактором Scintilla, поддерживающего подсветку синтаксиса и многое другое.
- Serial Port — Работа с COM портом компьютера, в т. д. и виртуальным.
- Sort — Сортировка и рассортировка массивов и связанных списков.
- StatusBar — часть GUI, информационная часть окна.
- String — Функции для работы со строками.
- SysTray — набор функций для создания иконок в области уведомлений панели задач.
- Thread — Функции для создания потоков, завершения их и синхронизации.
- Toolbar — Функции для работы с Панелью инструментов, расположенной в окне программы.
- Window — Функции для создания стандартных окон и работы с ними, в т. ч. обработки событий.
- XML — Работа с XML документами.
2D Игры и мультимедийные библиотеки.
- Joystick — Работа с джойстиком.
- Keyboard — Работа с клавиатурой.
- Module — Воспроизведение трекерной музыки в форматах mod, xm и it.
- Mouse — Функции работы с мышью.
- Palette — Управление палитрами экрана.
- Sprite & Screen — Работа со спрайтами и управление отображением.
- Sprite3D — работа с текстурированными плоскостями. От обычных спрайтов отличаются возможностью масштабирования, поворота, билинейной фильтрации, использования нескольких видов наложения цветов(Blending).
- Sound — Воспроизведение музыкальных файлов.
- SoundPlugin — Плагины для поддержки форматов FLAC и OGG.
PureBasic по умолчанию использует 3D движок OGRE для работы с трехмерной графикой.
- Engine3D — Инициализация и конфигурация движка OGRE.
- Billboard — Создание трехмерных плоскостей и работа с ними.
- Camera — Создание и управление камерой в трехмерном мире.
- Entity — Создание и работа с трехмерными объектами. Такие объекты создаются из основы-скелета (Mesh) и оболочки (Material).
- Gadget 3D — Библиотека функций для создания и работы с элементами управления, известными еще как “контролы” в трехмерном мире.
- Joint — Организация связей между несколькими трехмерными объектами (Entity) для их взаимного взаимодействия.
- Light — Освещение.
- Material — Текстуры для трехмерных объектов (Entity).
- Mesh — Основа (скелет) трехмерного объекта (Entity).
- Node — Группировка нескольких объектов.
- Particle — Системы частиц
- Sound 3D — Воспроизведение звуков, связанных с объектами 3D мира.
- Special Effect — Различные эффекты.
- Static Geometry — Создание статических геометрических фигур.
- Terrain — Создание участков ландшафта.
- Texture — Работа с текстурами.
- Window 3D — Создание окон в 3D мире.
Синтаксис
Синтаксис PureBasic немного отличается от традиционного бейсика. В частности, комментарий начинается с точки с запятой и оканчивается в конце строки. Используется сокращенный метод указания типа переменой — после ее имени располагается префикс, состоящий из точки и одной буквы определяющий тип переменой. Существуют более десяти типов переменных.
PureBasic - типы переменных
Примеры:
Hello, World!:
Пример для версий PureBasic 4.60“Hello, World!” с выводом в консоль.
OpenConsole() ; Создание консольного окна.
Print("Hello, World!") ; Вывод текста в консоль.
Input() ; Ожидание нажатия Enter.
Hello, World!:
Пример для версий PureBasic 4.60“Hello, World” в окне программы.
OpenWindow(0, 0, 0, 200, 100, "Hello, World", #PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)
TextGadget(0, 10, 40, 180,16, "Hello, World", #PB_Text_Center)
Repeat
Event = WaitWindowEvent() ; ID события программы.
Until Event = #PB_Event_CloseWindow ; Если получено событие закрытия окна, то прерываем цикл.
Комментарии
]]>blog comments powered by Disqus
]]>