Github полон любительских проектов на любую тему. Среди них порой встречаются настоящие самородки, малоизвестные публике, со своим собственным видением и незаурядным подходом к привычным вещам.
Мы прошли бы мимо проекта ChrysaLisp, если бы судили только по названию. Сколько уже написано интерпретаторов различных диалектов Lisp — трудно подсчитать. Lisp-системами тоже никого не удивить, это давно пройденная страница истории. Но было в проекте что-то притягательное и мы решили разобраться. Не зря.
Автор проекта, Крис Хинсли (Chris Hinsley), планирует разработать распределенную операционную систему с современным графическим интерфейсом. Он начал с разработки 64-битной виртуальной машины для выдуманной архитектуры процессора VP64. Архитектура команд для этой машины построена так, чтобы легко транслироваться в код x86_64 и ARMv8. Далее был разработан язык похожий на ассемблер, но со скобочным синтаксисом, как в Lisp: на этом языке написаны примитивы низкого уровня. Поверх может запускаться код, созданный на более высокоуровневом языке, семантически близком к C, но тоже с lisp-подобным синтаксисом.
Пользуясь этими инструментами, Крис создал ОС, способную работать на нескольких распределенных в сети вычислительных узлах. Для системы написано множество приложений с довольно современным GUI, который работает благодаря гибкой объектной системе.
Есть в системе и интерпретатор более-менее традиционного Lisp, который может исполнять компиляторы более низкоуровневых языков, описанных двумя абзацами ранее. Таким образом, в окружении ChrysaLisp можно разрабатывать ChrysaLisp, оно полностью замкнуто (self-hosted).
Крис также планирует научиться запускать свою систему на голом железе и оценивает эту задачу как не очень трудную.
#digest
Post #83
2.47K