stringtranslate.com

PowerBASIC

PowerBASIC , ранее Turbo Basic , — торговая марка нескольких коммерческих компиляторов компании PowerBASIC Inc., которые компилируют диалект языка программирования BASIC . Существуют версии как для MS-DOS, так и для Windows, а также две разновидности последних: консольная и 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. [2] [3] [4]

PowerBASIC продолжила разработку компиляторов BASIC для Windows, сначала PBWIN — их флагманского продукта, а затем PBCC, описанного ниже.

6 ноября 2012 года умер Роберт Зейл, создатель PowerBASIC. Какое-то время предполагалось, что компания может прекратить свою деятельность. Его жена Вивиан Зейл 8 марта 2014 года разместила на форумах PowerBASIC заявление о том, что компания продолжит работу. [5] 10 мая 2015 года Вивиан Зейл объявила, что работа над новыми версиями компиляторов PowerBASIC продолжается. [6]

2 ноября 2016 года Вивиан Зейл объявила о намерении искать покупателя для компании.

31 января 2017 года Адам Дрейк объявил, что Drake Software приобрела исходный код PowerBASIC у PowerBASIC, Inc. с намерением обновить и улучшить функциональность продукта. [7] Позже это подтвердила Вивиан Зейл, написав на форуме сообщение с благодарностью участникам за поддержку. [8]

Когда умер Боб Зейл, PBWin11 и PBCC7 находились в стадии бета-тестирования, а 64-битные компиляторы и PB/Pro (PBWin и CC в одном компиляторе) находились на стадии альфа-версии. Однако разработка продуктов PowerBASIC остановилась. С версии 10.03 (11 лет назад по состоянию на май 2022 г.) не было выпущено ни одной новой версии. Ни о 64-битной версии, ни о бета-версии не сообщалось. О деятельности в области развития не сообщалось. Никаких исправлений (например, добавления правильных настроек DPI для IDE) не было выпущено. PowerBASIC Tools LLC по-прежнему продает новые лицензии для 32-битных компиляторов Windows.

Составители

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

Турбо Базовый

Turbo Basic от Borland содержит расширения классического BASIC (без нарушения совместимости), такие как API рисования и доступ с помощью мыши.

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

Пример кода

Следующая программа является примером ALGOL -подобного диалекта BASIC, поддерживаемого Turbo Basic. В отличие от традиционного BASIC, который использовал номера строк , имел ограниченные структуры управления и не поддерживал ALGOL-подобные подпрограммы, современные диалекты BASIC, начиная с этого периода, были расширены, чтобы сделать язык совместимым с современным стилем структурированного программирования , сделав номера строк необязательными. и добавление структур управления и определений подпрограмм, необходимых для структурного программирования.

INPUT "Как вас зовут?: " , n$ PRINT "Привет" ; n$ DO s$ = "" INPUT "Сколько звездочек вы хотите напечатать" ; s FOR i = 1 TO s s$ = s$ + "*" NEXT i PRINT s$ DO INPUT "Хотите напечатать больше звезд" ; q$ LOOP WHILE LEN ( q$ ) = 0 q$ = LCASE$ ( LEFT$ ( q$ , 1 )) LOOP WHILE q$ = "y" PRINT "Goodbye" ; н$                                            

( s$является строкой и sпредставляет собой число (число) с плавающей запятой одинарной точности . Это отдельные переменные.)

Как и другие продукты Borland той эпохи, код выполняется в интегрированной среде разработки.

PowerBASIC для DOS (PBDos)

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

Консольный компилятор 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 — см. ниже — может создать и то, и другое.)

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

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

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

Вы можете создать графический пользовательский интерфейс приложения с помощью Windows API или с помощью встроенных расширений языка DDT. Группа операторов BASIC, которые оборачивают функции Windows API , особенно при создании и обработке диалоговых окон и дочерних элементов управления, известна под общим названием «Инструменты динамического диалога». Для использования 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). [11]

Инструменты

Формы ПБ

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

COM-браузер

COM-браузер PowerBASIC, входящий в состав PBWin, представляет собой приложение, предоставляющее интерфейсы, методы и свойства COM-объектов, описанные в файлах библиотеки типов. COM-браузер PowerBASIC экспортирует структуру интерфейса COM-объекта для целей раннего связывания в коде PowerBASIC, а также предоставляет справку по синтаксису и контекстную справку по элементам интерфейса, предоставляемым COM-объектом. [12]

Язык программирования

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

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

Привет, мир

Привет, мир используется для того, чтобы дать очень небольшой пример синтаксиса, используемого языком программирования, и часто представляет собой наименьшую возможную программу для любого данного языка программирования.

Вот пример программы PBCC hello world. По умолчанию PBCC создает окно консоли во время выполнения для отображения вывода. Использование Waitkey$ в этом примере предотвращает автоматическое закрытие окна консоли до тех пор, пока оператор не увидит отображаемый текст.

Функция PBMain  Распечатать «Привет, мир!» Клавиша ожидания $  Конечная функция 

Вот версия PBWin, которая отображает диалоговое окно сообщения Windows.

Функция PBMain  MsgBox «Привет, мир!» Конечная функция 

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

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

Графика

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

Элементы утверждений GRAPHIC

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

Создание приложения ГРАФИЧЕСКОГО ОКНА

ГРАФИЧЕСКОЕ ОКНО — это эквивалент диалогового окна Windows , содержащего статический элемент управления, с помощью которого можно выполнять операции рисования. Один оператор BASIC создаст ГРАФИЧЕСКОЕ ОКНО и укажет его размер, положение и заголовок. Необязательно указывать WNDPROC для ГРАФИЧЕСКОГО ОКНА. Ниже приведен краткий пример исходного кода для полного приложения ГРАФИЧЕСКОГО ОКНА:

