Abstract
We present a denotational continuation semantics for PROLOG with cut. First a uniform language ℬ is studied, which captures the control flow aspects of PROLOG. The denotational semantics for ℬ is proven equivalent to a transition system based operational semantics. The congruence proof relies on the representation of the operational semantics as a chain of approximations and on a convenient induction principle. Finally, we interpret the abstract language ℬ such that we obtain equivalent denotational and operational models for PROLOG itself.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
Section 7 References
K.R. Apt and M.H. van Emden, “Contributions to the Theory of Logic Programming,” Journal of the ACM 29, pp. 841–862 (1982).
B. Arbab and D.M. Berry, “Operational and Denotational Semantics of Prolog,” Journal of Logic Programming 4, pp. 309–329 (1987).
M. Badinet, “Proving Termination Properties of PROLOG Programs: A Semantic Approach,” pp. 336–347 in Proc. LICS'88, Edinburgh (1988).
J.C.M. Baeten and W.P. Weijland, “Semantics for Prolog via Term Rewrite Systems,” pp. 3–14 in Proc. 1st International Workshop on Conditional Term Rewriting Systems, ed. S. Kaplan and J.-P. Jouannaud, LNCS 308, Springer (1987).
J.W. de Bakker, Mathematical Theory of Program Correctness, Prentice Hall International, London (1980).
J.W. de Bakker, “Comparative Semantics for Flow of Control in Logic Programming without Logic,” Report CS-R88.., Centre for Mathematics and Computer Science, Amsterdam, to appear (1988).
J.W. de Bakker and J.N. Kok, “Uniform Abstraction, Atomicity and Contractions in the Comparative Semantics of Concurrent Prolog,” in Proc. FGCS'88, Tokyo (1988).
J.W. de Bakker, J.N. Kok, J.-J. Ch. Meyer, E.-R. Olderog, and J.I. Zucker, “Contrasting Themes in the Semantics of Imperative Concurrency,” pp. 51–121 in Current Trends in Concurrency: Overviews and Tutorials, ed. J.W. de Bakker, W.P. de Roever & G. Rozenberg, LNCS 224, Springer (1986).
J.W. de Bakker and J.-J.Ch. Meyer, “Metric Semantics for Concurrency,” BIT 28, pp. 504–529 (1988).
J.W. de Bakker, J.-J.Ch. Meyer, E.-R. Olderog, and J.I. Zucker, “Transition Systems, Metric Spaces and Ready Sets in the Semantics for Uniform Concurrency,” Journal of Computer System Sciences 36, pp. 158–224 (1988).
A. de Bruin, Experiments with Continuation Semantics: Jumps, Backtracking, Dynamic Networks, Dissertation, Free University, Amsterdam (1986).
S.K. Debray and P. Mishra, “Denotational and Operational Semantics for Prolog,” Journal of Logic Programming 5, pp. 61–91 (1988).
P. Deransart and G. Ferrand, “An Operational Formal Definition of PROLOG,” Rapport de Recherche 598, INRIA, Rocquencourt (1986).
M.H. van Emden and R.A. Kowalski, “The Semantics of Predicate Logic as a Programming Language,” Journal of the ACM 23(4), pp. 773–742 (1976).
M.H. van Emden and K. Yukawa, “Logic Programming with Equations,” Journal of Logic Programming 4, pp. 265–288 (1987).
M. Fitting, “A Deterministic PROLOG Fixpoint Semantics”, Journal of Logic Programming 2, pp. 111–118 (1985).
G. Frandsen, “A Denotational Semantics for Logic Programming,” DAIMI PB-201, Aarhus University, Aarhus (1985).
R. Gerth, M. Codish, Y. Lichtenstein, and E. Shapiro, “Fully Abstract Denotational Semantics for Concurrent Prolog,” pp. 320–335 in Proc. LICS'88, Edinburgh (1988).
G. Huet, “Confluent Reductions: Abstract Properties and Applications to Term Rewriting Systems,” Journal of the ACM 27(4), pp. 797–821 (1980).
N.D. Jones and A. Mycroft, “Stepwise Development of Operational and Denotational Semantics for Prolog,” pp. 281–288 in Proc. SLP'84, Atlantic City (1984).
J.N. Kok, “A Compositional Semantics for Concurrent Prolog,” pp. 373–388 in Proc. STACS'88, ed. R. Cori & M. Wirsing, LNCS 294, Springer (1988).
J.N. Kok and J.J.M.M. Rutten, “Contractions in Comparing Concurrency Semantics,” pp. 317–332 in Proc. ICALP'88, ed. T. Lepistö & A. Salomaa, LNCS 317, Springer (1988).
R. Kowalski, “Algorithm = Logic + Control,” Communications of the ACM 22(7), pp. 424–436 (1979).
G. Levi, “Logic Programming: the Foundations, the Approach and the Role of Concurrency,” pp. 396–441 in Current Trends in Concurrency: Overviews and Tutorials, ed. J.W. de Bakker, W.P de Roever & G. Rozenberg, LNCS 224, Springer (1986).
J.W. Lloyd, Foundations of Logic Programming, Springer, Berlin (1984).
A. Martelli and G. Rossi, “On the Semantics of Logic Programming Languages,” pp. 327–334 in Proc. ICLP'86, ed. E. Shapiro, LNCS 225, Springer (1986).
R. Milne and C. Strachey, A Theory of Programming Language Semantics, Chapman & Hall, London and Wiley, New York, 2 Volumes (1976).
G.D. Plotkin, “A Structural Approach to Operational Semantics”, DAIMI FN-19, Aarhus University, Aarhus (1981).
J.E. Stoy, Denotational Semantics — The Scott-Strachey Approach to Programming Language Theory, MIT Press, Cambridge (1977).
R.D. Tennent, “Mathematical Semantics of SNOBOL4,” pp. 95–107 in Proc. POPL'73, Boston (1973).
E.P. de Vink, “Equivalence of an Operational and a Denotational Semantics for a Prolog-like Language with Cut,” Report IR-151, Free University, Amsterdam (1988).
Formal Description of Programming Concepts — III, ed. M. Wirsing, North-Holland, Amsterdam (1987).
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1989 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
de Bruin, A., de Vink, E.P. (1989). Continuation semantics for PROLOG with cut. In: Díaz, J., Orejas, F. (eds) TAPSOFT '89. CAAP 1989. Lecture Notes in Computer Science, vol 351. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-50939-9_132
Download citation
DOI: https://doi.org/10.1007/3-540-50939-9_132
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-50939-4
Online ISBN: 978-3-540-46116-6
eBook Packages: Springer Book Archive