Степан Митькин писал(а):
Так что же должны сделать авторы редакторов?
Я понял вот что:
Юзкейс: "Трансляция программы на языке S в ДРАКОН-схему."
1. Человек пишет программу на языке S.
2. Язык S транслируется на язык C++, в котором присутствуют дополнительные символы (разметка).
3. Программа на C++ с разметкой транслируется в единый язык описания ДРАКОН-схем (далее "единый язык"). Единый язык понимается несколькими ДРАКОН-редакторами.
4. ДРАКОН-редактор преобразует описание ДРАКОН-схемы на едином языке в ДРАКОН-схему.
Требуется:
1. Разработать единый язык описания ДРАКОН-схем.
2. Написать конвертор из C++ с разметкой в единый язык описания ДРАКОН-схем.
3. Для каждого ДРАКОН-редактора: написать код для импорта единого языка в редактор.
Не требуется:
1. Написать конвертор из языка S в C++ с разметкой (это уже делается в рамках проекта Шелехова).
2. Написать конвертор из ДРАКОНа на другие языки (пока не требуется).
Я правильно понял задачу?
Не совсем.
Во первых, я запутал всех с языком С++. Об этом надо было бы говорить в отдаленном будущем.
Да, автоматная программа транслируется на С++ перед исполнением.
Но работаем мы на языке автоматного программирования, а не на С++.
Отображать в Дракон-схему нужно будет текст операторов на исходном языке автоматного программирования.
Проще считать, что языка С++ нет.
Язык S это текстовое лицо языка Дракон.
То, что Степан назвал
Юзкейс, реализуется другим образом.
1. Программу с исходного языка надо оттранслировать на язык S.
2. Универсальный инструмент с помощью команд, поданных во внешнем интерфейсе,
строит Дракон-схему в пакетном режиме для программы на языке S.
Что требуется от разработчика редактора языка Дракон?
Отобразить набор своих команд во внешнем интерфейсе для возможности работы в пакетном режиме.
А типовой набор команд во внешнем интерфейсе видимо должен быть единым для всех редакторов.
Язык S будет разрабатывать студент.
В двух вариантах: текстовый с разметкой специальными разделителями и в виде абстрактных структур, обычно используемых в трансляторах.
То, что здесь предлагается, лишь одна из возможных архитектур.