Введение

Компилятор программного обеспечения PowerBASIC, ранее известный как Turbo Basic, — это торговая марка нескольких коммерческих компиляторов от PowerBASIC Inc., которые компилируют диалект языка программирования BASIC. Существуют версии для MS-DOS и Windows, причем последние представлены в двух вариантах: консольном и оконном. Версия для MS-DOS имеет синтаксис, аналогичный синтаксису QBasic и QuickBASIC. В версиях для Windows используется синтаксис BASIC, расширенный для включения множества функций Windows, а операторы могут комбинироваться с вызовами API Windows.

История

Первая версия компилятора DOS была опубликована как BASIC/Z, первый интерактивный компилятор для CP/M и MDOS. Позже он был расширен для MS DOS/PC DOS, а в 1987 году Borland распространил его как Turbo Basic. Turbo Basic был первоначально создан Робертом "Бобом" Залом (1945–2012) и приобретен у него компанией Borland. Когда Borland решил прекратить его выпуск (1989), Зейл выкупил его обратно, переименовал в PowerBASIC и основал PowerBASIC Inc. для продолжения поддержки и разработки; впоследствии он стал известен как PBDOS. PowerBASIC продолжил разработку компиляторов BASIC для Windows, сначала PBWIN — их флагманский продукт, — а затем PBCC, описанный ниже. 6 ноября 2012 года Роберт Зейл, создатель PowerBASIC, скончался. В течение некоторого времени предполагалось, что компания может прекратить свою деятельность. Его жена, Вивиан Зейл, 8 марта 2014 года опубликовала заявление на форумах PowerBASIC о том, что компания продолжит работу. 10 мая 2015 года Вивиан Зейл объявила о продолжении работы над новыми версиями компиляторов PowerBASIC. 2 ноября 2016 года Вивиан Зейл объявила о намерении найти покупателя для компании. 31 января 2017 года Адам Дрейк объявил, что компания Drake Software приобрела исходный код PowerBASIC у PowerBASIC, Inc. с целью обновления и улучшения функциональности продукта. Это позже было подтверждено Вивиан Зейл в сообщении на форуме, в котором она поблагодарила участников за поддержку. К моменту смерти Боба Зейла PBWin11 и PBCC7 находились в бета-тестировании, а 64-битные компиляторы и PB/Pro (PBWin и CC в одном компиляторе) — в альфа-стадии. Однако разработка продуктов PowerBASIC была остановлена. Новых версий не выпускалось с v10.03 (11 лет назад, по состоянию на май 2022 года). Объявлений о 64-битной версии или бета-версии не было. Активность разработки не зафиксирована. Исправления (например, добавление правильных настроек DPI для IDE) не выпускались. PowerBASIC Tools LLC по-прежнему продает новые лицензии на 32-битные компиляторы Windows.

Компиляторы

Программы PowerBASIC являются самодостаточными и не требуют файлов времени выполнения для запуска. Во всех версиях компилятора приложения компилируются без использования внешних библиотек, хотя могут использовать их при необходимости. PBDOS создает 16-битные DOS MZ исполняемые файлы, а PBWIN и PBCC – 32-битные Portable Executable (PE) файлы.

Турбо Базис

Borland's Turbo Basic содержит расширения классического BASIC (без нарушения совместимости), такие как графический API и доступ к мыши. В отличие от большинства реализаций BASIC того времени, Turbo Basic являлся полноценным компилятором, генерировавшим машинный код для MS DOS. Другие реализации были либо интерпретаторами, либо сильно зависели от библиотеки времени выполнения. Интегрированная среда разработки позволяла запускать программу на BASIC непосредственно для традиционной отладки (см. пример ниже) или создавать автономный исполняемый файл MS DOS, который можно было запускать на других системах без продукта Turbo Basic или библиотек времени выполнения.

PowerBASIC для DOS (PBDos)

PBDOS включает в себя интегрированную среду разработки (IDE) и поддерживает DOS 3.30 и все последующие версии.

Компилятор консоли PowerBASIC (PBCC)

PBCC — 32-битный компилятор для операционных систем серии Windows 9x и Windows NT, включая Windows XP, Windows Server 2008, Windows Vista и Windows 7. Приложения, созданные с помощью PBCC, могут использовать динамические библиотеки (DLL). Компилятор поставляется в комплекте с интегрированной средой разработки (IDE), включающей редактор и пошаговый отладчик. Для создания приложений в текстовом или графическом режиме с использованием этого компилятора не требуется знание программирования под Windows. Исполняемые файлы, скомпилированные PBCC, также могут использоваться как исполняемые файлы Common Gateway Interface (для веб-серверов). PBCC создает только исполняемые файлы, а не DLL. (PBWin — см. ниже — может создавать как исполняемые файлы, так и DLL.)

Компилятор PowerBASIC для Windows (PBWin)

PBWin – 32-битный компилятор, совместимый с операционными системами семейства Windows 9x и Windows NT, включая Windows XP, Windows Server 2008, Windows Vista, Windows 7, Windows 8 (8.1) и Windows 10. PBWin способен создавать динамические библиотеки (DLL). Приложения, разработанные с помощью PBWin, могут использовать динамические библиотеки. PBWin поставляется с компилятором, интегрированной средой разработки (IDE) с редактором и пошаговым отладчиком.

Динамические инструменты диалога (DDT)

