Да, абсолютно - API * * будет хорошо работать как DSL, если язык хоста обладает достаточной гибкостью для его поддержки.
Ruby - очень хороший язык для таких задач, особенно с учетом дополнительных символов и других гибких возможностей.
Мой собственный OOFILE - это фреймворк, который вы можете рассматривать как DSL для написания приложений баз данных на C ++ - он основан на dBase и очень интенсивно использует перегрузку операторов C ++, локальные объекты и потоковые идиомы.
Forth - это классически язык, который стирает грань между DSL и API, поскольку программа Forth состоит из нескольких слов, разделенных пробелами. Вероятно, наиболее впечатляющим примером DSL Forth является Abundance - Abundance - основанный на Forth язык делового программирования, написанный на BBL Forth. BBL - это 32-битный компилятор DOS FORTH. Распространяется как есть. Смотрите предупреждения. Это не для слабонервных. Это было бы интересно в основном тем, кто разрабатывает программное обеспечение для третьего мира, где вам нужно быстрое выполнение на старых компьютерах klunker XT и AT. Вы можете написать несколько очень сложных программ ввода данных, которые будут вращаться вокруг современных программ ввода данных.