skip to main content
research-article

Extending the loop language with higher-order procedural variables

Published:14 August 2009Publication History
Skip Abstract Section

Abstract

We extend Meyer and Ritchie's Loop language with higher-order procedures and procedural variables and we show that the resulting programming language (called Loopω) is a natural imperative counterpart of Gödel System T. The argument is two-fold:

(1) we define a translation of the Loopω language into System T and we prove that this translation actually provides a lock-step simulation,

(2) using a converse translation, we show that Loopω is expressive enough to encode any term of System T.

Moreover, we define the “iteration rank” of a Loopω program, which corresponds to the classical notion of “recursion rank” in System T, and we show that both translations preserve ranks. Two applications of these results in the area of implicit complexity are described.

References

  1. Appel, A. W. 1998. Modern Compiler Implementation in ML. Cambridge University Press, Cambridge, UK. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Avigad, J. and Feferman, S. 1998. Gödel's functional (“dialectica”) interpretation. In Handbook of Proof Theory, S. R. Buss, Ed. Elsevier Science Publishers, 337--405.Google ScholarGoogle Scholar
  3. Beckmann, A. and Weiermann, A. 2000. Characterizing the elementary recursive functions by a fragment of Gödel's T. Archive Math. Logic 39, 475--491.Google ScholarGoogle ScholarCross RefCross Ref
  4. Calude, C. 1988. Theories of Computational Complexity. Elsevier Science Inc. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Colson, L. 1991. About primitive recursive algorithms. Theor. Comput. Sci. 83, 57--69. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Colson, L. and Fredholm, D. 1998. System T, call-by-value and the minimum problem. Theor. Comput. Sci. 206, 1-2, 301--315. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Crolard, T., Lacas, S., and Valarcher, P. 2006. On the expressive power of the loop language. Nordic J. Comput. 13, 1-2, 46--57. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Davis, M. and Weyuker, E. 1983. Computability, Complexity and Languages. Academic Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. DOD. 1980. The Programming Language Ada. Reference Manual. Springer.Google ScholarGoogle Scholar
  10. Donahue, J. E. 1977. Locations considered unnecessary. Acta Inf. 8, 221--242.Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Felleisen, M. and Friedman, D. P. 1987. A calculus for assignments in higher-order languages. In Proceedings of the 14th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages (POPL '87). ACM Press, New York, 314. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Filinski, A. 1994. Representing monads. In Conference Record of the 21st Annual Symposium on Principles of Programming Languages. 446--457. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Filliâtre, J.-C. 2003. Verification of non-functional programs using interpretations in type theory. J. Funct. Program. 13, 4, 709--745. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Filliâtre, J.-C. and Marché, C. 2004. Multi-prover verification of C programs. In Proceedings of the Formal Methods and Software Engineering, 6th International Conference on Formal Engineering Methods, (ICFEM'04). Lecture Notes in Computer Science, vol. 3308. Springer-Verlag, 15--29.Google ScholarGoogle Scholar
  15. Gellerich, W. and Plödereder, E. 2001. Parameter-induced aliasing in ada. In Proceedings of the 6th Ade-Europe International Conference. D. Craeynest and A. Strohmeier, Eds. Lecture Notes in Computer Science, vol. 2043. Springer, 88--99. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Gifford, D. and Lucassen, J. 1986. Integrating functional and imperative programming. In Proceedings of the ACM Symposium on Principles of Programming Languages. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Girard, J.-Y., Lafont, Y., and Taylor, P. 1989. Proofs and Types. Vol. 7. Cambridge Tracts in Theoretical Computer Science. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Gödel, K. 1958. Über eine bisher noch nicht benützteerweiterung des finiten standpunktes. Dialectica 12, 280--287.Google ScholarGoogle ScholarCross RefCross Ref
  19. Gödel, K. 1990. Collected Works vol. 2. Oxford University Press, Oxford, UK.Google ScholarGoogle Scholar
  20. Hatcliff, J. and Danvy, O. 1997. Thunks and the lambda-calculus. J. Funct. Program. 7, 3, 303--319. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. ISO. 2003. C# language specification ISO/IEC 23270. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Jones, N. D. 1997. Computability and Complexity from a Programming Perspective. The MIT Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Kahn, G. 1987. Natural semantics. In Proceedings of the Symposium on Theoretical Aspects of Computer Science (STACS). Lecture Notes in Computer Science, vol. 247. Springer-Verlag, 22--39. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Kelsey, R., Clinger, W., and Rees, J. 1998. Revised5 report on the algorithmic language Scheme. Higher-Order Symbol. Comput. 11, 1, 7--105. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Kreisel, G. 1951. On the interpretation of non-finitist proofs—part I. J. Symb. Log 16, 4, 241--267.Google ScholarGoogle Scholar
  26. Landin, P. J. 1964. The mechanical evaluation of expressions. Comput. J. 6, 308--320.Google ScholarGoogle ScholarCross RefCross Ref
  27. McCarthy, J. 1960. Recursive functions of symbolic expressions and their computation by machine, part I. Comm. ACM 3, 4, 184--195. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Meyer, A. R. and Ritchie, D. M. 1976. The complexity of loop programs. In Proceedings of the ACM Natural Meeting.Google ScholarGoogle Scholar
  29. Milner, R., Tofte, M., Harper, R., and MacQueen, D. 1997. The Definition of Standard ML. Rev. Ed. MIT Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Moggi, E. 1991. Notions of computation and monads. Inform. Comput. 93, 1, 55--92. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. O'Hearn, P. W. and Tennent, R. D., Eds. 1997. Algol-Like Languages. Birkhaüser. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Peter, R. 1968. Recursive Functions. Academic Press.Google ScholarGoogle Scholar
  33. Plotkin, G. 1981. A structural approach to operational semantics. Tech. rep. DAIMI FN-19, Aarhus University.Google ScholarGoogle Scholar
  34. Reynolds, J. C. 1978. Syntactic control of interference. In Proceedings of the Annual Symposium on Principles of Programming Languages (POPL). 39--46. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Reynolds, J. C. 1981. The essence of Algol. In Algorithmic Languages, de Bakker and van Vliet, Eds. IFIP, North-Holland, Amsterdam, 345--372.Google ScholarGoogle Scholar
  36. Reynolds, J. C. 1998. Theories of Programming Languages. Cambridge University Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Schmidt, D. A. 1994. The Structure of Typed Programming Languages. The MIT Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Schütte, K. 1967. Proof Theory. Addison Wesley.Google ScholarGoogle Scholar
  39. Stoy, J. 1977. Denotational Semantics of Programming Languages: The Scott-Strachey Approach to Programming Language Theory. The MIT Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Talpin, J.-P. and Jouvelot, P. 1994. The type and effect discipline. Inform. Computat. 111, 2, 245--296. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Turner, D. A. 2004. Total functional programming. J. Unin. Comput. Sci. 10, 7, 751--768.Google ScholarGoogle Scholar
  42. Wadler, P. 1990. Comprehending monads. In Proceedings of the ACM Conference on Lisp and Functional Programming. 61--78. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Wadler, P. 1998. The marriage of effects and monads. In Proceedings of the International Conference on Functional Programming. ACM, Baltimore, 63--74. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Extending the loop language with higher-order procedural variables
      Index terms have been assigned to the content through auto-classification.

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      • Published in

        cover image ACM Transactions on Computational Logic
        ACM Transactions on Computational Logic  Volume 10, Issue 4
        August 2009
        206 pages
        ISSN:1529-3785
        EISSN:1557-945X
        DOI:10.1145/1555746
        Issue’s Table of Contents

        Copyright © 2009 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 14 August 2009
        • Accepted: 1 October 2007
        • Revised: 1 May 2007
        • Received: 1 September 2006
        Published in tocl Volume 10, Issue 4

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article
        • Research
        • Refereed

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader