The evaluation strategies of programming languages can be broadly categorised as strict or lazy. A common approach to strict evaluation is to implement a call-by-value semantics that always evaluates expressions when they are bound to variables, while lazy evaluation is often implemented as call-by-need semantics that evaluates expressions when they are needed for some computation. Lazy semantics makes use of a data structure called thunk that contains an expression, whose evaluation has become suspended, together with its environment. This thesis presents (1) a Haskell de nition of the existing semantics of CakeML, a strict programming language, (2) a Haskell de nition of a lazy semantics for the pure part of CakeML, and (3) a Haskell impl...
Assertions test expected properties of run-time values without disrupting the normal computation of ...
Six implementations of different lazy functional languages are compared using a common benchmark of ...
LazyJ is a backward-compatible extension of the Java programming language that allows programmers to...
We present PureCake, a mechanically-verified compiler for PureLang, a lazy, purely functional progra...
In order to solve a long-standing problem with list fusion, a new compiler transformation, “Call Ari...
AbstractLaziness restricts the exploitation of parallelism because expressions are evaluated only on...
In this paper we argue for the importance of lazy state, that is, sequences of imperative (destructi...
Students have trouble understanding the difference between lazy and strict programming. It is diffic...
Assertions test expected properties of run-time values without disrupting the normal working of a pr...
We address the problem of producing a trace of the evaluation of a program written in a lazy functio...
Lazy evaluation is an evaluation strategy in programming languages. Lazy evaluation delays the evalu...
The extraction of strictness information marks an indispensable element of an efficient compilation ...
Abstract. Typed programming languages offer safety guarantees that help programmers write correct co...
It is quite natural to define a software language as an extension of a base language. A compiler bui...
Compiler generation is often emphasized as being the most important application of partial evaluatio...
Assertions test expected properties of run-time values without disrupting the normal computation of ...
Six implementations of different lazy functional languages are compared using a common benchmark of ...
LazyJ is a backward-compatible extension of the Java programming language that allows programmers to...
We present PureCake, a mechanically-verified compiler for PureLang, a lazy, purely functional progra...
In order to solve a long-standing problem with list fusion, a new compiler transformation, “Call Ari...
AbstractLaziness restricts the exploitation of parallelism because expressions are evaluated only on...
In this paper we argue for the importance of lazy state, that is, sequences of imperative (destructi...
Students have trouble understanding the difference between lazy and strict programming. It is diffic...
Assertions test expected properties of run-time values without disrupting the normal working of a pr...
We address the problem of producing a trace of the evaluation of a program written in a lazy functio...
Lazy evaluation is an evaluation strategy in programming languages. Lazy evaluation delays the evalu...
The extraction of strictness information marks an indispensable element of an efficient compilation ...
Abstract. Typed programming languages offer safety guarantees that help programmers write correct co...
It is quite natural to define a software language as an extension of a base language. A compiler bui...
Compiler generation is often emphasized as being the most important application of partial evaluatio...
Assertions test expected properties of run-time values without disrupting the normal computation of ...
Six implementations of different lazy functional languages are compared using a common benchmark of ...
LazyJ is a backward-compatible extension of the Java programming language that allows programmers to...