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
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
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.
H.P. Barendregt: The Lambda Calculus, Its Syntax and Semantics (revised edition), North-Holland, 1984.
H.P. Barendregt: Lambda Calculi with Types, Handbook of Logic in Computer Science Vol.II, Oxford University Press, pp.1–189, 1992.
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.
G. Barthe and M.H. Sørensen: Domain-free Pure Type Systems, Lecture Notes in Computer Science 1234, pp.9–20, 1997.
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.
P. de Groote: A CPS-Translation for the λμ-Calculus, Lecture Notes in Computer Science 787, pp.85–99, 1994.
P. de Groote: A Simple Calculus of Exception Handling, Lecture Notes in Computer Science 902, pp.201–215, 1995.
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.
K. Fujita: Calculus of Classical Proofs I, Lecture Notes in Computer Science 1345, pp.321–335, 1997.
K. Fujita: Polymorphic Call-by-Value Calculus based on Classical Proofs, Lecture Notes in Artificial Intelligence 1476, pp.170–182, 1998.
T.G. Griffin: A Formulae-as-Types Notion of Control, Proc. 17th Annual ACM Symposium on Principles of Programming Languages, pp.47–58, 1990.
R. Harper, B.F. Duba, and D. MacQueen: Typing First-Class Continuations in ML, J.Functional Programming, 3(4) pp.465–484, 1993.
R. Harper and M. Lillibridge: ML with callcc is unsound, The Types Form, 8, July, 1991.
R. Harper and M. Lillibridge: Explicit polymorphism and CPS conversion, Proc. 20th Annual ACM Symposium on Principles of Programming Languages, pp.206–219, 1993.
R. Harper and M. Lillibridge: Polymorphic type assignment and CPS conversion, LISP and Symbolic Computation 6, pp.361–380, 1993.
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.
M. Hofmann: Sound and complete axiomatisations of call-by-value control operators, Math. Struct. in Comp. Science 5, pp.461–482, 1995.
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.
M. Hofmann and T. Streicher: Continuation models are universal for λμ-calculus, Proc. 12th Annual IEEE Symposium on Logic in Computer Science, 1997.
S. Kobayashi: Monads as modality, Theor.Comput.Sci. 175, pp.29–74, 1997.
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.
X. Leroy: Polymorphism by name for references and continuations, Proc. 20th Annual ACM Symposium of Principles of Programming Languages, pp.220–231, 1993.
J.C. Mitchell: Polymorphic Type Inference and Containment, Information and Computation 76, pp.211–249, 1988.
R. Milner: A Theory of Type Polymorphism in Programming, Journal of Computer and System Sciences 17, pp.348–375, 1978.
C.R. Murthy: An Evaluation Semantics for Classical Proofs, Proc. 6th Annual IEEE Symposium on Logic in Computer Science, pp.96–107, 1991.
A. Meyer and M. Wand: Continuation Semantics in Typed Lambda-Calculi, Lecture Notes in Computer Science 193, pp.219–224, 1985.
C.-H.L. Ong: A Semantic View of Classical Proofs: Type-Theoretic, Categorical, and Denotational Characterizations, Linear Logic’ 96 Tokyo Meeting, 1996.
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.
M. Parigot: λμ-Calculus: An Algorithmic Interpretation of Classical Natural Deduction, Lecture Notes in Computer Science 624, pp.190–201, 1992.
M. Parigot: Classical Proofs as Programs, Lecture Notes in Computer Science 713, pp.263–276, 1993.
M. Parigot: Proofs of Strong Normalization for Second Order Classical Natural Deduction, J.Symbolic Logic 62(4), pp.1461–1479, 1997.
G. Plotkin: Call-by-Name, Call-by-Value and the λ-Calculus, Theor.Comput.Sci. 1, pp. 125–159, 1975.
D. Prawitz: Ideas and Results in Proof Theory, Proc. 2nd Scandinavian Logic Symposium, edited by N.E. Fenstad, North-Holland, pp.235–307, 1971.
N.J. Rehof and M.H. Sørensen: The λ△-Calculus, Lecture Notes in Computer Science 789, pp.516–542, 1994.
T. Streicher and B. Reus: Continuation semantics: abstract machines and control operators, to appear in J.Functional Programming.
M. Takahashi: Parallel Reductions in λ-Calculus, J.Symbolic Computation 7, pp.113–123, 1989.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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