ПМК будущего: подход к реализации

Несколько раз здесь велось обсуждение ПМК мечты. На вики я даже подытожил своё видение, какой функциональностью он должен обладать. В этой записи попробую очертить внутреннее устройство, что под капотом.

Отчасти предлагаемая архитектура близка к видению Ватника, хотя использует другую терминологию. Лежащая в основе ПМК форт-машина не является «низким уровнем», а основана на высокоуровневых концепциях и доступна пониманию владельца, сравнимого по любознательности с советским школьником. Кто в СССР осваивал «Электронику Б3-34», тот с такой же лёгкостью сможет программировать ПМК мечты прямо на встроенном Форте.

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

Настоящий низкий уровень будет открыт для гиков-«еггологов». При желании и умениях владелец ПМК мечты сможет писать примитивы или даже целые приложения на форт-ассемблере. Конечно, при каждой смене камня (такое впервые произошло в 2007) всю подобную низкоуровневую работу придётся переделывать заново, под новый ассемблер.

Чтобы ПМК при каждой смене технологий не переделывать полностью, операционка и основные приложения будут написаны на Форте. Среди этих приложений могут быть другие языки программирования. Кому они покажутся удобней Форта и форт-ассемблера, могут разрабатывать собственные приложения на них или даже поставить приглянувшийся язык в автозапуск. Здесь можно привести аналогию с Гну-Линуксом. Хотя само ядро Линукса, основные библиотеки и большинство пакетов системы Гну написаны на GCC, никто не мешает установить под этой системой FreePascal и свои программы писать на Паскале.

Развитие Каллисто от отдельной среды на МК-161 до полноценной операционной системы потребует не только более совершенного «железа», но и продуманного совершенствования самого языка. Разработка системы типов и их иерархии. Введение модульности для инкапсуляции слов и типов внутри приложений и библиотек. Разработка API как для математических вычислений, с постепенным переходом к СКМ, так и для управления оборудованием, системой, интерфейса с пользователем.

Такой подход был заложен в Форте с самого начала. Чак Мур сформировал свой язык, пронеся его через множество систем. Неприхотливость Форта позволит по максимуму использовать скромное железо карманного ПМК. В США инициативу у Форта перехватила AT&T, которую можно сравнить по ресурсам и влиятельности с Ростелекомом — написала Юникс на своём Си, внедряла его через университеты. У нас такого щедрого финансирования пока нет, зато достался лучший язык. :-) И много из уже существующего софта под Форт, включая трансляторы других языков, получится перенести на наш ПМК с минимальными затратами.