Microsoft представила исходный код интерпретатора языка программирования GW-BASIC. 37 лет назад он был одним из самых популярных языков для написания программ и игр.
Где посмотреть
На GitHub Microsoft выложила исходники языка GW-BASIC на ассемблере для процессора Intel 8088, датированные 10 февраля 1983 года. Представленный интерпретатор входил в состав операционных систем MS-DOS, пока компания не выпустила версию 5.0 своей ОС в июне 1991 года.
Код распространяется по лицензии открытого ПО Массачусетского технологического института (MIT), что позволяет его свободное бесплатное использование и распространение. Однако в Microsoft напоминают, что исходники BASIC загружены для исторической справки, поэтому компания не будет принимать на GitHub запросы на изменение кода.
Особенности языка
GW-BASIC – разновидность языка BASIC для ранних IBM-компьютеров. В отличие от своего родителя, он не требовал наличия ПЗУ с предустановленным интерпретатором, что упрощало процесс использования. Первая версия языка, представленная в 1983 году, предназначалась для ПК Compaq Portable. Более поздняя версия 3.2, выпущенная в 1986 году, начала поддерживать графику EGA.
GW-BASIC использовал интегрированную среду разработки на базе командной строки, работающей по принципу Dartmouth BASIC. Благодаря этому было возможно редактировать любую строку на экране перемещением курсора. Все строки программы нумеровались, а ненумерованные строки являлись командами прямого режима для немедленного исполнения.
Еще одна отличительная особенность GW-BASIC – поддержка очень большого числа устройств ввода вроде джойстика и светового пера. Также он мог воспроизводить простую музыку с помощью оператора PLAY со строки нот, считывать и записывать файлы и COM-порты.
Интерпретатор GW-BASIC поставлялся для всех IBM-совместимых ПК вплоть до 1991 года, когда Microsoft не заменила его на более продвинутый QBasic, который вошел в состав MS-DOS 5.0.
Причины популярности
GW-BASIC был популярным языком для написания офисных программ и игр. В отличие от более высокоуровневых языков (Fortran, Lisp, COBOL), он предоставлял больше возможностей управления памятью и позволял писать менее требовательные к вычислительным ресурсам приложения. Персональные компьютеры 80-ых редко когда обладали объемом ОЗУ выше 1 МБ, поэтому программистам приходилось экономить каждый байт и продумывать каждую строку кода на предмет эффективности.