The paper deals with the fundamental computational rule of functional programming languages, namely the rule of beta conversion. This rule specifies the way in which a function f is applied to its argument a. There are two possible ways of executing the conversion, to wit ‘by name’ and ‘by value’. It has been proved that these two ways are not operationally equivalent, and, which is worse, the execution by name is not a denotationally equivalent transformation in the logic of partial functions. Since Transparent Intensional Logic (TIL) is a partial, typed lambda calculus, we examine the validity of the rule in TIL, or rather in its computational variant the TIL-Script language. We show that there are contexts in which the rule by name can be validly applied. The main result is the specification of such contexts, and comparison with the reduction by value. To this end, we present a tool that recognizes a context in which a formal parameter of a given calling procedure occurs and interactively navigates the user to a correct way of reduction. In case of an invalid way the program informs the user about the problem and warns against undesirable side effects. As a result, the program proposes to execute the rule by value.
IOS Press, Inc.
6751 Tepper Drive
Clifton, VA 20124
Tel.: +1 703 830 6300
Fax: +1 703 830 2300 firstname.lastname@example.org
(Corporate matters and books only) IOS Press c/o Accucoms US, Inc.
For North America Sales and Customer Service
West Point Commons
Lansdale PA 19446
Tel.: +1 866 855 8967
Fax: +1 215 660 5042 email@example.com