Runtime Behavior of Conversion Interpretation of Subtyping

A programming language with subtyping can be translated into a language without subtyping by inserting conversion functions. Previous studies of this interpretation showed only the extensional correctness of the translation. We study runtime behavior of translated programs and show that this translation preserves execution time and stack space within a factor determined by the types in a program. Both the proofs on execution time and stack space are based on the method of logical relations where relations are extended with the factor of slowdown or increase of stack space.

[1]  David Sands,et al.  Possibilities and limitations of call-by-need space improvement , 2001, ICFP '01.

[2]  Jacques Garrigue,et al.  On the runtime complexity of type-directed unboxing , 1998, ICFP '98.

[3]  David Sands,et al.  A Foundation for Space-Safe Transformations of Call-by-Need Programs , 1999, HOOTS.

[4]  Xavier Leroy,et al.  Unboxed objects and polymorphic typing , 1992, POPL '92.

[5]  Guy E. Blelloch,et al.  A provable time and space efficient implementation of NESL , 1996, ICFP '96.

[6]  Yasuhiko Minamide Space-Profiling Semantics of the Call-by-Value Lambda Calculus and the CPS Transformation , 1999, Electron. Notes Theor. Comput. Sci..

[7]  Carl A. Gunter Semantics of programming languages: structures and techniques , 1993, Choice Reviews Online.

[8]  David Sands,et al.  A Naïve Time Analysis and its Theory of Cost Equivalence , 1995, J. Log. Comput..

[9]  Yasuhiko Minamide A New Criterion for Safe Program Transformations , 2000, Electron. Notes Theor. Comput. Sci..

[10]  Dave Sands,et al.  Computing with Contexts: A simple approach , 1998, HOOTS.

[11]  John C. Mitchell,et al.  Foundations for programming languages , 1996, Foundation of computing series.

[12]  Robert Harper,et al.  Typed closure conversion , 1996, POPL '96.

[13]  Colin Runciman,et al.  A model for comparing the space usage of lazy evaluators , 2000, PPDP '00.

[14]  David Sands,et al.  Proving the Correctness of Recursion-Based Automatic Program Transformations , 1995, Theor. Comput. Sci..

[15]  Nevin Heintze Control-Flow Analysis and Type Systems , 1995, SAS.

[16]  Atsushi Ohori,et al.  A polymorphic record calculus and its compilation , 1995, TOPL.

[17]  Val Tannen,et al.  Computing with coercions , 1990, LISP and Functional Programming.