MOQA is a new domain-specific programming language to design software for which the average-case time analysis of its programs is guaranteed to be modular. Time in this context refers to a broad notion of cost, which can be used to estimate the actual running time, but also other quantitative information such as power consumption, while modularity means that the average time of a program can be easily computed from the times of its constituents--something that no programming language of this scope has been able to guarantee so far. MOQA principles can be incorporated in any standard programming language. We discuss how MOQA can support the design of software for modular static average-case analysis and sketch some of the reversible features of this language.
展开▼