A high-level overview of the MOQA language is presented. The representation of its data structure, a labeled series-parallel partial order, is shown along with some of the functions allowed upon this data structure. The combination of MOQA's data structure and its functions capture the required calculus to statically obtain the average-case time of algorithms written in this language. The implementation of these concepts is discussed and algorithms written in this implementation are presented. A detailed analysis of one of these implemented algorithms, quicksort, critically compares its average-case time in MOQA against the average-case time of standard quicksort. While the asymptotic average of quicksort in MOQA remains unchanged, extra constant costs are incurred by the MOQA method. It is shown that these costs result from molding the algorithm around the MOQA data structure and functions versus the general approach of choosing the data structure and functions that best match the algorithm. This limitation is balanced against an approach that aims to obtain the average-case time of algorithms statically. © 2008 Elsevier B.V. All rights reserved.
Townley, J., Manning, J., & Schellekens, M. (2009). Sorting Algorithms in MOQA. Electronic Notes in Theoretical Computer Science, 225(C), 391–404. https://doi.org/10.1016/j.entcs.2008.12.088