QuickBASIC
![]() Начальный экран | |
Разработчики) | Майкрософт |
---|---|
Начальная версия | 1985 год |
Стабильная версия | 7
/ 1990 |
Операционная система | MS-DOS , классическая Mac OS |
Платформа | х86 , Моторола 68000 |
Тип | Майкрософт БЕЙСИК |
Лицензия | Собственный |
Веб-сайт | www ![]() |
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 (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
ПЕЧАТЬ «Привет, мир»
КОНЕЦ
LET BOTTLES = 99 : LET BOTTLES$ = "99" : LET BOTTLE$ = "бутылки"
FOR A = от 1 до 99
PRINT BOTTLES$ ; БУТЫЛКА$ ; "пива на стене" ; БУТЫЛКИ$ ; БУТЫЛКА$ ; «пива».
LET BOTTLES = BOTTLES - 1
IF BOTTLES > 0 THEN LET BOTTLES$ = LTRIM$ ( STR$ ( BOTTLES )) : LET PRONOUN$ = "один"
IF BOTTLES = 0 THEN LET BOTTLES$ = "не более" : LET PRONOUN$ = "it"
IF BOTTLES <> 1 THEN LET BOTTLE$ = "bottles"
IF BOTTLES = 1 THEN LET BOTTLE$ = "bottle"
PRINT "Take" ; МЕСТОИМЕНИЕ$ ; «спустить и раздать» ; БУТЫЛКИ$ ; БУТЫЛКА$ ; «пива на стене».
РАСПЕЧАТАЙТЕ : СЛЕДУЮЩАЯ РАСПЕЧАТКА
« Больше никаких бутылок пива на стене, никаких бутылок пива».
ПЕЧАТЬ «Иди в магазин и купи еще, 99 бутылок пива на стене».
Пример графики:
ЭКРАН 13
DIM a ( 3976 ) КАК ЦЕЛОЕ , b ( 3976 ) КАК ЦЕЛОЕ , c ( 3976 ) КАК ЦЕЛОЕ
DIM d ( 3976 ) КАК ЦЕЛОЕ , e ( 3976 ) КАК ЦЕЛОЕ
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 ), a
PUT ( 2 , 38 ), a , PSET
LINE ( 1 , 38 ) - ( 1 , 62 ), col %
IF флаг = 1 THEN col % = col % + 1 : IF col % = 32 THEN флаг = 2
IF флаг = 2 THEN col % = col % - 1 : IF col % = 16 THEN флаг = 1
GET ( 2 , 63 ) - ( 319 , 87 ), b
PUT ( 1 , 63 ), b , PSET
LINE ( 319 , 63 ) - ( 319 , 87 ), col1 %
IF flag1 = 1 THEN 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 : IF col2 % = 32 THEN flag2 = 2
IF flag2 = 2 THEN col2 % = col2 % - 1 : IF 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 : IF 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 ), e , PSET
LINE ( 1 , 138 ) - ( 1 , 162 ), col4 %
IF flag4 = 1 THEN col4 % = col4 % + 1 : IF 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 А X) < A(Y) THEN SWAP A(X), A(Y)
NEXT
NEXT
FOR L = 1 TO N
PRINT A(L)
NEXT
(
Текущее использование [ править ]
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]
Преемники [ править ]
Microsoft Visual Basic был преемником QuickBASIC. Другие компиляторы, такие как PowerBASIC и FreeBASIC , имеют разную степень совместимости. QB64 , мультиплатформенный транслятор QuickBASIC в C++, сохраняет почти 100% совместимость и компилируется для Windows , Linux и macOS . [15]
См. также [ править ]
Ссылки [ править ]
- ^ В ранней документации Microsoft это имя отображалось исключительно как «QuickBASIC», хотя в более поздних ссылках на веб-сайте Microsoft также используется «QuickBasic».
- ^ База знаний Microsoft 45850: Управление памятью в компиляторе QuickBasic и Basic.
- ^ QuickBASIC 4.5 поставлялся на наборе из пяти 5,25-дюймовых дискет DSDD емкостью 360 КБ или трех 3,5-дюймовых дискет DSDD емкостью 720 КБ. Трехдисковую версию также можно было установить с 1,2 МБ 5,25-дюймовых или 1,44 МБ 3,5-дюймовых дисков DSHD. В целях экономии файлы были сжаты, а более поздние версии поставлялись всего на четырех 5,25-дюймовых дисках или двух 3,5-дюймовых дисках.
- ^ Статья 65291 базы знаний Microsoft.
- ^ QuickBASIC для системных требований Macintosh
- ^ «Каталог игр QBASIC» . 29 ноября 2008 г. Архивировано из оригинала 4 сентября 2014 года . Проверено 28 декабря 2008 г.
- ^ «Обзоры графического интерфейса» . 19 декабря 2008 г. Проверено 28 декабря 2008 г.
- ^ «Блог (BASIC) GUI» . 6 февраля 2011 г. Проверено 6 февраля 2011 г.
- ^ «Новости Qbasic/Quickbasic» . 26 декабря 2008 г. Проверено 28 декабря 2008 г.
- ^ «Кью-Би Экспресс» . Сайт Пита QBASIC/QuickBasic. 2008 год . Проверено 28 декабря 2008 г.
- ^ Пит Трбович (31 марта 2007 г.). «КАК играть со старыми программами QBasic в Linux» . Проверено 28 декабря 2008 г.
- ^ Киёте Вольф (10 мая 2008 г.). «Киётэ Волк на самые разные темы» . QB Экспресс . Проверено 28 декабря 2008 г.
- ^ Например, FreeBASIC еще не поддерживает обратный вызов QBasic «ON PLAY» для фоновой музыки или использование PEEK и POKE для портов ввода-вывода .
- ^ Майк Чемберс (12 июля 2008 г.). "rubbermallet.org: где QuickBASIC становится намного мощнее" . Проверено 28 декабря 2008 г.
- ^ Виртанен, ЕК (26 мая 2008 г.). «Интервью с Галеоном» . Архивировано из оригинала 6 марта 2016 года . Проверено 14 июля 2008 г.
{{cite web}}
: CS1 maint: неподходящий URL ( ссылка )