GW-БЕЙСИК
![]() | |
Разработчик | Майкрософт |
---|---|
Впервые появился | 1983 год |
Стабильная версия | 3.23
/ 1988 |
ТЫ | ПРИНАДЛЕЖАЩИЙ |
Лицензия | Собственный Лицензия MIT (v1.0) [ 1 ] |
Под влиянием | |
IBM Cassette BASIC , IBM Disk BASIC , IBM BASICA | |
Под влиянием | |
QBasic , QuickBasic , MSX BASIC |
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 включают:
WHILE...WEND
петли- Имена переменных длиной до 40 символов.
OPTION BASE
оператор для установки начального индекса переменных массива как 0 или 1- Динамическое выделение строкового пространства
LINE INPUT
, что позволяло игнорировать символы-разделители полей, такие как запятаяCALL
оператор для выполнения процедур машинного языкаCHAIN
иMERGE
команды- Возможность сохранять программы либо в токенизированном двоичном формате, либо в текстовом ASCII.
Возможность «сжимать» строки программы путем пропуска пробелов, общая особенность более ранних реализаций 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
/ ELSE
условные операторы должны быть написаны в одну строку, хотя WHILE
/ WEND
операторы могут группировать несколько строк. Функции можно определить только с помощью одной строки DEF FNf(x)=<mathematical function of x>
заявление (например, DEF FNLOG(base,number)=LOG(number)/LOG(base)
). Тип данных переменных можно указать с помощью символа в конце имени переменной: A$
представляет собой строку символов, A%
является целым числом и т. д. Группам переменных также можно присвоить типы по умолчанию на основе начальной буквы их имени с помощью DEFINT
, DEFSTR
и т. д., заявления. Тип по умолчанию для необъявленных переменных, не идентифицируемых такими операторами типизации, — это числа с плавающей запятой одинарной точности ( 32-битный MBF ). [ 7 ]
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 ] Другие распространенные теории относительно происхождения инициалов включают «Графика и Windows», « Гейтс, Уильям » (в то время президент Microsoft) или «Гейтс-Уиттен» (два главных дизайнера программы). [ 9 ] [ 10 ]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Jump up to: а б Тернер, Рич. «Майкрософт с открытым исходным кодом GW-BASIC» . Командная строка Windows . Майкрософт . Проверено 22 мая 2020 г.
- ^ Добрая Крыса. «ГВ-БЕЙСИК» . Архивировано из оригинала 26 июля 2005 г. Проверено 10 ноября 2009 г.
- ^ Леон. «Игры GWBASIC и другие программы» . Архивировано из оригинала 26 октября 2009 г. Проверено 10 ноября 2009 г.
- ^ Лоренцо, Марк (2017). Бесконечный цикл: история языка программирования BASIC . Филадельфия: Книги SE. п. 122. ИСБН 978-1974-27707-0 .
- ^ «Информация о версии Microsoft BASIC» . Проверено 12 июня 2008 г.
- ^ «Документация и утилиты GW-BASIC» . Архивировано из оригинала 17 декабря 2007 г.
- ^ Jump up to: а б «Руководство пользователя GW-BASIC» . 1987 год . Проверено 28 июня 2008 г.
- ^ Jump up to: а б Грегори Уиттен (13 апреля 2005 г.). «ГВ-БЕЙСИК» . Архивировано из оригинала 20 сентября 2008 г. Проверено 29 июня 2008 г.
- ^ «Словарь Linux:G» . Проверено 28 июня 2008 г.
- ^ «ГВ-БЕЙСИК» . 13 апреля 2005 г. Архивировано из оригинала 29 июня 2008 г. Проверено 28 июня 2008 г.
Внешние ссылки
[ редактировать ]- Исходный код GW-BASIC на GitHub
- Программа-интерпретатор GW-BASIC и сайт загрузки файлов на Wayback Machine (архивировано 27 октября 2009 г.)
- Руководство пользователя GW-BASIC
- Информационный центр Гэри Бина. Архивировано 6 июля 2014 г. в Wayback Machine относительно BASIC, с указанием дат для DOS, Windows и диалектов BASIC.
- GW-BASIC – Ресурс для GW-BASIC, собранный из различных источников.
- Производство Microsoft BASIC прекращено
- Языки программирования, созданные в 1983 году.
- Бейсик-интерпретаторы
- Семейство языков программирования BASIC
- Программное обеспечение, использующее лицензию MIT
- Программное обеспечение на языке ассемблера
- Ранее проприетарное программное обеспечение
- бесплатное программное обеспечение Майкрософт
- Языки программирования Майкрософт