Выложен второй прототип (см. папку «про2» в https://gitflic.ru/project/alekseinedoria/a2).
Это игра крестики-нолики, которая состоит из
- инструмента «Движок»
- инструмента «Доска»
- и двух игроков, каждый представлен верстаком и инструментом «Игрок».
Движок запрашивает создание доски, подключает игроков и далее дергает игроков, чтобы они сделали код. Оба игрока сейчас реализованы одним инструментом (примитивным) и результат игры всегда ничья (что и должно быть на поле 3х3). Я не пытался сделать разумную стратегию игры (мне лень на это отвлекаться), так как прототип не для этого. Он показывает схему и динамическое взаимодействие.
Для реализации прототипа пришлось малость доработать язык и компилятор, впрочем, ничего принципиально нового добавлено не было, просто расширение уже существующих возможностей работы с полиморфным типом и значениями.
В этом файле вывод программы, в начале вывода — показана схема.
В этом прототипе я ставил задачу воспроизвести (в общем) устройство Вира, но на языке обеспечивающем безопасность типов. Дальше собираюсь сделать прототип с использованием утиных интерфейсов/протоколов (duck-typing interfaces). Этот прототип будет умозрительным, так как добавлять протоколы в Тривиль я пока не собираюсь, задача, скорее, прикинуть, что нужно добавлять в компонентный язык.
И еще думаю над тем, на каком проекте имеет смысл обкатывать компонентный язык/подход. Вот, думаю, замахнутся сразу на IDE, но тогда надо делать поддержку GUI, желательно посредством декларативного языка + графический движок.