Lessons learned from building model-driven development tools
The Epsilon Object Language (EOL