Впервые с Фортом я познакомился, когда учился в классе десятом. Тогда у меня уже стоял дома первый персональный компьютер "Микроша". Наигравшись в игры, я занялся изучением программирования. В те времена выбор был невелик, и кроме Бейсика вторым языком для меня стал Ассемблер. Хотя, надо сказать, ассемблерная мнемоника меня не интересовала - я писал сразу в кодах. Благо, простые инструкции процессора К580 (аналог Intel 8080) легко запоминались в виде двух-трех байт. Нехитрая операционная система "Микроши" позволяла непосредственно вводить байты в любые адреса ОЗУ (уже позже для этой цели я написал свой экранный редактор). Свои успехи в изучении Ассемблера я закрепил в написании игр, которые позже реализовывал зеленоградский кооператив "Электрон" по заключенному со мной договору.
Не считая промежуточных языков типа Паскаля, полный объем которого у меня тогда не было возможности изучать из-за отсутствия приличного компилятора для "Микроши", следующим и главным языком для меня стал Форт. Уже тогда меня восхищал его потенциал. Первой книгой по теме стала "Язык Форт и его реализации". К нему нашелся и добротный компилятор. Знание машинных кодов позволяло мне легко изучать его шитый код. Дальше были другие Форт-компиляторы с другими разновидностями шитого кода.
Настало время, когда я стал подумывать о написании своего компилятора, который создавал бы исполняемый файл. И выбор пал на Бейсик, так как такой реализации для 8-битных компьютеров типа "Микроша" не существовало. Бейсик-компилятор я так и не написал. Причиной стало бурное развитие IBM-совместимых компьютеров - персоналок. Но идеи написания компилятора, почерпнутые из Форта, я пронес через многие годы.
А далее в моей жизни последовала десятилетняя полоса ничего-не-делания. Я бросал изучение компьютеров и возвращался к ним опять. Это были неспокойные, теперь можно с уверенностью сказать, бурные для всей страны 90-е годы. Деньги завладели умами людей. И сколько людей потратило время зря...
Но прошло то время. В обществе наступила стабильность, в умах отдельных граждан - тоже. На глаза мне попались старые книги по Форту. Кроме вышеупомянутой еще была "Начальный курс программирования на языке Форт" Броуди, которую "раскопал" для меня мой брат. Эти-то две книги и стали причиной моего возобновившегося интереса к этому лучшему, по моему мнению, языку программирования. На этот раз о бейсик-компиляторе я уже не подумывал - их профессиональных и так достаточно. А вот Форт оставался уделом доморощенных программистов. К их числу решил примкнуть и я. Мое желание также подогревала мысль написать-таки свой язык программирования.
За основу своего Форта я решил взять стандарт-83, т.к. стандарт 93-го года меня не впечатлил - я ждал от него большего. Но некоторые положительные моменты из нового стандарта я все же использовал. Например, работа с файлами. В своих трудах кроме книг и документации я пользовался листингом компилятора Перри и Лаксена Forth-83. Как программист пишущий на ассемблере, без колебаний я остановил свой выбор на подпрограммном шитом коде. Работа продолжалась два с половиной месяца с середины октября до конца года 2001. На Турбo Пaскaлe был написан мини-компилятор для обработки листинга ядра Форта, поддерживающий ссылки вперед. Задача минимум была выполнена: написать исправно работающее ядро. У меня получился Форт на основе стандарта-83 с элементами стандарта-93. Изначально я планировал заложить в свой Форт большие возможности, поэтому дал ему нескромное название "Smart".
Таким образом, только десять лет спустя после возможного рождения, появился новый Форт - Smart Forth. И слово "спустя" имеет здесь свой подтекст. Да, этому бы Форту появиться 10 лет назад...
|
Ниже вы можете ознакомиться с архивом моих Форт-трудов. Предполагаю, что после ознакомления у читателя возникнет закономерный вопрос: "Спрашивается, зачем нужно выкладывать Форт в такой минимальной версии?" Отвечаю: "Для аналитического материала по отечественным Форт-системам". Получить Smart Forth 1.0 и документацию к нему |
|
Во время отпуска вернулся к Smart Forth, чтобы дополнить его словом MAKE , которое создает COM-файл. Для тестирования работоспособности обновленной версии (1.11) я переложил исходник Burn (автор Frank Jan Sorensen) с Паскаля на Форт. Полученный файл burn.com прилагается. Получить Smart Forth 1.11 |