Форт 10, 20 и 40 лет спустя

Download
1.Smart Forth 1.12
2.Smart Forth 1.12(cloud.mail.ru)
3.Smart Forth 1.12(disk.yandex.ru)
SF112.ZIP (32 Kb): Сompiler, MaxIt, Burn

Впервые с языком программирования Forth я познакомился, когда учился в классе десятом. Тогда у меня уже стоял дома первый персональный компьютер «Микроша». Наигравшись в игры, я занялся изучением программирования. В те времена выбор был невелик, и кроме Бейсика, вторым языком для меня стал Ассемблер. Хотя, надо сказать, ассемблерная мнемоника меня не интересовала, я писал сразу в кодах. Благо, простые инструкции процессора К580 (аналог Intel 8080) легко запоминались в виде двух-трех байт. Нехитрая операционная система «Микроши» позволяла непосредственно вводить байты в любые адреса ОЗУ (уже позже для этой цели я написал свой экранный редактор). Свои успехи в изучении Ассемблера я закрепил в написании игр, которые позже реализовывал зеленоградский кооператив «Электрон» по заключенному со мной договору.

Не считая промежуточных языков типа Паскаля, полный объем которого у меня тогда не было возможности изучать из-за отсутствия приличного компилятора для «Микроши», следующим и главным языком для меня стал Форт. Уже тогда меня восхищал его потенциал. Первой книгой по теме стала «Язык Форт и его реализации». К нему нашелся и добротный компилятор. Знание машинных кодов позволяло мне легко изучать его шитый код. Дальше были другие Форт-компиляторы с другими разновидностями шитого кода.

Настало время, когда я стал подумывать о написании своего компилятора, который создавал бы исполняемый файл. И выбор пал на Бейсик, так как такой реализации для 8-битных компьютеров типа «Микроша» не существовало (как я тогда думал). Бейсик-компилятор я так и не написал. Причиной стало бурное развитие IBM-совместимых компьютеров — персоналок. Но идеи написания компилятора, почерпнутые из Форта, я пронес через многие годы.

А далее в моей жизни последовала десятилетняя полоса забвения. Это были неспокойные, теперь можно с уверенностью сказать, бурные для всей страны 90-е годы. Деньги завладели умами людей. И сколько людей потратило время зря...

Но прошло то время. В обществе наступила стабильность, в умах отдельных граждан — тоже. На глаза мне попались старые книги по Форту. Кроме вышеупомянутой еще была «Начальный курс программирования на языке Форт» Броуди, которую «раскопал» для меня мой брат. Эти-то две книги и стали причиной моего возобновившегося интереса к этому лучшему, по моему мнению, языку программирования. На этот раз о бейсик-компиляторе я уже не подумывал: их профессиональных и так достаточно. А вот Форт оставался уделом одиночек и небольших групп программистов. К их числу решил примкнуть и я. Мое желание также подогревала мысль написать-таки свой язык программирования.

За основу своего Форта я решил взять Стандарт-83, потому что стандарт 94-го года меня не впечатлил: я ждал от него большего. Но некоторые положительные моменты из нового стандарта я все же использовал. Например, работа с файлами. В своих трудах кроме книг и документации я пользовался листингом компилятора Перри и Лаксена Forth-83. Как программист пишущий на ассемблере, без колебаний я остановил свой выбор на подпрограммном шитом коде. Работа продолжалась два с половиной месяца с середины октября до конца года 2001. На Турбo Пaскaлe был написан мини-компилятор для обработки листинга ядра Форта, поддерживающий ссылки вперед. Задача минимум была выполнена: написать исправно работающее ядро. У меня получился Форт на основе Стандарта-83 с элементами Стандарта-94. Изначально я планировал заложить в свой Форт большие возможности, поэтому дал ему нескромное название «Smart».

Таким образом, только десять лет спустя после возможного рождения, появился новый Форт — Smart Forth. И слово «спустя» имеет здесь свой подтекст. Да, этому бы Форту появиться 10 лет назад...

Послесловие 20 лет спустя.

Фактически Smart Forth я опубликовал в интернете в 2003 году. Значит, с момента появления Стандарта-83 прошло 20 лет.

А сейчас я дописываю этот текст в 2023 году. Значит, прошло еще 20 лет с момента публикации моей реализации Форта.

Не могу не сказать о состоянии, в котором продолжает находиться форт-сообщество. В неприглядном, честно говоря.

Если говорить о русскоязычном сообществе постсоветского пространства, то одним из тупиковых ветвей развития я считаю появление на сцене автора SР-Fоrth. Мое мнение о нем не изменилось с 90-х годов. Даже укрепилось, потому что на протяжении всей жизни мне попадались такие люди, которые, как в том известном выражении про спорт и спортсмена, любят больше себя в той теме, которой занимаются, чем тему в себе. Вспомним еще раз тот риторический вопрос: «Он любит себя в спорте или спорт в себе?»

Помню мое недоумение, когда я попытался SР-Fоrth’ом скомпилировать листинг какой-то программы. Мой жесткий диск на 20 Мб в «Роботроне СМ-1910» (аналог ХТ-шки) затарахтел как не в себе. Я думал, сейчас развалится. Посмотрел листинг реализации SР-Fоrth — оказалось, автор написал Форт так, что чтение с диска шло не блоками, а посимвольно. Ужас! Я, конечно, понимаю, что формально он придерживался Стандарта-94, но неужели не в ущерб стандарту нельзя было заложить чтение большими блоками?

Я всё удивлялся, насколько человек вообще не любит компьютеры, коли так небережно относится к ним. Ведь не у всех пользователей на тот момент было настроено кэширование диска через SmartDrive в AUTOEXEC.BAT или CONFIG.SYS. Для меня это стало уроком, что для защиты «от дурака» кэширование диска нужно ставить обязательно, а иначе винчестер посыплется очень быстро. Кстати, в своей реализации Форта я сразу заложил чтение листинга программы большими блоками.

Хотя, если честно, с тем упадком, который произошел в форт-сообществе, нельзя винить конкретно какого автора какой-то реализации Форта. Такие авторы, которые реализуют подобие SР-Fоrth, являются не причиной, а следствием произошедшего: тупиковая ветвь развития реализации Форта как показатель происходящих процессов в стране и в мире.

И философскую тему можно продолжать до бесконечности…

(с) 2023