Разделы

ПО Свободное ПО Техника

Microsoft открыла исходный код легендарного BASIC

Microsoft представила в открытый доступ исходные коды интерпретатора языка программирования GW-BASIC, созданного 37 лет назад и поставлявшегося с ОС MS-DOS. В свое время на этом языке писали программы для игр и сопровождения бизнеса.

37 лет спустя

Компания Microsoft выложила в репозитории GitHub исходные тексты интерпретатора языка программирования GW-BASIC 1.0, созданного на ассемблере системы команд 16-битных процессоров Intel 8088. Исходники датируются 10 февраля 1983 г., то есть, были написаны более 37 лет назад.

Изначально интерпретатором языка GW-BASIC комплектовались поставки операционных систем MS-DOS для семейства так называемых «IBM-совместимых ПК», вплоть до выпуска MS-DOS версии 5.0 в июне 1991 г., где GW-BASIC был заменен на более прогрессивный по тем временам QBasic.

Код интерпретатора GW-BASIC представлен по лицензии MIT (лицензия открытого ПО Массачусетского технологического института, совместима с GPL/DFSG и одобрена OSI – прим. CNews), что подразумевает возможность свободного безвозмездного изменения, распространения и использования кода в своих программах. Тем не менее, в репозитории код представлен «только для чтения», и запросы на его изменение в основном репозитории приниматься не будут, поскольку код «представлен для исторической справки», отмечено в примечании Microsoft.

В марте 2014 г. CNews сообщил о том, что Microsoft передала исходные коды операционной системы MS-DOS 1.1 (1982 г.) и MS-DOS 2.0 (1983 г.), написанных на ассемблере для процессоров Intel 8086, Калифорнийскому музею компьютерной истории. Исходники можно было безвозмездно загрузить с сайта музея.

В июне 2018 г. CNews сообщил о том, что Microsoft приобрела GitHub, крупнейший в мире онлайн-сервис для хранения и распространения исходного кода ИТ-проектов, за $7,5 млрд. Услугами репозитория пользуются более 28 млн разработчиков ПО, которые хранят в нем более 80 млн исходных кодов своих программ.

В сентябре 2018 г. исходники MS-DOS 1.1 и 2.0 появились в репозитории GitHub.

Язык программирования GW-BASIC

Язык программирования GW-BASIC является одним из вариантов языка BASIC (Beginner’s All-purpose Symbolic Instruction Code), разработанным компанией Microsoft на базе языка IBM BASICA (разработан в Microsoft в 1991 г., использовался в ранних ПК IBM для загрузки IBM PC DOS из запаянных в материнскую плату чипов ПЗУ).

wg1.jpg
«IBM-совместимый» ПК Compaq Portable

На языке GW-BASIC писали несложные игры, деловые приложения и подобные программы. Благодаря поставке в составе MS-DOS, GW-BASIC также был одним из наиболее простых и недорогих способов приобщиться к основам программирования.

Первые версии ОС Microsoft MS-DOS

Несмотря на полную функциональную идентичность с BASICA, интерпретатор языка GW-BASIC обладал полной автономностью и не требовал для загрузки специальных ПЗУ, поскольку поставлялся в составе ОС MS-DOS. Microsoft также продавала отдельно совместимый с GW-BASIC компилятор BASCOM, для создания более быстрых программ.

Язык GW-BASIC обладал интегрированной средой разработки на основе командной строки по образу Dartmouth BASIC, позволяя редактировать любую строку на экране перемещением курсора. Все строки программы нумеровались, а ненумерованные строки являлись командами прямого режима для немедленного исполнения.

Почему в «Норникеле» отказались от Telegram в корпоративных коммуникациях и что используют взамен
Цифровизация

GW-BASIC поддерживал ряд устройств ввода, таких как джойстик и световое перо, воспроизводил простую музыку с помощью оператора PLAY со строки нот, а также умел считывать и записывать файлы и COM-порты.

Ключевые возможности GW-BASIC были портированы из MBASIC 5.x, но впоследствии были дополнены рядом функций, поддерживаемых аппаратной платформой IBM PC, таких как числа двойной точности с математическими и тригонометрическими функциями, а также команды звука, графики и памяти.

Самая первая версия GW-BASIC, представленная нынче в репозитории GitHub, поставлялась с ОС DOS 1.13 в составе «IBM-совместимых» ПК Compaq Portable с 1983 г. Более поздняя версия GW-BASIC 3.20, представленная в 1986 г., получила поддержку графики EGA.

Олег Пашинин, «Философия.ИТ» — Как в «Росатоме» импортозаместили западную СЭД
Импортонезависимость

До поддержки изображения с качеством VGA в GW-BASIC дело так и не дошло в связи с тем, что с выпуском MS-DOS 5.0 место GW-BASIC занял QBasic, который представлял собой часть интерпретатора отдельного компилятора QuickBASIC.

По поводу этимологии названия GW-BASIC существует несколько легенд. Так, одна из них утверждает, что в названии языка увековечены инициалы Грега Уиттена (Greg Whitten), одного из первых сотрудников Microsoft, работавшего над стандартизацией компиляторов семейства BASIC.

Среди других версий – инициалы ведущих разработчиков, Гейтса и Уиттена (Gates-Whitten), прозвище Gee-Whiz, или «Графика и Windows» (Graphics and Windows) – за поддержку графических команд, джойстика, мыши и светового пера, и даже «Гейтс, Уильям» (Gates, William), в честь занимавшего в то время пост президента Microsoft Билла Гейтса.

Владимир Бахур