1 (изменено: Freeman, 09.06.2023 в 19:06)

Тема: Мини-Кантор (2018)

Разрабатываемый прототип 0-го этапа носит название мини-Кантор (Mini Cantor) и будет включать в себя:

В 0-й версии ядро и Халва-Паскаль будут объединены в один исполнимый файл (Mini.exe). БД кода будет существовать только в памяти (in-memory database) во время работы компилятора и будет перестраиваться из исходников при каждом запуске.

Ядро Кантора реализует концепцию виртуальной объектно-ориентированной ОС, работающей в среде гостевой ОС и обеспечивающей контроль целостности наследования, полиморфизма и агрегации. Поскольку, согласно принятой теории, объектно-ориентированная ОС и объектно-ориентированная СУБД — одно и то же, ядро Кантора является СУБД и используется для организации БД кода.

Задачи у СУБД те же, что и у ядра ОС, плюс организация выборок через механизм объектной алгебры. Развитая реализация выборок понадобится для построения кода целевой точки в режиме make. (это гомоиконность?)

Развитие прототипа предполагает:

  • Постепенное расширение подмножества ядра до полноценной реализации.

  • Разработку сериализуемого пространства данных для организации БД кода на двоичных файлах (режим mount).

  • Вынос Халва-Паскаля в загружаемый модуль (плагин).

  • Разработку компилятора переднего плана Кантора. (в виде загружаемого модуля?)

В какой-то момент мини-Кантор станет Кантором, точные условия пока не определены.

2

Re: Мини-Кантор (2018)

Вполне логично, что разработка мини-Кантора начнется с ядра Кантора. Анализатор Халва-Паскаля должен взаимодействовать с ядром, иначе у него нет цели.

Во время компиляции БД кода будет находиться в неком промежуточном состоянии, из которого впоследствии должна выделиться полноценная транзакция, обеспечиваяющая целостность компиляции, в том числе замещающей (override).

Механизм работы транзакций процесса компиляции будет раскрыт позже.