Volume II: Parallel Languages on PARLE: Parallel Architectures and Languages Europe
Report on the programming language Haskell: a non-strict, purely functional language version 1.2
ACM SIGPLAN Notices - Haskell special issue
A natural semantics for lazy evaluation
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Term graph rewriting: theory and practice
Term graph rewriting: theory and practice
A call-by-need lambda calculus
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Graph rewriting aspects of functional programming
Handbook of graph grammars and computing by graph transformation
Towards an Operational Semantics for a Parallel Non-Strict Functional Language
IFL '98 Selected Papers from the 10th International Workshop on 10th International Workshop
Proving Correctness of Programs with IO - A Paradigm Comparison
IFL '02 Selected Papers from the 13th International Workshop on Implementation of Functional Languages
Theorem Proving for Functional Programmers
IFL '02 Selected Papers from the 13th International Workshop on Implementation of Functional Languages
Extending the sparkle core language with object abstraction
Acta Cybernetica
A rewriting calculus for cyclic higher-order term graphs
Mathematical Structures in Computer Science
A duality between proof systems for cyclic term graphs
Mathematical Structures in Computer Science
Proving Properties of Lazy Functional Programs with Sparkle
Central European Functional Programming School
Reasoning about deterministic concurrent functional i/o
IFL'04 Proceedings of the 16th international conference on Implementation and Application of Functional Languages
Hi-index | 0.00 |
In this paper, we will define a custom term-graph reduction system for a simplified lazy functional language. Our custom system is geared towards flexibility , which is accomplished by leaving the choice of redex free and by making use of single-step reduction. It is therefore more suited for formal reasoning than the well-established standard reduction systems, which usually fix a single redex and realize multi-step reduction only. We will show that our custom system is correct with respect to the standard systems, by proving that it is confluent and allows standard lazy functional evaluation as a possible reduction path. Our reduction system is used in the foundation of Sparkle . Sparkle is the dedicated proof assistant for Clean , a lazy functional programming language based on term-graph rewriting. An important reasoning step in Sparkle is the replacement of an expression with one of its reducts. The flexibility of our underlying reduction mechanism ensures that as many reduction options as possible are available for this reasoning step, which improves the ease of reasoning. Because our reduction system is based on a simplified lazy functional language, our results can be applied to any other functional language based on term-graph rewriting as well.