Foundations of logic programming
Foundations of logic programming
Denotational and operational semantics for Prolog
Journal of Logic Programming
How to make ad-hoc polymorphism less ad hoc
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The semantic foundations of concurrent constraint programming
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Kernel-LEAF: a logic plus functional language
Journal of Computer and System Sciences
Logic programming with functions and predicates: the language Babel
Journal of Logic Programming
Structural operational semantics for AKL
Future Generation Computer Systems - Special issue: PARLE 91
A natural semantics for lazy evaluation
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Encapsulated search for higher-order concurrent constraint programming
ILPS '94 Proceedings of the 1994 International Symposium on Logic programming
A mathematical definition of full Prolog
Science of Computer Programming
Concurrent programming in ERLANG (2nd ed.)
Concurrent programming in ERLANG (2nd ed.)
Formally based profiling for higher-order functional languages
ACM Transactions on Programming Languages and Systems (TOPLAS)
A unified computation model for functional and logic programming
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
GOFFIN: higher-order functions meet concurrent constraints
Science of Computer Programming - Special issue on concurrent constraint programming
Admissible graph rewriting and narrowing
JICSLP'98 Proceedings of the 1998 joint international conference and symposium on Logic programming
Automated Theorem-Proving for Theories with Simplifiers Commutativity, and Associativity
Journal of the ACM (JACM)
Sequential abstract-state machines capture sequential algorithms
ACM Transactions on Computational Logic (TOCL)
Journal of the ACM (JACM)
Principal type-schemes for functional programs
POPL '82 Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The narrowing-driven approach to functional logic program specialization
New Generation Computing - Partial evaluation and program transformation
MFCS '90 Proceedings of the Mathematical Foundations of Computer Science 1990
Parametric Order-Sorted Types in Logic Programming
TAPSOFT '91 Proceedings of the International Joint Conference on Theory and Practice of Software Development, Volume 2: Advances in Distributed Computing (ADC) and Colloquium on Combining Paradigms for Software Developmemnt (CCPSD)
Compiling Multi-Paradigm Declarative Programs into Prolog
FroCoS '00 Proceedings of the Third International Workshop on Frontiers of Combining Systems
Symbolic Profiling for Multi-paradigm Declarative Languages
LOPSTR '01 Selected papers from the 11th International Workshop on Logic Based Program Synthesis and Transformation
A Foundation for Higher-order Concurrent Constraint Programming
CCL '94 Proceedings of the First International Conference on Constraints in Computational Logics
Logic Programming with Polymorphically Order-Sorted Types
Proceedings of the International Workshop on Algebraic and Logic Programming
A Logical Operational Semantics of Full Prolog. Part I: Selection Core and Control
CSL '89 Proceedings of the 3rd Workshop on Computer Science Logic
Constructor-based conditional narrowing
Proceedings of the 3rd ACM SIGPLAN international conference on Principles and practice of declarative programming
Higher-order narrowing with definitional trees
Journal of Functional Programming
Deriving a lazy abstract machine
Journal of Functional Programming
Cost-Augmented Partial Evaluation of Functional Logic Programs
Higher-Order and Symbolic Computation
A semantics for tracing declarative multi-paradigm programs
PPDP '04 Proceedings of the 6th ACM SIGPLAN international conference on Principles and practice of declarative programming
Symbolic Profiling for Multi-paradigm Declarative Languages
LOPSTR '01 Selected papers from the 11th International Workshop on Logic Based Program Synthesis and Transformation
A semantics for tracing declarative multi-paradigm programs
PPDP '04 Proceedings of the 6th ACM SIGPLAN international conference on Principles and practice of declarative programming
Lightweight program specialization via dynamic slicing
Proceedings of the 2005 ACM SIGPLAN workshop on Curry and functional logic programming
A generic analysis environment for declarative programs
Proceedings of the 2005 ACM SIGPLAN workshop on Curry and functional logic programming
Translating curry to haskell system demo
Proceedings of the 2005 ACM SIGPLAN workshop on Curry and functional logic programming
Forward slicing of functional logic programs by partial evaluation
Theory and Practice of Logic Programming
Reporting Failures in Functional Logic Programs
Electronic Notes in Theoretical Computer Science (ENTCS)
A Framework for Interpreting Traces of Functional Logic Computations
Electronic Notes in Theoretical Computer Science (ENTCS)
Proceedings of the 9th ACM SIGPLAN international conference on Principles and practice of declarative programming
Putting declarative programming into the web: translating curry to javascript
Proceedings of the 9th ACM SIGPLAN international conference on Principles and practice of declarative programming
A simple rewrite notion for call-time choice semantics
Proceedings of the 9th ACM SIGPLAN international conference on Principles and practice of declarative programming
Equivalence of Two Formal Semantics for Functional Logic Programs
Electronic Notes in Theoretical Computer Science (ENTCS)
Extra Variables Can Be Eliminated from Functional Logic Programs
Electronic Notes in Theoretical Computer Science (ENTCS)
Dynamic slicing of lazy functional programs based on redex trails
Higher-Order and Symbolic Computation
A flexible framework for programming with non-deterministicfunctions
Proceedings of the 2009 ACM SIGPLAN workshop on Partial evaluation and program manipulation
Preserving Sharing in the Partial Evaluation of Lazy Functional Programs
Logic-Based Program Synthesis and Transformation
Applications of Declarative Programming and Knowledge Management
Narrowing for First Order Functional Logic Programs with Call-Time Choice Semantics
Applications of Declarative Programming and Knowledge Management
Purely functional lazy non-deterministic programming
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
Programming with singular and plural non-deterministic functions
Proceedings of the 2010 ACM SIGPLAN workshop on Partial evaluation and program manipulation
A program transformation for tracing functional logic computations
LOPSTR'06 Proceedings of the 16th international conference on Logic-based program synthesis and transformation
On a tighter integration of functional and logic programming
APLAS'07 Proceedings of the 5th Asian conference on Programming languages and systems
Rewriting and call-time choice: the HO case
FLOPS'08 Proceedings of the 9th international conference on Functional and logic programming
A relation algebraic semantics for a lazy functional logic language
RelMiCS'08/AKA'08 Proceedings of the 10th international conference on Relational and kleene algebra methods in computer science, and 5th international conference on Applications of kleene algebra
A program transformation for returning states in functional-logic programs
Proceedings of the 20th ACM SIGPLAN workshop on Partial evaluation and program manipulation
An adequate, denotational, functional-style semantics for typed FlatCurry
WFLP'10 Proceedings of the 19th international conference on Functional and constraint logic programming
KiCS2: a new compiler from Curry to Haskell
WFLP'11 Proceedings of the 20th international conference on Functional and constraint logic programming
Nondeterminism analysis of functional logic programs
ICLP'05 Proceedings of the 21st international conference on Logic Programming
Term rewriting for access control
DBSEC'06 Proceedings of the 20th IFIP WG 11.3 working conference on Data and Applications Security
Declarative programming with function patterns
LOPSTR'05 Proceedings of the 15th international conference on Logic Based Program Synthesis and Transformation
Overlapping rules and logic variables in functional logic programs
ICLP'06 Proceedings of the 22nd international conference on Logic Programming
Purely functional lazy nondeterministic programming
Journal of Functional Programming - Dedicated to ICFP 2009
Run-time profiling of functional logic programs
LOPSTR'04 Proceedings of the 14th international conference on Logic Based Program Synthesis and Transformation
A virtual machine for functional logic computations
IFL'04 Proceedings of the 16th international conference on Implementation and Application of Functional Languages
Automatic synthesis of specifications for first order curry programs
Proceedings of the 14th symposium on Principles and practice of declarative programming
A modular and generic analysis server system for functional logic programs
Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation
Hi-index | 0.00 |
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 modern 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 modern 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.