Volume II: Parallel Languages on PARLE: Parallel Architectures and Languages Europe
Evaluation transformers—a model for the parallel evolution of functional languages
Proc. of a conference on Functional programming languages and computer architecture
A natural semantics for lazy evaluation
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
An operational semantics for parallel lazy evaluation
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Possibilities and limitations of call-by-need space improvement
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
Functional Programming and Parallel Graph Rewriting
Functional Programming and Parallel Graph Rewriting
Existential Types: Logical Relations and Operational Equivalence
ICALP '98 Proceedings of the 25th International Colloquium on Automata, Languages and Programming
Theorem Proving for Functional Programmers
IFL '02 Selected Papers from the 13th International Workshop on Implementation of Functional Languages
Free theorems in the presence of seq
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Algorithm + strategy = parallelism
Journal of Functional Programming
Deriving a lazy abstract machine
Journal of Functional Programming
Verifying haskell programs using constructive type theory
Proceedings of the 2005 ACM SIGPLAN workshop on Haskell
Extending the sparkle core language with object abstraction
Acta Cybernetica
GAST: generic automated software testing
IFL'02 Proceedings of the 14th international conference on Implementation of functional languages
Reasoning about deterministic concurrent functional i/o
IFL'04 Proceedings of the 16th international conference on Implementation and Application of Functional Languages
Analyzing the influence of mixed evaluation on the performance of Eden skeletons
Parallel Computing - Algorithmic skeletons
Strength Induction in a Haskell Program Verifier
Electronic Notes in Theoretical Computer Science (ENTCS)
Selective strictness and parametricity in structural operational semantics, inequationally
Theoretical Computer Science
Proving Properties of Lazy Functional Programs with Sparkle
Central European Functional Programming School
A family of syntactic logical relations for the semantics of Haskell-like languages
Information and Computation
Making "stricterness" more relevant
Proceedings of the 2010 ACM SIGPLAN workshop on Partial evaluation and program manipulation
Making "stricterness" more relevant
Higher-Order and Symbolic Computation
Trends in Trends in Functional Programming 1999/2000 versus 2007/2008
Higher-Order and Symbolic Computation
Hi-index | 0.00 |
In programs written in lazy functional languages such as for example Clean and Haskell, the programmer can choose freely whether particular subexpressions will be evaluated lazily (the default) or strictly (must be specified explicitly). It is widely known that this choice affects resource consumption, termination and semantics in several ways. However, functional programmers tend to be less aware of the consequences for logical program properties and formal reasoning. This paper aims to give a better understanding of the concept of explicit strictness and its impact on properties and reasoning. It will be shown that explicit strictness may make reasoning more cumbersome, due to the introduction of additional definedness conditions. Fortunately, these definedness conditions can be handled quite effectively by proof assistants. This paper describes the specific support that is offered by Sparkle for expressing and proving definedness conditions. This support makes reasoning with explicit strictness almost appear like reasoning without explicit strictness. To our knowledge, Sparkle is currently the only proof assistant with such strictness specific support.