Eric van Wyk, Oege de Moor, Ganesh Sittampalam, Ivan Sanabria-Piretti, Kevin Backhouse, and Paul Kwiatkowski.
December 2001, 48pp.
Programming languages and programming tasks are rarely a perfect fit: often a program could be much clarified by using a number of tailored language features, but the cost of introducing those features in the language is perceived as too high. If a programming language could be implemented in a highly modular fashion, that cost might be lower. To achieve such modularisation is the goal of Intentional Programming.
Intentional Programming is the brainchild of the founder of Microsoft's applications division Charles Simonyi. Language features are called intentions to emphasise the fact that language features can be tailored to the programmer's wishes. One starts with a host language, that is subsequently extended by adding new domain-specific features. Crucially, these features should be composable wherever possible; independent language features should co-exist peacefully without each needing to be explicitly aware of presence or absence of others. Indeed, given a sufficiently broad library of intentions, it should be possible to construct a new language from the ground up.
When adding new intentions to a language it is essential that they be implemented in an efficient manner. It is critical that programs developed via Intentional Programming are not any less efficient than those developed by traditional means. Our aims as intention developers are to build intentions which are both expressive and efficient.