]]> ]]>

PureBasic

Реализация языка программирования Basic

PureBasic — кроссплатформенный компилятор бейсика, созданный компанией “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 - типы переменных
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

]]>

Работа программистам