stringtranslate.com

GW-БАЗОВЫЙ

GW-BASIC — диалект языка программирования BASIC , разработанный Microsoft на основе IBM BASICA . Функционально идентичный BASICA, его интерпретатор BASIC является полностью автономным исполняемым файлом и не нуждается в Cassette BASIC ROM, который был в оригинале. Он был включен в состав операционных систем MS-DOS на IBM PC–совместимых компьютерах компанией Microsoft.

Язык подходит для простых игр, бизнес-программ и т. п. Поскольку он был включен в большинство версий MS-DOS, для многих начинающих программистов он также был недорогим способом изучить основы компьютерного программирования . [2] [3] Microsoft также продавала компилятор BASIC , BASCOM, совместимый с GW-BASIC, для программ, которым требовалась большая скорость.

По словам Марка Джонса Лоренцо, учитывая масштаб языка, «GW-BASIC, возможно, является лучшим из семейства BASIC с нумерацией строк от Microsoft, восходящего к Altair BASIC  , а возможно, и из семейства BASIC с нумерацией строк в целом». [4]

С выпуском MS-DOS 5.0 место GW-BASIC занял QBasic , слегка урезанная версия интерпретаторной части отдельно доступного пакета интерпретатора и компилятора QuickBASIC . [5]

21 мая 2020 года Microsoft опубликовала исходный код ассемблера 8088 для GW-BASIC 1.0 на GitHub под лицензией MIT . [1]

Функции

IBM BASICA и GW-BASIC в значительной степени являются портами MBASIC версии 5.x, но с дополнительными функциями специально для оборудования IBM PC. Общие функции BASIC-80 5.x и BASICA/GW-BASIC включают:

Возможность «сжимать» строки программы путем пропуска пробелов, обычная функция ранних реализаций Microsoft BASIC, была удалена из BASIC-80 5.x и BASICA/GWBASIC.

Программы BASIC-80, не использующие операторы PEEK/ POKE, запускаются под GW-BASIC. BASICA добавляет множество функций для IBM PC, таких как звук, графика и команды памяти. Функции, отсутствующие в BASIC-80, включают возможность выполнения функции RNDбез параметров и возможность сохранения программ в «защищенном» формате, что предотвращает их редактирование LIST. BASICA также позволяет использовать числа двойной точности с математическими и тригонометрическими функциями, такими как COS, SIN, и ATN, что не допускалось в 8-битных версиях BASIC. Эта функция обычно не была включена и требовала необязательного параметра /Dпри запуске, т. е . . Объем памятиGWBASIC /D BASIC немного увеличивался, если она использовалась.

Microsoft не предлагала общую версию MS-DOS до версии 3.20 в 1986 году; до этого все варианты операционной системы были OEM-версиями. В зависимости от OEM-производителя BASIC распространялся как BASICA.EXE или GWBASIC.EXE. Первый не следует путать с IBM BASICA, который всегда поставлялся как COM-файл . Некоторые варианты BASIC имеют дополнительные функции для поддержки определенной машины. Например, версии DOS для AT&T и Tandy включают специальный GW-BASIC, который поддерживает их расширенные звуковые и графические возможности.

Первоначальная версия GW-BASIC была включена в Compaq DOS 1.13, выпущенную вместе с Compaq Portable в 1983 году, и была аналогична IBM BASICA 1.10. Она использует блоки управления файлами, полученные из CP/M, для доступа к диску и не поддерживает подкаталоги. Более поздние версии поддерживают подкаталоги, улучшенную графику и другие возможности.

GW-BASIC 3.20 (1986) добавляет поддержку графики EGA (ни одна версия BASICA или GW-BASIC не имела поддержки VGA ) и является последней крупной новой версией, выпущенной перед заменой на QBasic .

Покупатели графических карт Hercules получили специальную версию GW-BASIC на служебном диске карты, которая называется HBASIC, которая добавляет поддержку ее монохромной графики 720×348. Другие версии BASICA/GW-BASIC не поддерживают графику Hercules и могут отображать графику на этой карте только с помощью сторонней эмуляции CGA , такой как SIMCGA.