Вы можете создать графический пользовательский интерфейс приложения с помощью Windows API или используя встроенные расширения языка DDT. Совокупность операторов BASIC, оборачивающих функции Windows API, особенно при создании и обработке диалоговых окон и дочерних элементов управления, называется Dynamic Dialog Tools (инструментами динамических диалогов). Использование DDT требует меньше кода, чем создание аналогичной программы с использованием Windows API. Использование DDT и Windows API (известного как стиль SDK, как в Microsoft Windows SDK) не является взаимоисключающим.

Пробные версии компиляторов

PowerBASIC переименовал PBWin v9.07 и PB/CC v5.07 в "Classic PBWin" и "Classic PB/CC" соответственно и 1 ноября 2016 года в течение короткого времени предлагал их через свой интернет-магазин как бесплатные пробные версии без навязчивых сообщений, вместе с PBForms v1.0 (PowerBASIC Forms).

Формы ПБ

PowerBASIC Forms, доступный для приобретения отдельно, — это надстройка для PBWin, представляющая собой инструмент графического проектирования пользовательского интерфейса. Он автоматически генерирует исходный код, использующий расширение языка DDT, для создания форм с применением графического интерфейса Windows.

COM-браузер

PowerBASIC COM Browser, поставляемый с PBWin, – это приложение, которое предоставляет доступ к интерфейсам, методам и свойствам COM-объектов, как это описано в файлах библиотек типов. PowerBASIC COM Browser экспортирует структуру интерфейса COM-объекта для использования с ранним связыванием в коде PowerBASIC, а также предоставляет справочную информацию по синтаксису и контекстную справку по элементам интерфейса, предоставляемым COM-объектом.

Характеристики

PowerBASIC — это компилятор BASIC, генерирующий машинный код, который отличается простотой использования и высокой скоростью по сравнению с другими языками. Хотя скомпилированный код достаточно быстр для большинства задач, компиляторы также поддерживают встроенный ассемблер, который можно использовать для ручной оптимизации критически важных участков кода. Компиляторы для Windows (PBWin и PBCC) поддерживают почти весь набор инструкций x86, включая FPU, SIMD и MMX, за исключением нескольких, полезных главным образом для системных программистов. Любые неподдерживаемые инструкции можно вставить, указав их опкоды с помощью директив "db", "dw" и "dd". Строки кода на ассемблере могут свободно чередоваться со строками кода BASIC, однако всегда необходимо учитывать возможное взаимодействие между этими двумя типами кода.

Объектно-ориентированное программирование

PBWin и PBCC поддерживают объектно-ориентированное программирование в виде COM-классов, однако компиляторы не обязывают использовать ООП, это лишь одна из возможностей. С использованием этих компиляторов можно создавать COM-серверы, работающие как в процессе, так и вне процесса.

Графика

И компилятор консоли, и компилятор Windows могут создавать графические окна. Операторы GRAPHICs имеют более высокий уровень, чем функции библиотеки графического интерфейса устройств (GDI) Windows.

Элементы ГРАФИЧЕСКИХ заявлений

ГРАФИЧЕСКИЕ ОКНА — это специализированные диалоговые окна, каждое из которых содержит единственный элемент управления, полностью заполняющий клиентскую область диалога. Элементы управления GRAPHIC — это дочерние окна, поддерживающие те же функции графического рисования, что и ГРАФИЧЕСКИЕ ОКНА. ГРАФИЧЕСКИЕ РАСТРОВЫЕ ИЗОБРАЖЕНИЯ также определены и поддерживают функции графического рисования, но являются исключительно объектами памяти, подобно растровым изображениям Windows или секциям DIB. Операторы обработки клавиатуры и мыши включены в набор операторов GRAPHIC. Вывод символов в графический объект использует шрифты, указанные оператором FONT NEW.

Сравнение высказываний PB GRAPHIC с API GDI

Используя операторы PB GRAPHIC, GRAPHIC (окно, bitmap или элемент управления) сначала выбирается в качестве текущего объекта GRAPHIC, а затем операции выполняются над ним без необходимости повторной идентификации. Это отличается от подхода GDI API, где дескриптор контекста устройства (Device Context) требуется для каждой операции рисования. При использовании операторов PB GRAPHIC нет необходимости определять кисть или перо как отдельные сущности, а также нет необходимости перерисовывать объект GRAPHIC (когда он видим) в ответ на сообщения Windows, такие как WM_PAINT и WM_ERASEBKGND. Объекты GRAPHIC являются постоянными. При подключении объектов GRAPHIC можно указать опцию REDRAW, которая буферизует результаты операций рисования до тех пор, пока они не будут запрошены. Использование этой техники уменьшает мерцание аналогичным образом, как при рисовании в memory DC при использовании GDI API. Операции с пикселями возможны с использованием операторов GRAPHIC GET|SET PIXEL, аналогично функциям GetPixel/SetPixel GDI API. GRAPHIC GET BITS позволяет загрузить весь bitmap в динамическую строку. Эту строку можно обрабатывать как строку или отобразить на нее массив. Затем ее можно вернуть в объект GRAPHIC с помощью GRAPHIC SET BITS.

Комплементарность GRAPHIC и Windows GDI API

В операторах GRAPHIC содержатся все обычно используемые функции GDI API, но если вам требуется функция, которая не включена, можно получить hDC любой целевой области GRAPHIC и, таким образом, использовать функции GDI API непосредственно для неё.

Сообщество пользователей

PowerBASIC предоставляет онлайн-форум для пользователей, чтобы задавать вопросы и обмениваться знаниями. На 8 июля 2012 года на форуме было зарегистрировано 5623 участника (лишь небольшая часть из которых была активна), и он содержал 50 093 темы, состоящие из 408 642 сообщений, начиная с 26 августа 1998 года. Один только раздел "Исходный код" содержал 3768 тем.