Jump to content

QuickBASIC

(Перенаправлено из компилятора Microsoft QuickBASIC )
QuickBASIC
Разработчик(и) Майкрософт
Первоначальный выпуск 1985 год ; 39 лет назад ( 1985 )
Стабильная версия
7 / 1990 ; 34 года назад ( 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

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

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 ]

См. также

[ редактировать ]
  1. ^ В ранней документации Microsoft это имя отображалось исключительно как «QuickBASIC», хотя в более поздних ссылках на веб-сайте Microsoft также используется «QuickBasic».
  2. ^ База знаний Microsoft 45850: Управление памятью в компиляторе QuickBasic и Basic.
  3. ^ QuickBASIC 4.5 поставлялся на наборе из пяти 5,25-дюймовых дискет DSDD емкостью 360 КБ или трех 3,5-дюймовых дискет DSDD емкостью 720 КБ. Трехдисковую версию также можно было установить с 1,2 МБ 5,25-дюймовых или 1,44 МБ 3,5-дюймовых дисков DSHD. В целях экономии файлы были сжаты, а более поздние версии поставлялись всего на четырех 5,25-дюймовых дисках или двух 3,5-дюймовых дисках.
  4. ^ Статья 65291 базы знаний Microsoft.
  5. ^ QuickBASIC для системных требований Macintosh
  6. ^ «Каталог игр QBASIC» . 29 ноября 2008 г. Архивировано из оригинала 4 сентября 2014 года . Проверено 28 декабря 2008 г.
  7. ^ «Обзоры графического интерфейса» . 19 декабря 2008 г. Проверено 28 декабря 2008 г.
  8. ^ «Блог (BASIC) GUI» . 6 февраля 2011 г. Проверено 6 февраля 2011 г.
  9. ^ «Новости Qbasic/Quickbasic» . 26 декабря 2008 г. Проверено 28 декабря 2008 г.
  10. ^ «Кью-Би Экспресс» . Сайт Пита QBASIC/QuickBasic. 2008 год . Проверено 28 декабря 2008 г.
  11. ^ Пит Трбович (31 марта 2007 г.). «КАК играть со старыми программами QBasic в Linux» . Проверено 28 декабря 2008 г.
  12. ^ Киёте Вольф (10 мая 2008 г.). «Киётэ Волк на самые разные темы» . QB Экспресс . Проверено 28 декабря 2008 г.
  13. ^ Например, FreeBASIC еще не поддерживает обратный вызов QBasic «ON PLAY» для фоновой музыки или использование PEEK и POKE для портов ввода-вывода .
  14. ^ Майк Чемберс (12 июля 2008 г.). "rubbermallet.org: где QuickBASIC становится намного мощнее" . Проверено 28 декабря 2008 г.
  15. ^ Виртанен, ЕК (26 мая 2008 г.). «Интервью с Галеоном» . Архивировано из оригинала 6 марта 2016 года . Проверено 14 июля 2008 г. {{cite web}}: CS1 maint: неподходящий URL ( ссылка )
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: a5bbf6da4816611354317588c2bd0650__1706673000
URL1:https://arc.ask3.ru/arc/aa/a5/50/a5bbf6da4816611354317588c2bd0650.html
Заголовок, (Title) документа по адресу, URL1:
QuickBASIC - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)