Horn Logic Denotations and Their Applications

In spite of decades of work, the practical impact of programming language semantics (denotational semantics) has been limited. Our thesis is that a major contributing factor to this lack of practical impact is the declarative notation used for expressing the semantics, namely, the λ-calculus. We propose to use Horn Logic (and eventually Constraint Logic) instead of the λ-calculus to express denotational semantics. This simple change leads to many practical applications, most notably to automatic program verification and automatic generation of compilers from semantics specifications. These Horn Logic denotations and their applications axe discussed at length in this paper.

[1]  Gopal Gupta,et al.  Horn Logic Denotations , 1998, IJCSLP.

[2]  C. R. Ramakrishnan,et al.  Efficient Model Checking Using Tabled Resolution , 1997, CAV.

[3]  Yehoshua Sagiv,et al.  Automatic Termination Analysis of Logic Programs , 1997, ICLP.

[4]  Dale Miller,et al.  From operational semantics to abstract machines , 1992, Mathematical Structures in Computer Science.

[5]  Peter D. Mosses Compiler Generation Using Denotational Semantics , 1976, MFCS.

[6]  Philip A. Collier,et al.  From standard to implementation denotational semantics , 1980, Semantics-Directed Compiler Generation.

[7]  Subrata Kumar Das,et al.  Deductive Databases and Logic Programming , 1992 .

[8]  Joxan Jaffar,et al.  Constraint logic programming , 1987, POPL '87.

[9]  Saumya K. Debray,et al.  Non-Failure Analysis for Logic Programs , 1997, ICLP.

[10]  Thierry Despeyroux,et al.  Executable Specification of Static Semantics , 1984, Semantics of Data Types.

[11]  David A. Schmidt,et al.  Denotationaisemantics: a methodology for language development , 1986 .

[12]  Peter Fritzson,et al.  Generating an Efficient Compiler for a Data Parallel Language from a Denotational Specification , 1994, CC.

[13]  David A. Schmidt On the need for a popular formal semantics , 1997, SIGP.

[14]  Konstantinos Sagonas,et al.  XSB as an efficient deductive database engine , 1994, SIGMOD '94.

[15]  Deryck Forsyth Brown,et al.  ACTRESS: An Action Semantics Directed Compiler Generator (Summary) , 1991, Functional Programming.

[16]  Arthur C. Fleck,et al.  Semantic Specification Using Logic Programs , 1989, NACLP.

[17]  Charles Consel,et al.  Architecture Software Using: A Methodology for Language Development , 1998, PLILP/ALP.

[18]  Mitchell Wand Semantics-directed machine architecture , 1982, POPL '82.

[19]  C. A. R. Hoare,et al.  An axiomatic basis for computer programming , 1969, CACM.

[20]  David A. Schmidt,et al.  Programming language semantics , 1996, CSUR.

[21]  Neil D. Jones,et al.  An introduction to partial evaluation , 1996, CSUR.

[22]  Krzysztof R. Apt,et al.  Logic Programming , 1990, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[23]  Leon Sterling,et al.  The Art of Prolog , 1987, IEEE Expert.

[24]  Peter Lee Realistic compiler generation , 1989, Foundations of Computing Series.

[25]  C. R. Ramakrishnan,et al.  Practical program analysis using general purpose logic programming systems—a case study , 1996, PLDI '96.

[26]  I-Peng Lin,et al.  Compiling dataflow analysis of logic programs , 1992, PLDI '92.

[27]  Ehud Shapiro,et al.  Third International Conference on Logic Programming , 1986 .

[28]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[29]  John Wylie Lloyd,et al.  Foundations of Logic Programming , 1987, Symbolic Computation.

[30]  David H. D. Warren Logic programming and compiler writing , 1980, Softw. Pract. Exp..

[31]  Flemming Nielson,et al.  Two-Level Semantics and Code Generation , 1988, Theor. Comput. Sci..

[32]  Marvin V. Zelkowitz,et al.  Programming Languages: Design and Implementation , 1975 .

[33]  Rajeev Alur,et al.  The Theory of Timed Automata , 1991, REX Workshop.

[34]  Enrico Pontelli,et al.  Automatic Generation of Provably Correct Parallelizing Compilers , 1998, ICPP.

[35]  Barbara M. Chapman,et al.  Supercompilers for parallel and vector computers , 1990, ACM Press frontier series.

[36]  Gerda Janssens,et al.  Global analysis of constraint logic programs , 1996, TOPL.

[37]  David Scott Warren,et al.  Tabled evaluation with delaying for general logic programs , 1996, JACM.