Lightweight Modular Staging: A Pragmatic Approach to Runtime Code Generation and Compiled DSLs. (Communications of the ACM, 2012)