Before making some introductory remarks on the definition, three points will be made about tke language itself (as in De Morgan 75). Firstly the modifications have followed the earlier "ECMA subset" by making the language (almost) statically typed. Although all parameters must now be specified, there is still no way of fixing the dimensions of array parameters nor the required parameter types of procedure or function parameters (cf. ALGOL 68). In connection with this it could be observed that the parameter matching rules of section 4.7.5.5 are somewhat difficult. In particular the definition given below assumes that, for "bE name" passing of arithmetic expressions, the types must match exactly~The third observation is simply one of surprise. The decision to restrict the control variable of a to be a (i.e. not a subscripted variable) may or may not be wise:but the argument that can now be defined by expansion within ALGOL is surely dangerous. The definition given here would have had no difficulty treating the more general case because the concept of location has anyway to be introduced for other purposes.TWO of the major points resolved by the modifications are the meaning of "own" variables and the provision of a basic set of input-output functions: particular attention has been given to these points in the formal definition below. In fact, the treatment of own given here is more detailed than that for PL/I static variables in Walk 69. Rather than perform name changes and generate dummy declarations in the outermost block, an extra environment component is used here to retain a mapping from (additional) unique names to their locations. This "Ownenv" is used in generating the denotations for own variables for insertion in the local "Env". The input-output functions are defined to change the "Channel" components of the state (Z).
308Much of the definition which follows should be easy to read after a study of the example given in Jones ?Sa. The treatment of goto is similar to that given there (for discussion see Jones ZS) except that the use of the "tixe" combinator hap been held here to a minimum. Instead of the use in i-block, an argument can be made for localizing the effects of goto at the level of comp-stmt, cond-stmt and 8tmt. In a version which used "tixe" at all three levels it was found advantageous to merge the "cue" and "i" functions (cf. Jones 78b).As has been discussed elsewhere in this volume, the definition of arbitrary order of evaluation has not been addressed: had it been, one would, for example, have to show that the elements of an expression can be evaluated in any order.With the aid of the l±st of abbreviations given at the end of this introduction, the abstract syntax and context conditions should be straight forward. Notice that, although the abstract syntax itself is a "context-free" production system, context dependant typing (e.g. Arrayname) is used and secured by the context conditions. (Notice by-value variables are, in fact, non-by-n...
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.