Hostname: page-component-8448b6f56d-jr42d Total loading time: 0 Render date: 2024-04-24T03:22:46.041Z Has data issue: false hasContentIssue false

Extended natural semantics

Published online by Cambridge University Press:  07 November 2008

John Hannan
Affiliation:
Department of Computer Science, University of Copenhagen, Universitetsparken 1, DK-2100 Copenhagen Ø, Denmark
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the ‘Save PDF’ action button.

We extend the definition of natural semantics to include simply typed λ-terms, instead of first-order terms, for representing programs, and to include inference rules for the introduction and discharge of hypotheses and eigenvariables. This extension, which we call extended natural semantics, affords a higher-level notion of abstract syntax for representing programs and suitable mechanisms for manipulating this syntax. We present several examples of semantic specifications for a simple functional programming language and demonstrate how we achieve simple and elegant manipulations of bound variables in functional programs. All the examples have been implemented and tested in λProlog, a higher-order logic programming language that supports all of the features of extended natural semantics.

Type
Articles
Copyright
Copyright © Cambridge University Press 1993

References

Borras, P., Clément, D., Despeyroux, T., Incerpi, J., Kahn, G., Lang, B. and Pascual, V. 1987. CENTAUR: the system. Technical Report 777, INRIA, (12).CrossRefGoogle Scholar
Bruijn, N. 1980. A survey of the project AUTOMATH. In Hindley, R. and Seldin, J., editors, To H. B. Curry: Essays on Combinatory Logic, Academic Press, 589606.Google Scholar
Burstall, R. and Honsell, F. 1991. A natural deduction treatment of operational semantics. In Huet, G. and Plotkin, G., editors, Logical Frameworks, Cambridge University Press, 89111.Google Scholar
Clément, D., Despeyroux, J., Despeyroux, T. and Kahn, G. 1986. A simple applicative language: Mini-ML. In Proceedings of the 1986 ACM Conference on Lisp and Functional Programming, 1327.Google Scholar
Damas, L. and Milner, R. 1982. Principal type schemes for functional programs. In Proceedings of the ACM Conference on Principles of Programming Languages, 207212.Google Scholar
Elliott, C. and Pfenning, F. 1989. eLP, a Common Lisp Implementation of λProlog.Google Scholar
Felty, A. and Miller, D. 1990. Encoding a dependent-type λ-calculus in a logic programming language. In Stickel, M. E., editor, Proceedings of the Tenth International Conference on Automated Deduction, Springer-Verlag LNCS Vol. 449, 221235.CrossRefGoogle Scholar
Gentzen, G. 1969. Investigations into logical deduction. In Szabo, M., editor, The Collected Papers of Gerhard Gentzen, North-Holland, 68131.Google Scholar
Hannan, J. and Miller, D. 1988. Enriching a meta-language with higher-order features. Technical Report MS-CIS-88-45, University of Pennsylvania (06).Google Scholar
Hannan, J. and Miller, D. 1989. Deriving mixed evaluation from standard evaluation for a simple functional language. In van de Snepscheut, J. L. A., editor, Mathematics of Program Construction, Springer-Verlag LNCS Vol. 375, 239255.CrossRefGoogle Scholar
Hannan, J. and Pfenning, F. 1992. Compiler verification in LF. In Scedrov, A., editor, Proceedings of the Seventh Annual IEEE Symposium on Logic in Computer Science, IEEE Press, 407418.Google Scholar
Hannan, J. 1991. Investigating a Proof-Theoretic Meta-Language for Functional Programs. PhD thesis, University of Pennsylvania, (Available as MS-CIS-91-09.)Google Scholar
Harper, R., Honsell, F. and Plotkin, G. To appear. A framework for defining logics. Journal of the ACM. (A preliminary version appeared in Symposium on Logic in Computer Science, 06 1987, 194204.)Google Scholar
Huet, G. and Lang, B. 1978. Proving and applying program transformations expressed with second-order logic. Acta Informatica, 11: 3155.CrossRefGoogle Scholar
Huet, G. 1975. A unification algorithm for typed λ-calculus. Theoretical Computer Science, 1: 2757.CrossRefGoogle Scholar
Kahn, G. 1987. Natural semantics. In Proceedings of the Symposium on Theoretical Aspects of Computer Science, Springer-Verlag LNCS Vol. 247, 2239.Google Scholar
Meyer, A. 1981. What is a model of the lambda calculus? Information and Control, 52(1): 87122.CrossRefGoogle Scholar
Michaylov, S. and Pfenning, F. 1992. Natural semantics and some of its meta-theory in Elf. In Hallnäs, L., editor, Extensions of Logic Programming, Springer-Verlag LNCS 596, 299344. (A preliminary version is available as Technical Report MPI-I-91-211, Max-Planck-Institute for Computer Science, Saarbrücken, Germany, 08 1991.)CrossRefGoogle Scholar
Miller, D. and Nadathur, G. 1987. A logic programming approach to manipulating formulas and programs. In Proceedings of the IEEE Fourth Symposium on Logic Programming, IEEE Press, 379388.Google Scholar
Miller, D., Nadathur, G., Pfenning, F. and Scedrov, A. 1991. Uniform proofs as a foundation for logic programming. Annals of Pure and Applied Logic, 51: 125157.CrossRefGoogle Scholar
Miller, D. 1991. A logic programming language with lambda-abstraction, function variables, and simple unification. Journal of Logic and Computation, 1(4): 497536.CrossRefGoogle Scholar
Milner, R., Tofte, M. and Harper, R., 1991. The Definition of Standard ML. MIT Press.Google Scholar
Mitchell, J. and Harper, R. 1988. The essence of ML. In Proceedings of the ACM Conference on Principles of Programming Languages, 2846.Google Scholar
Nadathur, G. and Miller, D. 1988. An overview of λProlog. In Bowen, K. and Kowalski, R., editors, Fifth International Conference and Symposium on Logic Programming, MIT Press, 810827.Google Scholar
Paulson, L. 1989. The foundation of a generic theorem prover. Journal of Automated Reasoning, 5: 363397.CrossRefGoogle Scholar
Pfenning, F. and Elliott, C. 1988. Higher-order abstract syntax. In Proceedings of the ACM-SIGPLAN Conference on Programming Language Design and Implementation, 199208. SIGPLAN Notices, Vol. 23, Number 7.Google Scholar
Pfenning, F. 1989. Elf: A language for logic definition and verified metaprogramming. In Proceedings of the Fourth Annual Symposium on Logic in Computer Science, IEEE Press, 313322.CrossRefGoogle Scholar
Pfenning, F. 1991. Logic programming in the LF logical framework. In Huet, G. and Plotkin, G., editors, Logical Frameworks, Cambridge University Press, 149181.CrossRefGoogle Scholar
Plotkin, G. 1975. Call-by-name, call-by-value and the λ-calculus. Theoretical Computer Science, 1(1): 125159.CrossRefGoogle Scholar
Plotkin, G. 1981. A structural approach to operational semantics. DAIMI FN-19, Aarhus University, Aarhus, Denmark (09).Google Scholar
Prawitz, D., 1965. Natural Deduction. Almqvist & Wiksell, Uppsala.Google Scholar
Scott, D. 1980. Relating theories of the λ-calculus. In Hindley, R. and Seldin, J., editors, To H. B. Curry: Essays on Combinatory Logic, Academic Press, 403450.Google Scholar
Submit a response

Discussions

No Discussions have been published for this article.