Во времена первых IBM PC, как и у большинства их современников, интерпретатор BASIC жил прямо в ПЗУ компьютера. Даже когда язык перестал поставляться в ROM, IBM-совместимые машины ещё долго комплектовались GW-BASIC. Новый проект под названием Thoreau BASIC задаётся вопросом: а что, если бы так было и сегодня? По сути это тот же GW-BASIC, но переосмысленный под реалии XXI века.
GW-BASIC в своё время распространялся вместе с MS-DOS и стал преемником диалекта BASICA; позже его место занял QBasic, а культовые номера строк и операторы GOTO постепенно ушли в историю. Thoreau BASIC сознательно сохраняет весь этот багаж: он заявлен как полностью кодосовместимый со старыми программами на GW-BASIC, так что древние листинги со всеми их GOTO должны запускаться без переделки.
Отличие в том, что под капотом — вполне современная система. Интерпретатор умеет загружаться прямо из UEFI на x86-ПК или работать под Windows, задействуя 64-битную адресацию памяти и многопоточность. Иными словами, ностальгический синтаксис сочетается с ресурсами, о которых авторы оригинального GW-BASIC не могли и мечтать.
Графику тоже подтянули к нынешним стандартам: поддерживается 24-битный цвет при любом разрешении, которое потянет монитор. В язык встроен внушительный набор команд для работы с файлами, графикой (включая спрайты), вводом с мыши и клавиатуры, а также 32-канальный звук.
Важная деталь: Thoreau BASIC — не чисто интерпретируемый язык. Программы можно скомпилировать и запускать как под Windows, так и на «голом железе» x86-машин через UEFI, без операционной системы. Для языка, который у многих ассоциируется исключительно с построчным выполнением, это заметный шаг вперёд.
Распространяется проект не как open source, а по модели «плати сколько хочешь» на площадке Itch.io — там же выложено несколько примеров, по которым можно оценить возможности языка.
Попытки возродить BASIC предпринимались не раз — достаточно вспомнить MoonBASIC или BASIC-256. Доминирующей силой, какой он был на заре домашних компьютеров, язык уже не станет, и, пожалуй, это к лучшему. И всё же приятно знать, что при желании по-прежнему можно загрузиться прямо в BASIC — хотя бы просто потому, что это возможно.

















