История изменений
Исправление rebforce, (текущая версия) :
Для детей природы поясняю более доходчиво, с примерами.
Пример номер раз. Вот есть такой язык описания формата данных, как XML. У него есть 1) грамматические правила, по которым можно проверить правильность синтаксиса, и 2) стандартизированный формат описания XML-схем, по которым можно проверить правильность содержимого документов.
То есть я, имея эти две вещи (грамматику и схему валидации контента) и даже не имея эталонной реализации под рукой, смогу воссоздать валидатор XML с нуля для любой разновидности этих самых документов. И мне не придётся для этого смотреть в код любого существующего XML-парсера.
Пример номер два. Есть такой язык описания графов для движка Graphviz, DOT называется. У него тоже есть полное описание грамматики в BNF (в начале этой страницы) и правила задания идентификаторов. Имея эту информацию, я, ни разу в глаза не видев код эталонной реализации Graphviz, уже смогу создать независимый валидатор DOT-файлов.
А теперь пример номер три — твои метапрог-диаграммы. Надеюсь, у них тоже будет свой собственный формат хранения. Как, не имея на руках формальных правил, не привязанных к конкретной реализации, можно будет независимо отвалидировать твои схемы, не прибегая к запуску твоего же рантайма? И как в итоге можно будет независимо верифицировать корректность твоих трансформаций? И что самое главное — как и то, и другое можно будет автоматизировать, в том числе и на энвах вообще без GUI в рамках какого-нибудь сборочного пайплайна? Я уж молчу о том, чтобы юнит-тесты не падали, просто хотя бы чтобы корректность построения диаграмм была гарантирована независимым от реализации инструментом.
Исходная версия rebforce, :
Для детей природы поясняю более доходчиво, с примерами.
Пример номер раз. Вот есть такой язык описания формата данных, как XML. У него есть 1) грамматические правила, по которым можно проверить правильность синтаксиса, и 2) стандартизированный формат описания XML-схем, по которым можно проверить правильность содержимого документов.
То есть я, имея эти две вещи (грамматику и схему валидации контента) и даже не имея эталонной реализации под рукой, смогу воссоздать валидатор XML с нуля для любой разновидности этих самых документов. И мне не придётся для этого смотреть в код любого существующего XML-парсера.
Пример номер два. Есть такой язык описания графов для движка Graphviz, DOT называется. У него тоже есть полное описание грамматики в BNF (в начале этой страницы) и правила задания идентификаторов. Имея эту информацию, я, ни разу в глаза не видев код эталонной реализации Graphviz, уже смогу создать независимый валидатор DOT-файлов.
А теперь пример номер три — твои метапрог-диаграммы. Надеюсь, у них тоже будет свой собственный формат хранения. Как, не имея на руках формальных правил, не привязанных к конкретной реализации, можно будет независимо отвалидировать твои схемы, не прибегая к запуску твоего же рантайма? И как в итоге можно будет независимо верифицировать корректность твоих трансформаций? И что самое главное — как и то, и другое можно будет автоматизировать, в том числе и на энвах вообще без GUI в рамках какого-нибудь сборочного пайплайна? Я уж молчу о том, чтобы юнит-тесты не падали, просто хотя бы чтобы корректность построения диаграмм была гарантирована независимым от реализации инструментом.