Expressivity (computational power, expressive typing, flexibility of modularization) Declarativeness (capture design intention, what instead of how, intuitive abstractions) Orthogonality (independent mechanisms for independent features) Regularity (regular rules, without exceptions) Conciseness (concise syntax, inference, implicit conversions) Implementation properties (efficiency, independent compilation and distribution) April 19, 2011 | Software Technology Group | 2 Overview of Language Implementation Industrial-strength implementations typically split into front-end and back-end Front-end: compiler Parses source code Resolves references, analyses for errors Applies transformations Emits target code (bytecode or machine co...