Adventures in time and space

This paper investigates what is essentially a call-by-value version of PCF under a complexity-theoretically motivated type system. The programming formalism, ATR1, has its first-order programs characterize the poly-time computable functions, and its second-order programs characterize the type-2 basic feasible functionals of Mehlhorn and of Cook and Urquhart. (The ATR1-types are confined to levels 0, 1, and 2.) The type system comes in two parts, one that primarily restricts the sizes of values of expressions and a second that primarily restricts the time required to evaluate expressions. The size-restricted part is motivated by Bellantoni and Cook's and Leivant's implicit characterizations of poly-time. The time-restricting part is an affine version of Barber and Plotkin's DILL. Two semantics are constructed for ATR1. The first is a pruning of the naïve denotational semantics for ATR1. This pruning removes certain functions that cause otherwise feasible forms of recursion to go wrong. The second semantics is a model for ATR1's time complexity relative to a certain abstract machine. This model provides a setting for complexity recurrences arising from ATR1 recursions, the solutions of which yield second-order polynomial time bounds. The time-complexity semantics is also shown to be sound relative to the costs of interpretation on the abstract machine.

[1]  Helmut Schwichtenberg,et al.  Feasible Computation with Higher Types , 2002 .

[2]  Daniel Leivant Feasible functionals and intersection of ramified types , 2002, Electron. Notes Theor. Comput. Sci..

[3]  Ralph Benzinger,et al.  Automated complexity analysis of Nuprl extracted programs , 2001, Journal of Functional Programming.

[4]  G.D. Plotkin,et al.  LCF Considered as a Programming Language , 1977, Theor. Comput. Sci..

[5]  Dag Normann,et al.  The Continuous Functionals , 1999, Handbook of Computability Theory.

[6]  S. Marchenkov The computable enumerations of families of general recursive functions , 1972 .

[7]  Andrew Barber,et al.  Dual Intuitionistic Linear Logic , 1996 .

[8]  Daniel Leivant,et al.  Lambda Calculus Characterizations of Poly-Time , 1993, Fundam. Informaticae.

[9]  John C. Reynolds,et al.  The discoveries of continuations , 1993, LISP Symb. Comput..

[10]  Benjamin C. Pierce,et al.  Types and programming languages: the next generation , 2003, 18th Annual IEEE Symposium of Logic in Computer Science, 2003. Proceedings..

[11]  John Longley,et al.  On the Ubiquity of Certain Total Type Structures: (Extended Abstract) , 2004, Workshop on Domains.

[12]  Martin Hofmann Linear types and non-size-increasing polynomial time computation , 2003, Inf. Comput..

[13]  Martin Hofmann Programming languages capturing complexity classes , 2000, SIGA.

[14]  Stephen A. Cook,et al.  Functional interpretations of feasibly constructive arithmetic , 1989, STOC '89.

[15]  Matthias Felleisen,et al.  Programming languages and lambda calculi , 1989 .

[16]  Kurt Mehlhorn,et al.  Polynomial and abstract subrecursive classes , 1974, STOC '74.

[17]  John C. Reynolds Definitional Interpreters for Higher-Order Programming Languages , 1998, High. Order Symb. Comput..

[18]  John Longley,et al.  On the ubiquity of certain total type structures , 2007, Mathematical Structures in Computer Science.

[19]  Daniel Leivant,et al.  A Foundational Delineation of Poly-time , 1994, Inf. Comput..

[20]  Ralph Benzinger,et al.  Automated higher-order complexity analysis , 2004, Theor. Comput. Sci..

[21]  Douglas J. Gurr Semantic frameworks for complexity , 1990 .

[22]  Arnold Schönhage Storage Modification Machines , 1980, SIAM J. Comput..

[23]  Stephen A. Cook,et al.  A new recursion-theoretic characterization of the polytime functions , 1992, STOC '92.

[24]  James S. Royer,et al.  Subrecursive Programming Systems , 1994, Progress in Theoretical Computer Science.

[25]  G. Chierchia,et al.  Formal Semantics , 2020 .

[26]  Jonathan C. Shultis On the Complexity of Higher-Order Programs ; CU-CS-288-85 , 1985 .

[27]  Stephen Brookes,et al.  A denotational approach to measuring complexity in functional programs , 2003 .

[28]  D. Leivant Ramified Recurrence and Computational Complexity I: Word Recurrence and Poly-time , 1995 .

[29]  J. Case,et al.  Subrecursive Programming Systems: Complexity & Succinctness , 1994 .

[30]  Karl-Heinz Niggl Characterizing polytime through higher type recursion , 2000, Electron. Notes Theor. Comput. Sci..

[31]  James S. Royer,et al.  Time-Complexity Semantics for Feasible Affine Recursions , 2007, CiE.

[32]  Nissim Francez,et al.  Basic simple type theory , 1998 .

[33]  Martin Hofmann,et al.  The strength of non-size increasing computation , 2002, POPL '02.

[34]  Peter W. O'Hearn On bunched typing , 2003, J. Funct. Program..

[35]  Bruce M. Kapron,et al.  On characterizations of the basic feasible functionals, Part I , 2001, Journal of Functional Programming.

[36]  James S. Royer A Connotational Theory of Program Structure , 1987, Lecture Notes in Computer Science.

[37]  Bruce M. Kapron,et al.  A New Characterization of Type-2 Feasibility , 1996, SIAM J. Comput..

[38]  David Sands,et al.  Calculi for time analysis of functional programs , 1990 .

[39]  Oded Goldreich,et al.  Foundations of Cryptography: Basic Tools , 2000 .

[40]  Yehoshua Bar-Hillel,et al.  The Intrinsic Computational Difficulty of Functions , 1969 .

[41]  Helmut SchwichtenbergMathematisches,et al.  Density and Choice for Total Continuous Functionals* 1. Information Systems , 1996 .

[42]  Martin Hofmann,et al.  Linear types and non-size-increasing polynomial time computation , 1999, Proceedings. 14th Symposium on Logic in Computer Science (Cat. No. PR00158).

[43]  Helmut Schwichtenberg,et al.  Higher type recursion, ramification and polynomial time , 2000, Ann. Pure Appl. Log..