Domain-specific languages: the key to computational efficiency and programmer productivity