Skip to main content

Explicitly Typed λμ-Calculus for Polymorphism and Call-by-Value

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1581))

Abstract

We introduce an explicitly typed λμ-calculus of call-by-value as a short-hand for the 2nd order Church-style. Our motivation comes from the observation that in Curry-style polymorphic calculi, control operators such as callcc or μ-operators cannot, in general, treat the terms placed on the control operator’s left. Following the continuation semantics, we also discuss the notion of values in classical system, and propose an extended form of values. It is shown that the CPS-translation is sound with respect to λ2 (2nd order λ-calculus). Next, we provide an explicitly and an implicitly typed Damas-Milner systems with μ-operators. Finally, we give a brief comparison with standard ML plus callcc, and discuss a natural way to avoid the unsoundness of ML with callcc.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Y. Andou: A Normalization-Procedure for the First Order Classical Natural Deduction with Full Logical Symbols. Tsukuba Journal of Mathematics 19(1) pp.153–162, 1995.

    MATH  MathSciNet  Google Scholar 

  2. H.P. Barendregt: The Lambda Calculus, Its Syntax and Semantics (revised edition), North-Holland, 1984.

    Google Scholar 

  3. H.P. Barendregt: Lambda Calculi with Types, Handbook of Logic in Computer Science Vol.II, Oxford University Press, pp.1–189, 1992.

    Google Scholar 

  4. F. Barbanera and S. Berardi: Extracting Constructive Context from Classical Logic via Control-like Reductions, Lecture Notes in Computer Science 664, pp.45–59, 1993.

    Google Scholar 

  5. G. Barthe and M.H. Sørensen: Domain-free Pure Type Systems, Lecture Notes in Computer Science 1234, pp.9–20, 1997.

    Google Scholar 

  6. L. Damas and R. Milner: Principal type-schemes for functional programs, Proc. 9th Annual ACM Symposium on Principles of Programming Languages, pp.207–212, 1982.

    Google Scholar 

  7. P. de Groote: A CPS-Translation for the λμ-Calculus, Lecture Notes in Computer Science 787, pp.85–99, 1994.

    Google Scholar 

  8. P. de Groote: A Simple Calculus of Exception Handling, Lecture Notes in Computer Science 902, pp.201–215, 1995.

    Google Scholar 

  9. M. Felleisen, D.P. Friedman, E. Kohlbecker, and B. Duba: Reasoning with Continuations, Proc. Annual IEEE Symposium on Logic in Computer Science, pp.131–141, 1986.

    Google Scholar 

  10. K. Fujita: Calculus of Classical Proofs I, Lecture Notes in Computer Science 1345, pp.321–335, 1997.

    Google Scholar 

  11. K. Fujita: Polymorphic Call-by-Value Calculus based on Classical Proofs, Lecture Notes in Artificial Intelligence 1476, pp.170–182, 1998.

    Google Scholar 

  12. T.G. Griffin: A Formulae-as-Types Notion of Control, Proc. 17th Annual ACM Symposium on Principles of Programming Languages, pp.47–58, 1990.

    Google Scholar 

  13. R. Harper, B.F. Duba, and D. MacQueen: Typing First-Class Continuations in ML, J.Functional Programming, 3(4) pp.465–484, 1993.

    Google Scholar 

  14. R. Harper and M. Lillibridge: ML with callcc is unsound, The Types Form, 8, July, 1991.

    Google Scholar 

  15. R. Harper and M. Lillibridge: Explicit polymorphism and CPS conversion, Proc. 20th Annual ACM Symposium on Principles of Programming Languages, pp.206–219, 1993.

    Google Scholar 

  16. R. Harper and M. Lillibridge: Polymorphic type assignment and CPS conversion, LISP and Symbolic Computation 6, pp.361–380, 1993.

    Article  Google Scholar 

  17. R. Harper and J.C. Mitchell: On The Type Structure of Standard ML, ACM Transactions on Programming Languages and Systems, Vol. 15,No.2, pp.210–252, 1993.

    Article  Google Scholar 

  18. M. Hofmann: Sound and complete axiomatisations of call-by-value control operators, Math. Struct. in Comp. Science 5, pp.461–482, 1995.

    Article  MATH  Google Scholar 

  19. W. Howard: The Formulae-as-Types Notion of Constructions, To H.B.Curry: Essays on combinatory logic, lambda-calculus, and formalism, Academic Press, pp.479–490, 1980.

    Google Scholar 

  20. M. Hofmann and T. Streicher: Continuation models are universal for λμ-calculus, Proc. 12th Annual IEEE Symposium on Logic in Computer Science, 1997.

    Google Scholar 

  21. S. Kobayashi: Monads as modality, Theor.Comput.Sci. 175, pp.29–74, 1997.

    Article  MATH  Google Scholar 

  22. A.J. Kfoury, J. Tiuryn, and P. Urzyczyn: An Analysis of ML Typability, Journal of the Association for Computing Machinery, Vol.41,No. 2, pp.368–398, 1994.

    MATH  Google Scholar 

  23. X. Leroy: Polymorphism by name for references and continuations, Proc. 20th Annual ACM Symposium of Principles of Programming Languages, pp.220–231, 1993.

    Google Scholar 

  24. J.C. Mitchell: Polymorphic Type Inference and Containment, Information and Computation 76, pp.211–249, 1988.

    Article  MathSciNet  MATH  Google Scholar 

  25. R. Milner: A Theory of Type Polymorphism in Programming, Journal of Computer and System Sciences 17, pp.348–375, 1978.

    Article  MATH  MathSciNet  Google Scholar 

  26. C.R. Murthy: An Evaluation Semantics for Classical Proofs, Proc. 6th Annual IEEE Symposium on Logic in Computer Science, pp.96–107, 1991.

    Google Scholar 

  27. A. Meyer and M. Wand: Continuation Semantics in Typed Lambda-Calculi, Lecture Notes in Computer Science 193, pp.219–224, 1985.

    Google Scholar 

  28. C.-H.L. Ong: A Semantic View of Classical Proofs: Type-Theoretic, Categorical, and Denotational Characterizations, Linear Logic’ 96 Tokyo Meeting, 1996.

    Google Scholar 

  29. C.-H.L. Ong and C.A. Stewart: A Curry-Howard Foundation for Functional Computation with Control, Proc. 24th Annual ACM Symposium of Principles of Programming Languages, 1997.

    Google Scholar 

  30. M. Parigot: λμ-Calculus: An Algorithmic Interpretation of Classical Natural Deduction, Lecture Notes in Computer Science 624, pp.190–201, 1992.

    Google Scholar 

  31. M. Parigot: Classical Proofs as Programs, Lecture Notes in Computer Science 713, pp.263–276, 1993.

    Google Scholar 

  32. M. Parigot: Proofs of Strong Normalization for Second Order Classical Natural Deduction, J.Symbolic Logic 62(4), pp.1461–1479, 1997.

    Article  MATH  MathSciNet  Google Scholar 

  33. G. Plotkin: Call-by-Name, Call-by-Value and the λ-Calculus, Theor.Comput.Sci. 1, pp. 125–159, 1975.

    Article  MATH  MathSciNet  Google Scholar 

  34. D. Prawitz: Ideas and Results in Proof Theory, Proc. 2nd Scandinavian Logic Symposium, edited by N.E. Fenstad, North-Holland, pp.235–307, 1971.

    Google Scholar 

  35. N.J. Rehof and M.H. Sørensen: The λ-Calculus, Lecture Notes in Computer Science 789, pp.516–542, 1994.

    Google Scholar 

  36. T. Streicher and B. Reus: Continuation semantics: abstract machines and control operators, to appear in J.Functional Programming.

    Google Scholar 

  37. M. Takahashi: Parallel Reductions in λ-Calculus, J.Symbolic Computation 7, pp.113–123, 1989.

    Article  MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1999 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Fujita, Ke. (1999). Explicitly Typed λμ-Calculus for Polymorphism and Call-by-Value. In: Girard, JY. (eds) Typed Lambda Calculi and Applications. TLCA 1999. Lecture Notes in Computer Science, vol 1581. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48959-2_13

Download citation

  • DOI: https://doi.org/10.1007/3-540-48959-2_13

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-65763-7

  • Online ISBN: 978-3-540-48959-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics