The SL5 Procedure Mechanism This paper describes an integrated procedure mechanism that permits procedures to be used as recursive functions or as coroutines. This integration is accomplished by treating procedures and their activation records (called environments) as data objects and by decomposing procedure invocation into three separate components at the source-language level. In addition, argument binding is under the control of the programmer, permitting the definition of various methods of argument transmission in the source language itself. The resulting procedure mechanism,which is part of the SL5 programming language, is well suited to goal-oriented problems and to other problems that are more readily programmed by using coroutines. Several examples are given. CACM May, 1978 Hanson, D. Griswold, R. Procedures, coroutines, programming languages, interpreters, SNOBOL 4, backtracking 4.2 4.20 4.22 4.13 CA780506 DH February 26, 1979 1:36 PM 2411 4 3101 2625 4 3101 2705 4 3101 2709 4 3101 2889 4 3101 2922 4 3101 2937 4 3101 2989 4 3101 3005 4 3101 3025 4 3101 3081 4 3101 3101 4 3101 3101 4 3101 3101 4 3101 3101 4 3101 3112 4 3101 2138 5 3101 2193 5 3101 2438 5 3101 3101 5 3101 3101 5 3101 3101 5 3101 3185 5 3101