История изменений
Исправление
gh0stwizard,
(текущая версия)
:
=)))
Не надо запутывать меня и себя. Ты писал/использовал DSL хоть раз в жизни? Если использовал/писал, то объясни мне, что не понятно?
BNF не связан с DSL? А я говорю связан, при этом настолько сильно, что BNF является ядром движка DSL. Движок DSL может не использовать BNF. Может, но задача состоит в том, чтобы использовать. Если я скажу, чтобы использовалось что-то другое, то это будет другая спека.
Итак, BNF это спека. В ней четко и ясно описано, что я должен ожидать на выхлопе. В частности основным является возможность задания ключевых слов (левая часть) и возможность задания действий (правая часть). Для движка правая часть всегда будет тесно связана с ЯП, на котором пишется движок (или если используется несколько ЯП, какого-то одного или всех сразу). Правая часть может даже быть вторым, внутренним DSL. Это неважно.
у этой спеки не единичная реализация
Спека не описывает реализацию. Спека описывает, что я должен получить. Если спека описывает реализацию, то это уже не спека. Это полное техническое описание проекта.
Так что либо ты путаешь, что является спека, либо у вас принято считать, что спека это описание реализации. Тогда, разговор окончен.
ты сначала сказал, что BNF - это пример спеки на несуществующий DSL.
Я такого не говорил. Поскольку, выше я уже все разжевал, скажу кратко. Для любой спеки может быть 100500 реализаций, но все они в итоге будут делать то, что указано в спеки. Если в спеки говорится, что если нажать ЛКМ и экран окрасится в желтый, то так и будет. Во всех реализациях. Однако, поскольку не сказано весь экран или только часть его, то в каких-то реализациях будет окрашиваться весь экран, в других всего лишь часть экрана, а в третьих будет возможность задания как должен окрашиваться экран.
Исходная версия
gh0stwizard,
:
=)))
Не надо запутывать меня и себя. Ты писал/использовал DSL хоть раз в жизни? Если использовал/писал, то объясни мне, что не понятно?
BNF не связан с DSL? А я говорю связан, при этом настолько сильно, что BNF является ядром движка DSL. Движок DSL может не использовать BNF. Может, но задача состоит в том, чтобы использовать. Если я скажу, чтобы использовалось что-то другое, то это будет другая спека.
Итак, BNF это спека. В ней четко и ясно описано, что я должен ожидать на выхлопе. В частности основным является возможность задания ключевых слов (левая часть) и возможность задания действий (правая часть). Для движка правая часть всегда будет тесно связана с ЯП, на котором пишется движок (или если используется несколько ЯП, какого-то одного или всех сразу). Правая часть может даже быть вторым, внутренним DSL. Это неважно.
у этой спеки не единичная реализация
Спека не описывает реализацию. Спека описывает, что я должен получить. Если спека описывает реализацию, то это уже не спека. Это полное техническое описание проекта.
Так что либо ты путаешь, что является спека, либо у вас принято считать, что спека это описание реализации. Тогда, разговор окончен.