Dealing with non-functional properties in an imperative programming language
Xavier Franch · 1995
An extension of a modular imperative programming language is presented. This extension is aimed to support the automatic selection of implementations depending on their behaviour with respect to time and space efficiency, which is measured using the big-Oh asymptotic notation. The language provides some constructs to state both efficiency behaviour of public types and functions and efficiency requirements over implementations. Efficiency requirements may be stated at different places in programs; so, different implementations may be selected for different objects of the same type. An algorithm and a set of rules to compute the set of implementations that satisfy their requirements are presented. If the selection succeeds, programs may be translated into executable code.