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

Тема: Альфа Кантора (2016)

Работа над последним этюдом прояснила ситуацию с синтаксисом альфы. Если раньше я лишь в общих чертах говорил, что усеченный синтаксис будет носить кодовое название "Лисп-скобка-скобка", теперь понятно, что разбор и отекстовку выражений нужно вынести в DSL, то есть в отдельный модуль, разрабатываемый и развиваемый независимо от остального Кантора.

Тем самым "Лисп-скобка-скобка" закрепляется в качестве синтаксиса выражений уже не только в альфе. Правда, глядя на последний пример в этюде, думаю, не правильней ли его будет называть "Кантор-точка-точка"?

После уточнения ситуации с альфой я могу составить фактический план по разработке Кантора в коде. Это сможет как помочь в разработке, так и окончательно застопорить ее, ибо публикуя план, я "зарекаюсь". Помня об этом, создал раздел по координации работ и группу ОТК, назначив в нее проверенных наблюдателей.

Разработка Кантора ведется при помощи библиотеки CoreLite, поэтому план включает в себя развитие CoreLite в качестве отдельного раздела.

Развитие CoreLite

  • Хеш-функции и тестовая утилита к ним.

  • Сбалансированное дерево, хеш-массив на основе него и хеш-функций.

  • Система локализации CoreLite -- еще одно практическое применение хешей (нужность для Кантора под вопросом).

  • Функция форматирования строк как пример реализации рекурсивного спуска на строках CoreLite. Закладывание основы API DSL.

  • Криптографические хеши (на будущее, для обфускации).

Реализация альфы Кантора

  • Объектный код Кантора:

    • Уточнение формата объектного кода. Будет делаться по ходу разработки, по всей видимости.

    • Сохранение и загрузка объектного кода Кантора хотя бы в минимальном виде.

  • Разборщик входного языка в объектный код.

  • Отекстовщик объектного кода в исходный текст.

  • Ядро Кантора (пространство Core):

    • Уточнение иерархии базовых классов, объявление их на Канторе.

    • Выделение списка свойств, реализуемых кодом на Delphi, реализация их на Delphi.

Предполагается, что входной язык ранней альфы будет ограничен базовыми алгоритмическими возможностями и импортом системных функций. Импорт важен, поскольку он позволит писать на Канторе что угодно. К тому же импорт очень легко реализуется.

В качестве ориентира принято, что ранняя альфа должна позволить реализовать консольный "Тетрис".

2

Re: Альфа Кантора (2016)

Freeman пишет:

ранняя альфа должна позволить реализовать консольный "Тетрис".

Когда можно будет сыграть?

3

Re: Альфа Кантора (2016)

Когда всё будет реализовано.

4

Re: Альфа Кантора (2016)

С появлением нового плана эта тема закрыта.