Zoran Đurić
Elektrotehnički fakultet, Univerzitet u Banjoj Luci
Keywords:
Java, Scala, Groovy, JVM, DSL
Abstract
In this paper it was defined and explained term of domain specific language (DSL). Then, it was described principles and patterns for developing internal DSLs: fluent interface, AST manipulation, typed embedding, reflective metaprogramming, runtime metaprogramming and compile-time metaprogramming. Also, it was done overview of JVM languages (Scala, Groovy and Java) with accent on their features for concise DSL implementation. Some of the features which are
shown, like concise syntax, operator overloading, metaprogramming, anonymous function and open classes are key features for implementing internal DSLs. Usage of some principles and patterns for developing internal DSLs, are shown on snippets of implemented examples of DSL for Image processing. And this implementations are implemented in Scala, Groovy and Java programming languages.