Implementing denotational semantics with logic programming
CSC '92 Proceedings of the 1992 ACM annual conference on Communications
A calculus of mobile processes, II
Information and Computation
Communication and Concurrency
How to define a language using PROLOG
LFP '82 Proceedings of the 1982 ACM symposium on LISP and functional programming
Hi-index | 0.00 |
In this work we propose to use a Horn fragment of Concurrent Transaction Logic ( ${\mathcal CTR}$) as an intuitive logic framework to specify semantics of concurrent programming languages. Using Horn logic to specify a programming language has been suggested before [5,6,2]. By specifying a programming language we mean writing semantics, all three semantics-operational, denotational, and axiomatic-in Horn logic, which is also executable. Slonneger convincingly demonstrated that, for the specification of denotational semantics, Prolog can be regarded as superior to imperative languages. Gupta [2] expanded on the idea and showed how Horn logic denotations lead to some interesting practical applications, such as automatic program verification and automatic generation of compilers. The work presented here builds on the aforementionedworks and extends that of [2] by providing a Horn logic denotational semantics for concurrent programming languages.