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

Microsoft QuickBASIC (также QB ) - это интегрированная среда разработки (или IDE) и компилятор для языка программирования BASIC , разработанный Microsoft . QuickBASIC работает в основном под DOS , хотя была и недолговечная версия для классической Mac OS . Он частично основан на GW-BASIC, но в дополнение к интерпретатору добавляет определяемые пользователем типы, улучшенные структуры программирования, лучшую графику и поддержку дисков, а также компилятор . Microsoft продавала QuickBASIC как вводный уровень для своей системы профессиональной разработки BASIC. [1] Microsoft продала две другие подобные IDE для C и Pascal, а именно QuickC и QuickPascal .

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

Microsoft выпустила первую версию QuickBASIC 18 августа 1985 года на одной 5,25-дюймовой дискете размером 360 КБ . QuickBASIC версии 2.0 и более поздних версий содержал интегрированную среду разработки (IDE), позволяющую пользователям редактировать прямо в экранном текстовом редакторе.

Хотя QuickBASIC все еще поддерживается, номера строк стали необязательными. Переходы программы также работали с именованными метками. В более поздних версиях также были добавлены управляющие структуры, такие как многострочные условные операторы и блоки цикла.

Компилятор PC BASIC от Microsoft был включен для компиляции программ в исполняемые файлы DOS. Начиная с версии 4.0, редактор включал интерпретатор, который позволял программисту запускать программу, не выходя из редактора. Интерпретатор использовался для отладки программы перед созданием исполняемого файла. К сожалению, между интерпретатором и компилятором были некоторые тонкие различия, что означало, что большие программы, которые правильно выполнялись в интерпретаторе, могли не работать после компиляции или не компилироваться вообще из-за различий в процедурах управления памятью. [2]

Последней версией QuickBASIC была версия 4.5 (1988 г.), хотя разработка Microsoft BASIC Professional Development System (PDS) продолжалась до ее последнего выпуска версии 7.1 в октябре 1990 г. [3] В то же время пакет QuickBASIC был незаметно изменен. чтобы на дисках использовалось то же сжатие, что и для BASIC PDS 7.1. [4] Версия среды IDE Basic PDS 7.x называлась QuickBASIC Extended (QBX) и работала только в DOS, в отличие от остальной части Basic PDS 7.x, которая также работала в OS / 2. Преемником QuickBASIC и Basic PDS стал Visual Basic версии 1.0 для MS-DOS, поставляемый в версиях Standard и Professional. Более поздние версии Visual Basic не включали версии DOS, поскольку Microsoft сосредоточилась на приложениях Windows.

Подмножество QuickBASIC 4.5, названное QBasic , было включено в MS-DOS 5 и более поздних версий, заменив GW-BASIC, включенный в предыдущие версии MS-DOS. По сравнению с QuickBASIC, QBasic ограничен только интерпретатором, в нем отсутствуют некоторые функции, он может обрабатывать только программы ограниченного размера и не поддерживает отдельные программные модули. Поскольку в нем отсутствует компилятор, его нельзя использовать для создания исполняемых файлов, хотя исходный код его программы все еще может быть скомпилирован с помощью компилятора QuickBASIC 4.5, PDS 7.x или VBDOS 1.0, если он доступен.

QuickBASIC 1.00 для операционной системы Apple Macintosh был запущен в 1988 году. Он официально поддерживался на машинах под управлением System 6 с как минимум 1 МБ ОЗУ. [5] QuickBASIC также мог работать в Системе 7 , если 32-битная адресация была отключена.

Пример синтаксиса [ править ]

Привет, мир , самая короткая версия:

? "Привет, мир"

Привет, мир , расширенная версия:

CLS PRINT "Hello, World" КОНЕЦ 

99 бутылок пива :