# Скомпилируйте Exe ', используя компилятор PBCC6 или PBWIN10 # Dim All   Функция PBMain Local GW As Dword ' запускает ГРАФИЧЕСКОЕ ОКНО Графическое окно Новое "графическое окно" , 100 , 100 , 200 , 200 to GW ' показывает цветной диск Graphic Ellipse ( 10 , 10 ) - ( 190 , 190 ), % rgb_Red , % rgb_SeaGreen , 0 'ожидание нажатия клавиши Graphic Waitkey$ End Function                             
Сравнение операторов PB GRAPHIC с API GDI

Используя инструкции PB GRAPHIC, GRAPHIC (WINDOW, BITMAP или элемент управления) сначала выбирается в качестве текущей цели GRAPHIC, затем над ним выполняются операции без необходимости его повторной идентификации. Сравните это с подходом GDI API, где дескриптор контекста устройства требуется для каждой операции рисования.

При использовании операторов PB GRAPHIC нет необходимости определять кисть или перо как отдельный объект, а также нет необходимости перерисовывать цель GRAPHIC (когда она отображается) в ответ на сообщения Windows, такие как WM_PAINT и WM_ERASEBKGND. ГРАФИЧЕСКИЕ цели являются постоянными.

Когда подключены цели GRAPHIC, можно указать опцию REDRAW, которая буферизует результаты операций рисования до тех пор, пока они не будут специально запрошены. Использование этого метода уменьшает мерцание аналогично методу рисования на DC памяти [17] при использовании GDI API.

Пиксельные операции возможны с использованием операторов GRAPHIC GET|SET PIXEL, аналогично GetPixel/SetPixel в GDI API. GRAPHIC GET BITS позволяет загрузить все растровое изображение в динамическую строку. Им можно манипулировать либо как строкой, либо путем сопоставления с ней массива. Его можно поместить обратно в цель GRAPHIC с помощью GRAPHIC SET BITS.

Взаимодополняемость операторов GRAPHIC и Windows GDI API

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

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

PowerBASIC предоставляет пользователям онлайн-форум, на котором они могут задавать вопросы и делиться знаниями. [18] По состоянию на 8 июля 2012 года форум насчитывал 5623 участника (только часть из них все еще активна) и содержал 50 093 темы, включающие 408 642 сообщения с 26 августа 1998 года. Только в разделе «Исходный код» содержалось 3768 тем. [19]

Рекомендации

  1. ^ Выпуск компилятора PowerBASIC 10.0 для Windows.
  2. ^ «PowerBASIC делает плавный шаг; технологическая компания считает доступность региона привлекательной» . Сарасота Геральд Трибьюн. 2000-10-10 . Проверено 12 марта 2008 г.
  3. ^ Тули, Майкл Х. (2005). Контрольно-измерительные приборы и управление на базе ПК . Эльзевир. п. 214. ИСБН 0-7506-4716-7.
  4. ^ «Введение в PowerBASIC». Архивировано из оригинала 27 мая 2011 г. Проверено 7 декабря 2010 г.
  5. ^ Зейл, Вивиан. «Обновление PowerBASIC». Форумы PowerBASIC . PowerBASIC . Проверено 5 июля 2015 г.
  6. ^ Экклс, Джон. «Планы PowerBASIC». Форумы PowerBASIC . PowerBASIC, Inc. Архивировано из оригинала 24 сентября 2015 года . Проверено 5 июля 2015 г.
  7. Дрейк, Адам (31 января 2017 г.). «У PowerBASIC новый дом». Форумы поддержки PowerBASIC . Архивировано из оригинала 19 февраля 2017 г.
  8. Зейл, Вивиан (12 февраля 2017 г.). "Спасибо". Форумы поддержки PowerBASIC . Архивировано из оригинала 19 февраля 2017 г.
  9. ^ «PowerBASIC 3.5 для DOS» . Архивировано из оригинала 17 января 2016 г.
  10. ^ «Компилятор PowerBASIC для Windows» . Архивировано из оригинала 8 марта 2008 г.
  11. ^ PowerBASIC 9 для Windows и PowerBASIC Console Compiler 5: 99 и 89 долларов США от 05 октября 2016 г.; 0 и 0 долларов США 06 ноября 2016 г.; 0 и 0 долларов 18 декабря 2016 г.; не предлагается 28 февраля 2017 г.
  12. ^ «Браузер Com на веб-сайте PowerBASIC» .
  13. ^ Новая геометрия для новых материалов , Эрик А. Лорд, Алан Линдси Маккей, Сриниваса Ранганатан, Cambridge University Press, 2006, ISBN 0-521-86104-7 («очень простой пользовательский интерфейс ... скорость и мощь базового C++»). ... бегает очень быстро") Google Книги 
  14. ^ Хаос и анализ временных рядов , Жюльен К. Спротт, Oxford University Press, 2003, ISBN 0-19-850840-9 («простой в освоении, мощный и такой же быстрый, как любой компилятор C, с которым я когда-либо сталкивался») Google Книги 
  15. ^ "ПауэрБЕЙСИК".
  16. ^ "ПауэрБЕЙСИК".
  17. ^ Петцольд, Чарльз (1998). Программирование Windows, пятое издание, Microsoft Press, ISBN 978-1-57231-995-0 
  18. ^ "ПауэрБЕЙСИК".
  19. ^ Статистика программного обеспечения форума PowerBASIC vBulletin.

Внешние ссылки

Сторонняя поддержка