Date: 2011-11-02 12:30 pm (UTC)
>У вас два DSeL. Как они стыкуются?

Как стек. Один на другом. Нижний о верхнем ничего не знает.

>За исключением, как я полагаю, тех, что подходят лучше.

Такой язык должен иметь высокоразвитые средства метапрограммирования, и в первую очередь, у такого языка сама структура программы должна быть объектом языка, причем представляться она должна в самой общей форме, потому как какая-либо специализация внесет ограниченность в возможности метапрограммирования. Таким образом, этот язык должен быть лиспом. Возможно, в будущем появятся лиспы лучше CL, пока же таких нет.

>Как контролировать распространение изменений в Лиспе?

Самый лучший вариант это многоуровневые макросы и DSL, естественно.

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

Это не может полностью защитить от ошибок в логике, но в отличие от типизации, это уменьшит шанс возникновения логических ошибок, за счет сужения сущностей, с которыми мы работаем, за счет максимальной специализации кода под задачу.
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

love5an: (Default)
Dmitry Ignatiev

June 2020

S M T W T F S
 123456
78910 111213
14151617181920
21222324252627
282930    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 31st, 2025 02:12 am
Powered by Dreamwidth Studios