Browsing by Author "Backhouse, Kevin"
Now showing 1 - 2 of 2
- Results Per Page
- Sort Options
Item Forwarding in Attribute Grammars for Modular Language Design(2002) Van Wyk, Eric; de Moor, Oege; Backhouse, Kevin; Kwiatkowsky, PaulForwarding is a technique for providing default attribute definitions in attribute grammars that is helpful in the modular implementation of programming languages. It complements existing techniques such as default copy rules. This paper introduces forwarding, and shows how it is but a small extension of standard higher-order attribute grammars. The usual tools for manipulating higher-order attribute grammars, including the circularity check (which tests for cyclic dependencies between attribute values), carry over without modification. The closure test (which checks that each attribute has a defining equation) needs modification, however, because the resulting higher-order attribute grammars may contain spurious attributes that are never evaluated, and indeed that need not be defined.Item Intentional programming: a host of language features(2001) Van Wyk, Eric; de Moor, Oege; Sittampalam, Ganesh; Sanabria Piretti, Ivan; Backhouse, Kevin; Kwiatkowsky, PaulProgramming 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; 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.