第3回 話題騒然! 「言語内DSL」の概念とRake【前編】:Ruby on Rails究極指南(2/2 ページ) ビルド言語の分類とRake DSLはスタイルによって幾つかに分類できますが、ここではプログラミング言語指向のものに注目します。プログラミング言語指向のDSLは、言語内(internal)DSLと異語外(external)DSLに大別できます。言語内DSLとは実行時に利用される言語(ホスト言語)とDSLが同じものを、言語外DSLはホスト言語とDSLが異なるものを指します。いずれも以前から行われているアプローチであり、例えば言語内DSLはLispやSmalltalkで、言語外DSLは多くのUNIXツール(例えばawkやprocmail、PostScript)で使用されています。 マーティン・ファウラー氏は、make、Ant、Rakeの各ビルド言語をDSLのスタイルに従って次のよう