LET БУТЫЛОК = 99 : LET БУТЫЛКИ $ = "99" : ЛПЭ БУТЫЛКА $ = "бутылка" ДЛЯ A = 1 TO 99 PRINT Бутылочки $ ; БУТЫЛКА $ ; "пива на стене" ; БУТЫЛКИ $ ; БУТЫЛКА $ ; "пива". ПОЗВОНИТЬ БУТЫЛКИ = БУТЫЛКИ - 1 ЕСЛИ БУТЫЛКИ > 0, ТО ПОЗВОЛЯЕМ БУТЫЛКИ $ = LTRIM $ ( STR $ (                                   БУТЫЛКИ )) : LET МЕСТОИМЕНИЕ $ = "один" IF БУТЫЛОК = 0 THEN LET БУТЫЛОК $ = "не более" : LET МЕСТОИМЕНИЕ $ = "это" IF БУТЫЛОК <> 1 THEN LET БУТЫЛКИ $ = "бутылки" IF БУТЫЛОК = 1 THEN LET BOTTLE $ = "бутылка" ПЕЧАТЬ "Take" ; PRONOUN $ ; "вниз и разнести" ; БУТЫЛКИ $ ;БУТЫЛКА $                                     ; "пива на стене". PRINT : СЛЕДУЮЩИЙ PRINT «Нет больше бутылок пива на стене, не больше бутылки пива.» ПЕЧАТЬ «Сходи в магазин и купи еще, 99 бутылок пива на стене».     

Пример графики:

ЭКРАН 13 DIM a ( 3976 ) AS INTEGER , b ( 3976 ) AS INTEGER , c ( 3976 ) AS INTEGER DIM d ( 3976 ) AS INTEGER , e ( 3976 ) AS INTEGER col % = 16 : col1 % = 16 : col2 % = 16 : col3 % = 16                           : col4 % = 16 col5 % = 16 : col6 % = 16 : col7 % = 16 : flag = 1 : flag1 = 1 flag2 = 1 : flag3 = 1 : flag4 = 1 : flag5 = 1 : flag6 = 1 : flag7 = 1 DO GET ( 1 , 38 )                                    - ( 318 , 62 ), PUT ( 2 , 38 ), , PSET ЛИНИЯ ( 1 , 38 ) - ( 1 , 62 ), Col % ЕСЛИ флаг = 1 ТОГДА Col % = Col % + 1 : ЕСЛИ Col % = 32 ТО флаг = 2 ЕСЛИ флаг = 2 ТО                                    col % = col % - 1 : IF col % = 16 THEN flag = 1 GET ( 2 , 63 ) - ( 319 , 87 ), b PUT ( 1 , 63 ), b , PSET LINE ( 319 , 63 ) - ( 319) , 87 ), col1 % IF flag1 = 1                                ТО col1 % = col1 % + 1 : IF col1 % = 32 THEN flag1 = 2 IF flag1 = 2 THEN col1 % = col1 % - 1 : IF col1 % = 16 THEN flag1 = 1 GET ( 1 , 88 ) - ( 318 , 112 ), c PUT ( 2 ,                                       88 ), c , PSET LINE ( 1 , 88 ) - ( 1 , 112 ), col2 % IF flag2 = 1 THEN col2 % = col2 % + 1 : ЕСЛИ col2 % = 32 THEN flag2 = 2 IF flag2 = 2 THEN col2 % = col2 % - 1 : ЕСЛИ col2 %                                      = 16 THEN flag2 = 1 GET ( 2 , 113 ) - ( 319 , 137 ), d PUT ( 1 , 113 ), d , PSET LINE ( 319 , 113 ) - ( 319 , 137 ), col3 % IF flag3 = 1 THEN col3 % = col3 % + 1 : ЕСЛИ col3                                % = 32 THEN flag3 = 2 IF flag3 = 2 THEN col3 % = col3 % - 1 : IF col3 % = 16 THEN flag3 = 1 GET ( 1 , 138 ) - ( 318 , 162 ), e PUT ( 2 , 138 ), е , PSET ЛИНИЯ ( 1 , 138 )                                     - ( 1 , 162 ), col4 % IF flag4 = 1 THEN col4 % = col4 % + 1 : ЕСЛИ col4 % = 32 THEN flag4 = 2 IF flag4 = 2 THEN col4 % = col4 % - 1 : IF col4 % = 16 THEN flag4 = 1 ЦИКЛ ДО LEN (                                        INKEY $ )

Пузырьковая сортировка :

Пример REM пузырьковой сортировки N = 10 DIM A ( N ) AS INTEGER FOR L = 1 TO N A ( L ) = INT ( RND * 10 + 1 ) NEXT FOR X = 1 TO N FOR Y = 1 TO N - 1 IF A ( X ) < A ( Y ) ТОГДА СВОП                                     A ( X ), A ( Y ) СЛЕДУЮЩИЙ СЛЕДУЮЩИЙ ДЛЯ L = 1 К N ПЕЧАТЬ A ( L ) СЛЕДУЮЩИЙ КОНЕЦ         

