ドメイン固有言語
DSLを採用する DSL には汎用プログラミング言語にはない次のような重要な設計目標がある:
DSL は包括的である必要はない。
DSL はその領域(ドメイン)をより表現しやすくなければならない。
DSL は冗長性を最小限にすべきである。具体的に言うなら、1つの事柄について変更したいだけなのに、記述の中の複数の箇所を一緒に必ず変更しなければならない、というような言語設計をしてはならない、ということである。当然ながらこれを怠った設計の場合、「一緒に変更するのを忘れた」というバグを作りこむ危険性のある言語、ということになる。