Domain Specific Embedded Languages and Model Driven Engineering by Stefan Kroes