Operational semantics for declarative multi-paradigm languages

被引:41
|
作者
Albert, E
Hanus, M [1 ]
Huch, F
Oliver, J
Vidal, G
机构
[1] Univ Kiel, Inst Informat, D-24098 Kiel, Germany
[2] Univ Complutense Madrid, DSIP, E-28040 Madrid, Spain
[3] Univ Politecn Valencia, DSIC, E-46022 Valencia, Spain
关键词
functional logic progamming; operational semantics;
D O I
10.1016/j.jsc.2004.01.001
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
Declarative multi-paradigm languages combine the most important features of functional, logic and concurrent programming. The computational model of such integrated languages is usually based on a combination of two different operational principles: narrowing and residuation. This work is motivated by the fact that a precise definition of an operational semantics including all aspects of modem multi-paradigm languages like laziness, sharing, non-determinism, equational constraints, external functions and concurrency does not exist. Therefore, in this article, we present the first rigorous operational description covering all the aforementioned features in a precise and understandable manner. We develop our operational semantics in several steps. First, we define a natural (big-step) semantics covering laziness, sharing and non-determinism. We also present an equivalent small-step semantics which additionally includes a number of practical features like equational constraints and external functions. Then, we introduce a deterministic version of the small-step semantics which makes the search strategy explicit; this is essential for profiling, tracing, debugging etc. Finally, the deterministic semantics is extended in order to cover the concurrent facilities of modem declarative multi-paradigm languages. The semantics developed provides an appropriate foundation for modeling actual declarative multi-paradigm languages like Curry. The complete operational semantics has been implemented and used with various programming tools. (c) 2005 Elsevier Ltd. All rights reserved.
引用
收藏
页码:795 / 829
页数:35
相关论文
共 50 条