A static cost analysis for a higher-order language
PLPV '13 Proceedings of the 7th workshop on Programming languages meets program verification
Hi-index | 0.01 |
The authors’ $\mathsf{ATR}$programming formalism is a version of call-by-value $\mathsf{PCF}$under a complexity-theoretically motivated type system. $\mathsf{ATR}$programs run in type-2 polynomial-time and all standard type-2 basic feasible functionals are $\mathsf{ATR}$-definable ( $\mathsf{ATR}$types are confined to levels 0, 1, and 2). A limitation of the original version of $\mathsf{ATR}$is that the only directly expressible recursions are tail-recursions. Here we extend $\mathsf{ATR}$so that a broad range of affine recursions are directly expressible. In particular, the revised $\mathsf{ATR}$can fairly naturally express the classic insertion- and selection-sort algorithms, thus overcoming a sticking point of most prior implicit-complexity-based formalisms. The paper’s main work is in refining the original time-complexity semantics for $\mathsf{ATR}$to show that these new recursion schemes do not lead out of the realm of feasibility.