QuickBASIC
Разработчик(и) | Майкрософт |
---|---|
Первоначальный выпуск | 1985 год |
Стабильная версия | 7
/ 1990 |
Операционная система | MS-DOS , классическая Mac OS |
Платформа | х86 , Моторола 68000 |
Тип | Майкрософт БЕЙСИК |
Лицензия | Собственный |
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-битная адресация была отключена.
Пример синтаксиса
[ редактировать ]Привет, мир , самая короткая версия:
?"Hello, World"
Привет, Мир , расширенная версия:
CLS
PRINT "Hello, World"
END
LET BOTTLES = 99: LET BOTTLES$ = "99": LET BOTTLE$ = " bottles"
FOR A = 1 TO 99
PRINT BOTTLES$; BOTTLE$; " of beer on the wall, "; BOTTLES$; BOTTLE$; " of beer."
LET BOTTLES = BOTTLES - 1
IF BOTTLES > 0 THEN LET BOTTLES$ = LTRIM$(STR$(BOTTLES)): LET PRONOUN$ = "one"
IF BOTTLES = 0 THEN LET BOTTLES$ = "no more": LET PRONOUN$ = "it"
IF BOTTLES <> 1 THEN LET BOTTLE$ = " bottles"
IF BOTTLES = 1 THEN LET BOTTLE$ = " bottle"
PRINT "Take "; PRONOUN$; " down and pass it around, "; BOTTLES$; BOTTLE$; " of beer on the wall."
PRINT: NEXT A
PRINT "No more bottles of beer on the wall, no more bottles of beer."
PRINT "Go to the store and buy some more, 99 bottles of beer on the wall."
Пример графики:
SCREEN 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), a
PUT (2, 38), a, PSET
LINE (1, 38)-(1, 62), col%
IF flag = 1 THEN col% = col% + 1: IF col% = 32 THEN flag = 2
IF flag = 2 THEN 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 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
LOOP UNTIL LEN(INKEY$)
REM sample of bubble sort
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) THEN SWAP A(X), A(Y)
NEXT
NEXT
FOR L = 1 TO N
PRINT A(L)
NEXT
END
Текущее использование
[ редактировать ]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 ( ссылка )