Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

История [ править ]

Первая версия компилятора DOS была опубликована как BASIC / Z, самый первый интерактивный компилятор для CP / M и MDOS. Позже он был расширен до MS-DOS / PC DOS, а в 1987 году Borland распространил его как Turbo Basic .

Turbo Basic был первоначально создан Робертом «Бобом» Зейлом (1945–2012) и куплен у него Borland . Когда Borland решила прекратить его публикацию (1989 г.), Zale выкупила его у них, переименовала в 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 года Вивиан Зейл объявила о своем намерении начать поиск покупателя для компании.

Активное развитие продуктов PowerBASIC остановлено. Они больше не ожидают выпуска PBWin11 и PBCC7, которые находились в стадии бета-тестирования, когда умер Боб Зейл, ни 64-битных компиляторов или PB / Pro (PBWin и CC в одном компиляторе), которые все еще находились на стадии альфа-тестирования.

31 января 2017 года Адам Дрейк объявил, что Drake Software приобрела исходный код PowerBASIC у PowerBasic, Inc. с намерением обновить и улучшить функциональность продукта. [7] Это было позже подтверждено Вивиан Зейл в сообщении на форуме, в котором она благодарила участников за их поддержку. [8]К сожалению, не было выпущено ни одной новой версии (последний выпуск v10.03 был выпущен 8 лет назад по состоянию на декабрь 2020 года), не было выпущено даже небольших настроек, таких как добавление правильных настроек DPI для IDE, и поэтому достаточно ясно, что будущее PowerBASIC есть. Также не было продемонстрировано никакой деятельности по разработке в форме отчетов о ходе работы или бета-версии. По всей видимости, один человек работает над чем-то в течение этих 8 лет, что, даже если это правда, вновь вводит единую точку отказа. Однако все еще можно купить новые лицензии.

Компиляторы [ править ]

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

Turbo Basic [ править ]

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

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

Пример кода [ править ]

Следующая программа является примером АЛГОЛ- подобного диалекта 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 )) ЦИКЛ ПОКА q $ = "y" ПЕЧАТЬ "До свидания" ; n $       

( 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. Исполняемые файлы Common Gateway Interface также могут быть скомпилированы с использованием PBCC.

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).

Инструменты [ править ]

Формы PB [ править ]

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

Браузер COM [ править ]

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

Язык программирования [ править ]

Характеристики [ править ]

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

Привет, мир [ править ]

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

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

Функция  PBMain Распечатать  "Hello, World!"  Ключ ожидания $Конечная  функция

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

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

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

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

Графика [ править ]

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

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

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

Создание приложения GRAPHIC WINDOW [ править ]

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

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

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

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

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

Операции с пикселями возможны с использованием операторов GRAPHIC GET | SET PIXEL, аналогично GetPixel / SetPixel в GDI API. GRAPHIC GET BITS позволяет загружать все растровое изображение в динамическую строку. Этим можно управлять как строкой, так и путем сопоставления с ней массива. Его можно вернуть обратно в ГРАФИЧЕСКУЮ мишень с помощью ГРАФИЧЕСКИХ УСТАНОВОК.

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

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

Сообщество пользователей [ править ]

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

Сторонняя поддержка [ править ]

  • Компьютерная мастерская (EZGUI)
  • José Roca Software
  • Форумы PlanetSquires

Ссылки [ править ]

  1. ^ Выпуск компилятора PowerBASIC 10.0 для Windows
  2. ^ «PowerBASIC делает плавный ход; технологическая компания считает привлекательной доступность региона» . Сарасота Геральд Трибьюн (октябрь 2000 г.). 2000-10-10 . Проверено 12 марта 2008 .
  3. ^ Майкл Х. Тули (2005). Приборы и управление на базе ПК . Эльзевир. С.  214 . ISBN 0-7506-4716-7.
  4. ^ «Введение в PowerBASIC» . Архивировано из оригинала на 2011-05-27 . Проверено 7 декабря 2010 .
  5. ^ Зале, Вивиан. «Обновление PowerBASIC» . Форумы PowerBASIC . PowerBASIC . Дата обращения 5 июля 2015 .
  6. Экклс, Джон. «Планы PowerBASIC» . Форумы PowerBASIC . PowerBASIC, Inc. Архивировано из оригинала 24 сентября 2015 года . Дата обращения 5 июля 2015 .
  7. Дрейк, Адам (31 января 2017 г.). «У PowerBasic новый дом» . Форумы поддержки PowerBasic . Архивировано из оригинала на 2017-02-19.
  8. Рианна Зале, Вивиан (12 февраля 2017 г.). «Спасибо» . Форумы поддержки PowerBasic . Архивировано из оригинала на 2017-02-19.
  9. ^ PowerBASIC 3.5 для DOS
  10. ^ Компилятор PowerBASIC для Windows. Архивировано 8 марта 2008 г. на Wayback Machine.
  11. ^ "Com Browser на веб-сайте PowerBASIC" .
  12. ^ Новые геометрические формы для новых материалов , Эрик А. Лорд, Алан Линдси Маккей, Сриниваса Ранганатан, Cambridge University Press, 2006, ISBN 0-521-86104-7 ("очень простой пользовательский интерфейс ... скорость и мощность базового C ++ ... работает очень быстро ") Google Книги 
  13. Chaos and Time-series Analysis , Julien C. Sprott, Oxford University Press, 2003, ISBN 0-19-850840-9 («простой в освоении, мощный и такой же быстрый, как любой компилятор C, с которым я сталкивался») Google Книги 
  14. ^ https://www.powerbasic.com/support/help/pbwin/index.htm
  15. ^ https://www.powerbasic.com/support/help/pbcc/index.htm
  16. ^ Петцольд, Чарльз (1998). Programming Windows Fifth Edition, Microsoft Press, ISBN 978-1-57231-995-0. 
  17. ^ https://www.powerbasic.com/support/pbforums/faq.php?faq=vb3_board_faq#faq_faq_forum_rules
  18. ^ Статистика программного обеспечения форума PowerBASIC vBulletin

Внешние ссылки [ править ]

  • Сайт компании PowerBASIC
  • Форумы поддержки PowerBasic
  • Файлы Бёрье Хагстена
  • Код Дона Дикинсона PowerBASIC
  • GbSnippets Гэри Бина
  • Страница FreeBase на PowerBASIC
  • Проекты PowerBASIC компании ИхКорп на SourceForge
  • Книги в Интернет-архиве :
    • Использование Turbo Basic: Фредерик Э. Мошер и Дэвид И. Шнайдер: Бесплатная загрузка и потоковая передача: Интернет-архив
    • borland :: Borland Turbo BASIC Owners Handbook 1987: Бесплатная загрузка и потоковая передача: Интернет-архив
  • Borland Turbo Basic 1.x - Статистика, загрузки и скриншоты :: WinWorld - Отказ от ПО и предварительная версия программного обеспечения