Re[17]: Языки общего назначения не имеют смысла!
От: koodeer  
Дата: 14.04.12 12:04
Оценка: :)
Здравствуйте, vdimas, Вы писали:

V>Или взять популярный случай размерности величин. Не думаю, что для вменяемого программиста запись 42kg будет сильно отличаться от записи 42*unit.kg или unit.kg(42), тем более, что константы в коде встречаются относительно редко.


Дело не просто в записи. На DSL можно реализовать не только запись размерности величин, но и проверку на этапе компиляции, разрешена ли операция над этими величинами.

Поясню. Например, в обычном коде имеются две переменные типа double — масса и температура. Простой язык программирования никак не запретит допустим сложить две эти переменные: с точки зрения компилятор типы double можно складывать. Но с точки зрения физики массу и температуру складывать нет смысла: какая величина должна получиться?
Именно эту ситуацию способен разрулить DSL.

Конечно, нечто подобное можно реализовать в ООП: создать классы Масса и Температура, переопределить операции сложения для них. Но очевиден оверхед: для простых типов данных будет использоваться класс, что и быстродействие снизит, и память жрать будет. В случае обработки миллионов значений это критично.
А в DSL и масса и температура по-прежнему останутся после компиляции простым типом. Никакого оверхеда в рантайме!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.