GW-BASIC
![]() | |
Разработчик | Microsoft |
---|---|
Впервые появился | 1983 |
Стабильный релиз | 3.23
/ 1988 |
ТЫ | ПРИНАДЛЕЖАЩИЙ |
Лицензия | Запатентованный Лицензия MIT (v1.0) [ 1 ] |
Под влиянием | |
IBM Cassette Basic , IBM Disk Basic , IBM Basica | |
Под влиянием | |
Qbasic , Quickbasic , MSX Basic |
GW-Basic -это диалект основного языка программирования, разработанного Microsoft от IBM Basica . Функционально идентичный базике, его основной интерпретатор является полностью автономным исполняемым файлом и не нуждается в базовом роме кассета, найденном в оригинале. Он был связан с MS-DOS операционными системами на IBM PC-Compatibles от Microsoft.
Язык подходит для простых игр, бизнес -программ и тому подобного. это также было недорогим способом Поскольку он был включен в большинство версий MS-DOS, для многих начинающих программистов изучить основы компьютерного программирования . [ 2 ] [ 3 ] Microsoft также продала базовый компилятор Bascom, совместимый с GW-Basic, для программ, нуждающихся в большей скорости.
По словам Марка Джонса Лоренцо, учитывая масштаб языка, «GW-Basic, возможно, является NE плюс ультра семейства Microsoft, обреченных линейными основами, простирающимися к Altair Basic -и, возможно, даже из основных линейных базовых в целом». [ 4 ]
С выпуском MS-DOS 5.0 место GW-BASIC было занято QBASIC , слегка сокращенной версией интерпретатора части отдельно доступного пакета QuickBasic Interpreter и Compiler. [ 5 ]
21 мая 2020 года Microsoft выпустила исходный код Assembler 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-80 5.x и Basica/Gwbasic.
Программы Basic-80 не используют PEEK
/ POKE
Заявления работают под GW-Basic. Basica добавляет много функций для IBM PC, таких как звук, графика и команды памяти. Особенности, не присутствующие в Basic-80, включают возможность выполнить RND
функция без параметров и возможности также сохранять программы в «защищенном» формате, предотвращая их LIST
редакция Basica также позволяет использовать числа двойной характеристики с математическими и тригонометрическими функциями, такими как COS
, SIN
, и ATN
, который не разрешил в 8-битных версиях базовых. Эта функция обычно не была включена и требует дополнительного параметра /D
в стартапе, т.е. GWBASIC /D
Полем Основная площадь Basic памяти была немного увеличена, если он использовался.
Microsoft не предлагала общую версию MS-DOS до v3.20 в 1986 году; До этого все варианты операционной системы были OEM -версиями. В зависимости от OEM, базовый был распределен как Basica.exe или gwbasic.exe. Первый не следует путать с IBM Basica, который всегда был файл COM . Некоторые варианты базовых имеют дополнительные функции для поддержки конкретной машины. Например, версии DOS AT & T и Tandy включают в себя специальную GW-Basic, которая поддерживает их улучшенные возможности звука и графики.
Первоначальная версия GW-BASIC-такая включенная в Compaq DOS 1.13, выпущенная с портативным Compaq в 1983 году, и была аналогична IBM Basica 1.10. Он использует блоки управления файлами CP/M для доступа к диску и не поддерживает подкаталогов. Более поздние версии поддерживают подкатарии, улучшенную графику и другие возможности.
GW-BASIC 3.20 (1986) добавляет поддержку EGA Graphics (No Version of Basica или GW-BASIC не имела поддержки VGA ) и является последней крупной новой версией, выпущенной до того, как она была заменена QBASIC .
Покупатели видеокарт Hercules получили специальную версию GW-BASIC на утилите карты, который называется HBASIC, которая добавляет поддержку своей монохромной графике 720 × 348. Другие версии Basica/GW-Basic не поддерживают графику Hercules и могут отображать графику только на этой карте с помощью сторонней эмуляции CGA , такой как SIMCGA.
GW-BASIC имеет командной строки на основе интегрированную среду разработки , основанная на Dartmouth Basic . Используя клавиши движения курсора, любая линия, отображаемая на экране, может быть отредактирована. Он также включает в себя ярлыки функциональных ключей внизу экрана. Как и в других ранних версиях Microcomputer Basic, GW-Basic не имеет многих структур, необходимых для структурированного программирования , таких как локальные переменные. GW-базовые программы выполнялись относительно медленно, потому что это был интерпретированный язык . Все программные линии должны быть пронумерованы; Все немеренные строки считаются командами в прямом режиме, которые будут выполнены немедленно. Исходные файлы программы обычно сохраняются в двоичном сжатом формате с заменой ключевых слов с токенами , с опцией для сохранения в ASCII . текстовой форме [ 6 ]
У среды командной строки GW-базы есть команды 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 никогда не был реализован на совместимых, кассетные операции не поддерживаются. GW-BASIC может играть в простую музыку, используя PLAY
Заявление, нуждающаяся в цепочке заметок, представленных на языке музыкальных макросов , например, PLAY "edcdeeL2edfedL4c"
Полем Более низкий уровень контроля возможна с SOUND
Заявление, которое принимает аргументы частоты в Герце и длину в часах для стандартного внутреннего динамика ПК на машинах IBM. Следовательно, звук ограничен одноканальными звуковыми сигналами и свистками, которые получают «деловую» машину. GW-Basic для Tandy 1000 позволяет до трех каналов звука для SOUND
и PLAY
команды [ 7 ]
Имя
[ редактировать ]Есть несколько теорий о том, что представляют инициалы «GW». Грег Уиттен , ранний сотрудник Microsoft , который разработал стандарты в основной линии компилятора компании, говорит, что Билл Гейтс выбрал название GW-Basic. Уиттен называет это как Gee-Whiz Basic и не уверен, назвал ли Гейтс программу в честь него. [ 8 ] Руководство по пользователю Microsoft от Microsoft Press также относится к нему базовым именем Gee-Whiz . [ Цитация необходима ] Возможно, это также было прозвище Gee-Whiz из-за многочисленных графических команд. [ 8 ] Другие распространенные теории относительно происхождения инициалов включают «графику и окна», « Гейтс, Уильям » (в то время президент Microsoft) или «Gates - What Then» (два основных дизайнера программы). [ 9 ] [ 10 ]
Смотрите также
[ редактировать ]Ссылки
[ редактировать ]- ^ Jump up to: а беременный Тернер, Рич. «Microsoft с открытым исходным кодом GW-Basic» . Командная строка Windows . Microsoft . Получено 22 мая 2020 года .
- ^ Доброжелательный. "GW-BASIC" . Архивировано из оригинала 2005-07-26 . Получено 2009-11-10 .
- ^ Леон. «Gwbasic Games & другие программы» . Архивировано из оригинала на 2009-10-26 . Получено 2009-11-10 .
- ^ Лоренцо, Марк (2017). Бесконечный цикл: история основного языка программирования . Филадельфия: SE книги. п. 122. ISBN 978-1974-27707-0 .
- ^ «Информация Microsoft Basic версии» . Получено 2008-06-12 .
- ^ «GW-базовая документация и утилиты» . Архивировано из оригинала 2007-12-17.
- ^ Jump up to: а беременный «Руководство пользователя GW-BASIC» . 1987 . Получено 2008-06-28 .
- ^ Jump up to: а беременный Грегори Уиттен (2005-04-13). "GW-BASIC" . Архивировано с оригинала 2008-09-20 . Получено 2008-06-29 .
- ^ "Linux Dictionary: G" . Получено 2008-06-28 .
- ^ "GW-BASIC" . 2005-04-13. Архивировано из оригинала 2008-06-29 . Получено 2008-06-28 .
Внешние ссылки
[ редактировать ]- Исходный код GW-базы на GitHub
- GW-Basic Prograter Program and Files Download Site на машине Wayback (архивировано 27 октября 2009 г.)
- Руководство пользователя GW-BASIC
- Информационный центр Гэри Биде архив 2014-07-06 в The Wayback Machine относительно Basic, с датами сроков для DOS, Windows и основных диалектов
- GW-BASIC -ресурс для GW-BASIC, собранный из различных источников.
- Прекратировали основы Microsoft
- Языки программирования, созданные в 1983 году
- Основные переводчики
- Основная языковая семья программирования
- Программное обеспечение с использованием лицензии MIT
- Программное обеспечение для ассамблеи
- Ранее проприетарное программное обеспечение
- Microsoft Free Software
- Языки программирования Microsoft