Тема: Альфа Кантора (2016)
Работа над последним этюдом прояснила ситуацию с синтаксисом альфы. Если раньше я лишь в общих чертах говорил, что усеченный синтаксис будет носить кодовое название "Лисп-скобка-скобка", теперь понятно, что разбор и отекстовку выражений нужно вынести в DSL, то есть в отдельный модуль, разрабатываемый и развиваемый независимо от остального Кантора.
Тем самым "Лисп-скобка-скобка" закрепляется в качестве синтаксиса выражений уже не только в альфе. Правда, глядя на последний пример в этюде, думаю, не правильней ли его будет называть "Кантор-точка-точка"?
После уточнения ситуации с альфой я могу составить фактический план по разработке Кантора в коде. Это сможет как помочь в разработке, так и окончательно застопорить ее, ибо публикуя план, я "зарекаюсь". Помня об этом, создал раздел по координации работ и группу ОТК, назначив в нее проверенных наблюдателей.
Разработка Кантора ведется при помощи библиотеки CoreLite, поэтому план включает в себя развитие CoreLite в качестве отдельного раздела.
Развитие CoreLite
Хеш-функции и тестовая утилита к ним.
Сбалансированное дерево, хеш-массив на основе него и хеш-функций.
Система локализации CoreLite -- еще одно практическое применение хешей (нужность для Кантора под вопросом).
Функция форматирования строк как пример реализации рекурсивного спуска на строках CoreLite. Закладывание основы API DSL.
Криптографические хеши (на будущее, для обфускации).
Реализация альфы Кантора
Объектный код Кантора:
Уточнение формата объектного кода. Будет делаться по ходу разработки, по всей видимости.
Сохранение и загрузка объектного кода Кантора хотя бы в минимальном виде.
Разборщик входного языка в объектный код.
Отекстовщик объектного кода в исходный текст.
Ядро Кантора (пространство Core):
Уточнение иерархии базовых классов, объявление их на Канторе.
Выделение списка свойств, реализуемых кодом на Delphi, реализация их на Delphi.
Предполагается, что входной язык ранней альфы будет ограничен базовыми алгоритмическими возможностями и импортом системных функций. Импорт важен, поскольку он позволит писать на Канторе что угодно. К тому же импорт очень легко реализуется.
В качестве ориентира принято, что ранняя альфа должна позволить реализовать консольный "Тетрис".