Abstract
This overview considers research and development in integrated declarative programming based on the design, semantics, implementation, and use of the RELFUN (RELational-FUNctional) language. RELFUN reciprocally extends Horn relations and call-by-value (eager) functions just enough to yield a unified operator concept. Relations acquire application nesting and higher-order notation; functions acquire non-groundness and non-determinism. Relations are defined by Horn-like clauses implicitly returning true; functions are defined by rules with an additional returned-value premise. This minimal relational-functional kernel then provides a platform for common extensions such as finite domains, avoiding their duplication as separate features of logic and functional languages. Operational (interpreter in pure LISP), procedural (SLV-resolution), fixpoint, and model-theoretic semantics were developed for pure RELFUN. The compiler system has a layered structure, ranging from source-to-source transformers to a declarative classifier, to a code generator for the WAM (Warren Abstract Machine). Applications include a library of declarative (hyper)graph operations, a CAD-to-NC transformer of geometry/plan terms, as well as sharable knowledge bases on materials science and engineering.
Preview
Unable to display preview. Download preview PDF.
Rights and permissions
Copyright information
© 1999 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
(1999). An overview of the relational-functional language RELFUN. In: A Tight, Practical Integration of Relations and Functions. Lecture Notes in Computer Science, vol 1712. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0103292
Download citation
DOI: https://doi.org/10.1007/BFb0103292
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-66644-8
Online ISBN: 978-3-540-48064-8
eBook Packages: Springer Book Archive