Текущее использование [ править ]

QuickBASIC имеет неофициальное сообщество программистов-любителей, которые используют компилятор для написания видеоигр , графических интерфейсов и утилит . [6] [7] [8] Сообщество посвятило этому языку несколько веб-сайтов, форумов и онлайн-журналов . [9] [10]

Сегодня программисты иногда используют эмуляторы DOS , такие как DOSBox , для запуска QuickBASIC в Linux и на современном оборудовании персональных компьютеров, которое больше не поддерживает компилятор. [11] [12] Альтернативы этому включают FreeBASIC и QB64 , но они пока не могут запускать все программы QBasic / QuickBASIC. [13]

С 2008 года набор процедур TCP / IP для QuickBASIC 4.x и 7.1 возродил интерес к этому программному обеспечению. В частности, сообщество любителей старинных компьютеров смогло написать программное обеспечение для старых компьютеров под управлением DOS, что позволяет этим машинам получать доступ к другим компьютерам через локальную сеть или Интернет. Это позволило системам, даже таким старым, как 8088, выполнять новые функции, такие как работа в качестве веб-сервера или использование IRC . [14]

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

Visual Basic от Microsoft был преемником QuickBASIC. Другие компиляторы, такие как PowerBASIC и FreeBASIC , имеют разную степень совместимости. QB64 , мультиплатформенный переводчик QuickBASIC в C ++, сохраняет почти 100% совместимость и компилируется для Windows , Linux и macOS . [15]

См. Также [ править ]

  • QBasic
  • Турбо Базовый
  • QB64

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

  1. ^ Ранняя документация Microsoft отображала имя исключительно как «QuickBASIC», хотя в более поздних ссылках на веб-сайте Microsoft также используется «QuickBasic».
  2. ^ База знаний Microsoft 45850: Управление памятью в компиляторе QuickBasic и Basic
  3. ^ QuickBASIC 4.5 поставлялся в комплекте из пяти 5,25-дюймовых дискет DSDD по 360 КБ или трех 3,5-дюймовых дискет DSDD по 720 КБ. Версия с тремя дисками также может быть установлена ​​с 1,25-дюймовых дисков DSHD размером 1,2 МБ или 1,44 МБ 3,5 дюйма. Чтобы сэкономить средства, файлы были сжаты, и более поздние версии поставлялись всего на четырех 5,25-дюймовых дисках или двух 3,5-дюймовых дисках.
  4. ^ Статья 65291 базы знаний Майкрософт
  5. ^ Системные требования QuickBASIC для Macintosh
  6. ^ "Каталог игр QBASIC" . 2008-11-29. Архивировано из оригинала на 4 сентября 2014 года . Проверено 28 декабря 2008 .
  7. ^ «Обзоры графического интерфейса пользователя» . 2008-12-19 . Проверено 28 декабря 2008 .
  8. ^ "Блог (ОСНОВНОЙ) GUI" . 2011-02-06 . Проверено 6 февраля 2011 .
  9. ^ "Новости Qbasic / Quickbasic" . 2008-12-26 . Проверено 28 декабря 2008 .
  10. ^ "QB Express" . Сайт Пита QBASIC / QuickBasic. 2008 . Проверено 28 декабря 2008 .
  11. ^ Пит Trbovich (2007-03-31). «Как играть со старыми программами QBasic в Linux» . Проверено 28 декабря 2008 .
  12. ^ Kiyote Wolf (2008-05-10). «Киётэ волк на самые разные темы» . QB Express . Проверено 28 декабря 2008 .
  13. ^ Например, FreeBASIC еще не поддерживает обратный вызов QBasic «ON PLAY» для фоновой музыки или использование PEEK и POKE для портов ввода / вывода .
  14. Майк Чемберс (12 июля 2008 г.). «rubbermallet.org: где QuickBASIC становится намного мощнее» . Проверено 28 декабря 2008 .
  15. ^ Виртанен, EK (2008-05-26). «Интервью с Галеоном» . Архивировано 6 марта 2016 года . Проверено 14 июля 2008 .CS1 maint: неподходящий URL ( ссылка )

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

  • История версий Microsoft QuickBasic для MS-DOS