GW-BASIC имеет интегрированную среду разработки (IDE) на основе командной строки , основанную на Dartmouth BASIC . Используя клавиши перемещения курсора, можно редактировать любую строку, отображаемую на экране. Он также включает сочетания функциональных клавиш в нижней части экрана. Как и другие ранние версии BASIC для микрокомпьютеров , GW-BASIC не имеет многих структур, необходимых для структурного программирования , таких как локальные переменные. Программы GW-BASIC выполняются относительно медленно, поскольку это интерпретируемый язык . Все строки программы должны быть пронумерованы; все не пронумерованные строки считаются командами в прямом режиме, которые должны быть выполнены немедленно. Исходные файлы программ обычно сохраняются в двоичном сжатом формате с токенами , заменяющими ключевые слова, с возможностью сохранения в текстовой форме ASCII . [6]

В командной строке GW-BASIC есть команды для RUN, LOAD, SAVE, LISTтекущей программы или выхода из операционной ; эти команды также могут использоваться в качестве операторов программы. В GW-BASIC SYSTEMмало поддержки структурного программирования . Все условные операторыIF / THEN/ должны быть записаны в одну строку, хотя операторы / могут группировать несколько строк. Функции могут быть определены только с помощью однострочного оператора (например, ). Тип данных переменных может быть указан с помощью символа в конце имени переменной: это строка символов, это целое число и т. д. Группам переменных также могут быть установлены типы по умолчанию на основе начальной буквы их имени с помощью операторов , и т. д. Тип по умолчанию для необъявленных переменных, не идентифицированных такими операторами ввода, является плавающей точкой одинарной точности ( 32-битный MBF ). [7]ELSE WHILEWENDDEF FNf(x)=<mathematical function of x>DEF FNLOG(base,number)=LOG(number)/LOG(base)A$A%DEFINTDEFSTR

GW-BASIC позволяет использовать джойстик и устройства ввода светового пера . GW-BASIC может читать и записывать в файлы и COM-порты ; он также может выполнять перехват событий для портов. Поскольку интерфейс порта кассетной ленты оригинального IBM PC никогда не был реализован на совместимых компьютерах, операции с кассетами не поддерживаются. GW-BASIC может воспроизводить простую музыку с помощью оператора PLAY, требующего строку нот, представленную на музыкальном макроязыке , например, PLAY "edcdeeL2edfedL4c". Более низкоуровневое управление возможно с SOUNDоператором , который принимает аргументы частоты в герцах и длины в тактах для стандартного внутреннего динамика ПК в машинах IBM. Следовательно, звук ограничен одноканальными гудками и свистками, как и подобает «деловой» машине. GW-BASIC для Tandy 1000 допускает до трех каналов звука для команд SOUNDи PLAY. [7]

Имя

Существует несколько теорий о том, что означают инициалы «GW». Грег Уиттен , один из первых сотрудников Microsoft , который разработал стандарты в линейке компиляторов BASIC компании, говорит, что Билл Гейтс выбрал название GW-BASIC. Уиттен называет его Gee-Whiz BASIC и не уверен, назвал ли Гейтс программу в его честь. [8] В руководстве пользователя Microsoft из Microsoft Press он также упоминается под названием Gee-Whiz BASIC. [ необходима цитата ] Возможно, его также прозвали Gee-Whiz из-за его многочисленных графических команд. [8] Другие распространённые теории о происхождении инициалов включают «Graphics and Windows», « Gates, William » (президент Microsoft в то время) или «Gates–Whitten» (два главных разработчика программы). [9] [10]

Смотрите также

Ссылки

  1. ^ ab Turner, Rich. "Microsoft Open-Sources GW-BASIC". Командная строка Windows . Microsoft . Получено 22 мая 2020 г. .
  2. ^ KindlyRat. "GW-BASIC". Архивировано из оригинала 2005-07-26 . Получено 2009-11-10 .
  3. ^ Леон. "GWBASIC Games & Other Programs". Архивировано из оригинала 2009-10-26 . Получено 2009-11-10 .
  4. ^ Лоренцо, Марк (2017). Бесконечный цикл: история языка программирования BASIC . Филадельфия: SE Books. стр. 122. ISBN 978-1974-27707-0.
  5. ^ "Информация о версии Microsoft BASIC" . Получено 2008-06-12 .
  6. ^ "GW-BASIC Documentation and Utilities". Архивировано из оригинала 2007-12-17.
  7. ^ ab "GW-BASIC User's Guide". 1987. Получено 28.06.2008 .
  8. ^ ab Gregory Whitten (2005-04-13). "GW-BASIC". Архивировано из оригинала 2008-09-20 . Получено 29-06-2008 .
  9. ^ "Linux Dictionary:G" . Получено 28.06.2008 .
  10. ^ "GW-BASIC". 2005-04-13. Архивировано из оригинала 2008-06-29 . Получено 2008-06-28 .

Внешние ссылки