Domain-Specific Languages (Addison-Wesley Signature Series (Fowler))