KIEL

KIEL - A Computer System for Visualizing the Execution of Functional Programs. A very prominent way to define the operational semantics of functional programs (which is especially qualified for beginners) is the use of computation sequences. The elements of a computation sequence are expressions which are one after another produced by substitutions and simplifications. Substitution corresponds to routine calls or, more precisely, to applications of a computational rule. Such a rule determines which calls have to be replaced by the body, where additionally in each case within the latter the formal paramters are substituted by the arguments. For instance, in the classical case of routines without patterns, the full-substitution rule says that all calls ahve to be replaced simultaneously, the leftmost-outermost rule says that from all calls which do not occur as arguments of other calls only the leftmost one has to be replaced, and the leftmost-innermost rule says that from all calls whcih are free from other calls only the leftmost one has to be replaced; see e.g., [4]. If patterns are allowed in routine declarations, then the computation rules are a little bit more complicated. Simplification executes operations of the pre-defined datatypes and evaluates conditionals.