Generic Eclipse Modeling System (GEMS) is a configurable toolkit for creating domain-specific modeling and program synthesis environments for Eclipse. The configuration is accomplished through metamodels specifying the modeling paradigm (modeling language) of the application domain. The modeling paradigm contains all the syntactic, semantic, and presentation information regarding the domain; which concepts will be used to construct models, what relationships may exist among those concepts, how the concepts may be organized and viewed by the modeler, and rules governing the construction of models. The modeling paradigm defines the family of models that can be created using the resultant modeling environment.
The built-in metamodeling language is based on the UML class diagram notation. Metamodels in other E-core readable formats can be used as well. Metamodel constraints are specified in Java. Once a metamodel has been imported, an interpreter is run that traverses the model and generates an Eclipse plug-in for editing instances of the Domain Specific Modeling Language (DSML) described by the metamodel. The generated plug-in uses Eclipse's Graphical Editing Framework (GEF) and Draw2D plug-in to visualize the DSML as a diagram. Instances of the DSML may also have interpreters run on them to generate various artifacts or perform complex analyses.