PowerBASIC
Разработчик | Robert "Bob" Zale (b. 1945, d. 2012) |
---|---|
Впервые появился | 1989 год |
Стабильная версия | 10.0 (4 мая 2011 г [1] ) |
ТЫ | Windows (только 32-разрядная версия), MS-DOS |
Веб-сайт | www |
Под влиянием | |
Турбо Базовый |
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 г.), Зейл выкупил его у них, переименовал в 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. В отличие от традиционного Бейсика, [ нужна ссылка ] который использовал номера строк и имел ограниченные структуры управления и не поддерживал подпрограммы, подобные ALGOL, современные диалекты BASIC, начиная с этого периода, были расширены, чтобы сделать язык совместимым с современным стилем структурированного программирования, сделав номера строк необязательными и добавив структуры управления и определения подпрограмм. необходим для структурного программирования.
INPUT "What is your name?: ", n$PRINT "Hello "; n$DO s$ = "" INPUT "How many stars do you want to print"; s FOR i = 1 TO s s$ = s$ + "*" NEXT i PRINT s$ DO INPUT "Do you want to print more stars"; q$ LOOP WHILE LEN(q$) = 0 q$ = LCASE$(LEFT$(q$, 1))LOOP WHILE q$ = "y"PRINT "Goodbye "; 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). Компилятор поставляется с интегрированной средой разработки , включающей редактор и пошаговый отладчик .
Для создания символьного режима или графических приложений с помощью этого компилятора не требуется никаких знаний программирования 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$ в этом примере предотвращает автоматическое закрытие окна консоли до тех пор, пока оператор не увидит отображаемый текст.
Function PBMain Print "Hello, World!" Waitkey$End Function
Вот версия PBWin, которая отображает диалоговое окно сообщения Windows.
Function PBMain MsgBox "Hello, World!"End Function
Объектно-ориентированное программирование
[ редактировать ]PBWin и PBCC поддерживают объектно-ориентированное программирование в форме COM -классов, однако компиляторы не заставляют вас использовать ООП, это всего лишь опция. С использованием этих компиляторов также можно создавать внутрипроцессные и внепроцессные COM-серверы.
Графика
[ редактировать ]И консольный компилятор, и компилятор Windows могут создавать графические окна. Операторы GRAPHICs являются более высокоуровневыми, чем интерфейса графических устройств Windows (GDI). библиотечные функции [15] [16]
Элементы утверждений GRAPHIC
[ редактировать ]ГРАФИЧЕСКИЕ ОКНА — это специальные диалоговые окна, каждое из которых содержит один элемент управления, заполняющий клиентскую область диалога. Элементы управления GRAPHIC — это дочерние окна , которые поддерживают те же функции рисования GRAPHIC, что и окна GRAPHIC. ГРАФИЧЕСКИЕ РАСЧЕТНЫЕ КАРТЫ также определены, снова поддерживая функциональность графического рисования, но как чисто объекты памяти, такие как растровые изображения Windows или разделы DIB . Операторы управления клавиатурой и мышью включены в операторы GRAPHIC. Для вывода символов в цель GRAPHIC используются шрифты, указанные в инструкции FONT NEW.
Создание приложения ГРАФИЧЕСКОГО ОКНА
[ редактировать ]ГРАФИЧЕСКОЕ ОКНО — это эквивалент диалогового окна Windows , содержащего статический элемент управления, с помощью которого можно выполнять операции рисования. Один оператор BASIC создаст ГРАФИЧЕСКОЕ ОКНО и укажет его размер, положение и заголовок. Необязательно указывать WNDPROC для ГРАФИЧЕСКОГО ОКНА. Ниже приведен краткий пример исходного кода для полного приложения ГРАФИЧЕСКОГО ОКНА:
#Compile Exe ' using either PBCC6 or PBWIN10 compiler#Dim AllFunction PBMain Local GW As Dword ' start a GRAPHIC WINDOW Graphic Window New "graphic window", 100, 100, 200, 200 to GW ' show a coloured disc Graphic Ellipse (10, 10)-(190, 190), %rgb_Red, %rgb_SeaGreen, 0 ' wait for a keypress 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]
В начале 2024 года веб-сайт PowerBASIC был переведен в режим обслуживания. Это активно обсуждалось на форумах ПБ. Правообладатель написал, что сайт не вернется. [1]
Ссылки
[ редактировать ]- ^ Выпуск компилятора PowerBASIC 10.0 для Windows.
- ^ «PowerBASIC делает плавный шаг; технологическая компания считает доступность региона привлекательной» . Сарасота Геральд Трибьюн. 2000-10-10 . Проверено 12 марта 2008 г.
- ^ Тули, Майкл Х. (2005). Контрольно-измерительные приборы и управление на базе ПК . Эльзевир. п. 214 . ISBN 0-7506-4716-7 .
- ^ «Введение в PowerBASIC» . Архивировано из оригинала 27 мая 2011 г. Проверено 7 декабря 2010 г.
- ^ Зейл, Вивиан. «Обновление PowerBASIC» . Форумы PowerBASIC . PowerBASIC . Проверено 5 июля 2015 г.
- ^ Экклс, Джон. «Планы PowerBASIC» . Форумы PowerBASIC . PowerBASIC, Inc. Архивировано из оригинала 24 сентября 2015 года . Проверено 5 июля 2015 г.
- ^ Дрейк, Адам (31 января 2017 г.). «У PowerBASIC новый дом» . Форумы поддержки PowerBASIC . Архивировано из оригинала 19 февраля 2017 г.
- ^ Зейл, Вивиан (12 февраля 2017 г.). "Спасибо" . Форумы поддержки PowerBASIC . Архивировано из оригинала 19 февраля 2017 г.
- ^ «PowerBASIC 3.5 для DOS» . Архивировано из оригинала 17 января 2016 г.
- ^ «Компилятор PowerBASIC для Windows» . Архивировано из оригинала 8 марта 2008 г.
- ^ PowerBASIC 9 для Windows и PowerBASIC Console Compiler 5: 99 и 89 долларов США от 05 октября 2016 г .; $0 и $0 06.11.2016 ; $0 и $0 18 декабря 2016 г .; не предлагается 28 февраля 2017 г.
- ^ «Браузер Com на веб-сайте PowerBASIC» .
- ^ Новая геометрия для новых материалов , Эрик А. Лорд, АланЛиндси Маккей, Шриниваса Ранганатан, издательство Кембриджского университета, 2006 г., ISBN 0-521-86104-7 («очень простой пользовательский интерфейс… скорость и мощь базового C++… работает очень быстро») Google Книги
- ^ Хаос и анализ временных рядов , Жюльен К. Спротт, Oxford University Press, 2003, ISBN 0-19-850840-9 («легок в освоении, мощный и такой же быстрый, как любой компилятор C, с которым я когда-либо сталкивался») Google Книги
- ^ «ПауэрБЕЙСИК» .
- ^ «ПауэрБЕЙСИК» .
- ^ Петцольд, Чарльз (1998). Программирование Windows, пятое издание, Microsoft Press, ISBN 978-1-57231-995-0
- ^ «ПауэрБЕЙСИК» .
- ^ Статистика программного обеспечения форума PowerBASIC vBulletin.
Внешние ссылки
[ редактировать ]- Официальный сайт Сайт компании PowerBASIC
- Сообщество поддержки PowerBASIC
- Файлы Бёрье Хагстена
- Код PowerBASIC Дона Дикинсона
- gbSnippets Гэри Бина
- Страница FreeBase на PowerBASIC (архив 2014 г.)
- Проекты PowerBASIC Их корпорации на SourceForge
- Канал PowerBASIC для начинающих на YouTube
- Borland Turbo Basic 1.x - Статистика, загрузки и снимки экрана :: WinWorld - Заброшенные и предварительные версии программного обеспечения
- Книги в Интернет-архиве :
- Использование Turbo Basic Фредерик Э. Мошер и Дэвид И. Шнайдер.
- Руководство пользователя Borland Turbo BASIC , 1987 г. Borland.