Integration of multiple languages into each other and into an existing development environment is a difficult task. As a consequence, developers often end up using only internal DSLs that strictly rely on the constraints imposed by the host language. Infrastructures do exist to mix languages, but they often do it at the price of losing the development tools of the host language. Instead of inventing a completely new infrastructure, our solution is to integrate new languages deeply into the existing host environment and reuse the infrastructure offered by it. In this presentation we show why Smalltalk is the best practical choice for such a host language.
12. Abstract Type Declaration Default Binding Resolver Method Declaration Statement
Annotation Default Comment Mapper Method Invocation String Literal
Annotation Binding Default Value Pair Binding Method Ref Structural Property Descriptor
Annotation Type Declaration Do Statement Method Ref Parameter Super Constructor Invocation
Annotation Type Member Declaration Doc Comment Parser Modifier Super Field Access
Anonymous Class Declaration Empty Statement Name Super Method Invocation
Array Access Enhanced For Statement Node Event Handler Switch Case
Array Creation Enum Constant Declaration Node Searcher Switch Statement
Array Initializer Enum Declaration Normal Annotation Synchronized Statement
Array Type Expression Null Literal Tag Element
Assert Statement Expression Statement Number Literal Text Element
Assignment Field Access Package Binding This Expression
Block Field Declaration Package Declaration Throw Statement
Block Comment For Statement Parameterized Type Try Statement
Body Declaration If Statement Parenthesized Expression Type
Boolean Literal Import Declaration Postfix Expression Type Binding
Break Statement Infix Expression Prefix Expression Type Declaration
Cast Expression Initializer Primitive Type Type Declaration Statement
Catch Clause Instanceof Expression Qualified Name Type Literal
Character Literal Javadoc Qualified Type Type Parameter
Child List Property Descriptor Labeled Statement Recovered Type Binding Variable Binding
Child Property Descriptor Line Comment Recovered Variable Binding Variable Declaration
Class Instance Creation Marker Annotation Return Statement Variable Declaration Expression
Comment Member Ref Simple Name Variable Declaration Fragment
Compilation Unit Member Value Pair Simple Property Descriptor Variable Declaration Statement
Conditional Expression Member Value Pair Binding Simple Type While Statement
Constructor Invocation Message Single Member Annotation Wildcard Type
Continue Statement Method Binding Single Variable Declaration