Designing a programming environment raises difficult implementation problems since such software is not just one piece of code able to execute programs expressed in a given progra...
An important way of making interfaces usable by nonexpert users is to enable the use of natural language input, as in natural language query interfaces to databases, or MUDs and M...
Common subexpression elimination is a well-known compiler optimisation that saves time by avoiding the repetition of the same computation. In lazy functional languages, referential...
Motivated by previous work on XML stream processing, we noticed that programmers need concurrency to save space, especially in a lazy language. User-controllable concurrency provi...
Embedded domain-specific languages (EDSLs) are said to be easier to compose than DSLs that are implemented by preprocessors. However, existing approaches focus on composition scen...