DSL'inizi mevcut bir dilin (dahili DSL) üzerine oluşturmanızı öneririm. Bunu birkaç kez Python ile yaptım, DSL tüketicisinin sistem için bir yapılandırma dosyası olarak kullanılan bir python dosyası yazdığı sistemler oluşturdum. Yapılandırma dosyası, tanımladığım yapıları (sınıflar, işlevler) kullanır. Bu yapılar DSL'i oluşturur.
IMO, Python (ana bilgisayar sistemi .NET veya Java ise IronPython veya Jython) veya Ruby (IronRuby, JRuby) gibi bir dil DSL'inizi Java veya C # 'dan daha iyi bir temelde oluşturmak için daha iyidir.
Benim durumumda, ana bilgisayar sistemleri de (C) Python oldu, bu yüzden DSL için Python'u seçmek doğal bir şeydi.
Bazı artıları:
- Düşük bina maliyeti. Uygulamanız için çok daha az şey var. Bir ayrıştırıcı / derleyici / yorumlayıcı uygulamak için zaman harcamak yerine eldeki soruna odaklanabilirsiniz.
- Ana bilgisayar diline erişim: Diliniz, mevcut dilin / platformun tüm gücüne erişebilir.