The article introduces a novel notion of lazy rewriting. By annotating argument positions as lazy, redundant rewrite steps are avoided, and the termination behavior of a term-rewriting system can be improved. Some transformations of rewrite rules enable an implementation using the same primitives as an implementation of eager rewriting.
A new compilation technique for left-linear term-rewriting systems is presented, where rewrite rules are transformed into so-called minimal rewrite rules. These minimal rules have such a simple form that they can be viewed as instructions for an abstract rewriting machine (ARM).
Over 25 implementations of diierent functional languages are benchmarked using the same program, a oating-point intensive application taken from molecular biology. The principal aspects studied are compile time and execution time for the various implementations that were benchmarked. An important consideration is how the program can be modiied and tuned to… (More)
We define a notion of program which is not a computer program but an operator program: a detailed description of actions performed and decisions taken by a human operator (computer user) performing a task to achieve a goal in a simple setting consisting of that user, one or more computers and a work environment. Our definition and notations are based on the… (More)