stringtranslate.com

GW-БЕЙСИК

GW-BASIC — это диалект языка программирования BASIC , разработанный Microsoft на базе IBM BASICA . Функционально идентичный BASICA, его интерпретатор BASIC представляет собой полностью автономный исполняемый файл и не требует наличия кассетного ПЗУ BASIC , имевшегося в исходном IBM PC . Он входил в состав операционных систем 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или выхода из операционной системы SYSTEM; эти команды также могут использоваться как операторы программы. В GW-BASIC мало поддержки структурного программирования . Все условные операторы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 из-за многочисленных графических команд. [8] Другие распространенные теории относительно происхождения инициалов включают «Графика и Windows», « Гейтс, Уильям » (в то время президент Microsoft) или «Гейтс-Уиттен» (два главных дизайнера программы). [9] [10]

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

Рекомендации

  1. ^ Аб Тернер, Рич. «Майкрософт с открытым исходным кодом GW-BASIC». Командная строка Windows . Майкрософт . Проверено 22 мая 2020 г.
  2. ^ Добродушная Крыса. «ГВ-БЕЙСИК». Архивировано из оригинала 26 июля 2005 г. Проверено 10 ноября 2009 г.
  3. ^ Леон. «Игры GWBASIC и другие программы». Архивировано из оригинала 26 октября 2009 г. Проверено 10 ноября 2009 г.
  4. ^ Лоренцо, Марк (2017). Бесконечный цикл: история языка программирования BASIC . Филадельфия: Книги SE. п. 122. ИСБН 978-1974-27707-0.
  5. ^ «Информация о версии Microsoft BASIC» . Проверено 12 июня 2008 г.
  6. ^ «Документация и утилиты GW-BASIC» . Архивировано из оригинала 17 декабря 2007 г.
  7. ^ ab «Руководство пользователя GW-BASIC». 1987 год . Проверено 28 июня 2008 г.
  8. ^ аб Грегори Уиттен (13 апреля 2005 г.). «ГВ-БЕЙСИК». Архивировано из оригинала 20 сентября 2008 г. Проверено 29 июня 2008 г.
  9. ^ "Словарь Linux:G" . Проверено 28 июня 2008 г.
  10. ^ "GW-БЕЙСИК". 13 апреля 2005 г. Архивировано из оригинала 29 июня 2008 г. Проверено 28 июня 2008 г.

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