Many modern programming languages offer a facility for "inlining" designated procedure and function calls, but this process is not well defined in most language standards documents. We offer a model for inlining which has the property that the resulting code does not depend upon the presentation of the order of function definitions, and which also provides a finite and consistent interpretation for the inlining of mutually recursive functions. Finally, when used on "tail-recursive" functions, our model of inlining provides for the equivalent of "loop unrolling". Introduction Many programming languages---e.g., Fortran, Ada, C++, Common Lisp---offer a facility for "macro-expanding" procedure and funct...
What is functional programming? – Functions are first class (objects). – That is, everything you can...
Function inlining is a compiler optimization where the function call is replaced by the code from th...
. Inline function expansion is an optimization that may improve program performance by removing call...
A flow-directed inlining strategy uses information derived from control-flow analysis to specialize ...
Function inlining is a widely known technique which has been used to improve program performance. In...
Recursion is considered a challenging programming technique by many students. There are two common a...
In this paper we explain how recursion operators can be used to structure and reason about program s...
This paper describes an integrated procedure mechanism that permits procedures to be used as recursi...
Inlining is an important optimization that can lead to significant runtime improvements. When decidi...
We investigate the origin of recursive procedures in imperative programming languages. We attempt to...
Inlining is an important optimization technique in any modern compiler, though the description of th...
1. A procedure is recursive if part of it involves running the entire procedure anew. The output of ...
Semantics of recursive programs has been extensively studied for more than 30 years, and now there e...
Abstract. The semantics of some dynamic programming languages, in-cluding Python, JavaScript, and R5...
Refactorings are program transformations that preserve the observable behavior of the program. The r...
What is functional programming? – Functions are first class (objects). – That is, everything you can...
Function inlining is a compiler optimization where the function call is replaced by the code from th...
. Inline function expansion is an optimization that may improve program performance by removing call...
A flow-directed inlining strategy uses information derived from control-flow analysis to specialize ...
Function inlining is a widely known technique which has been used to improve program performance. In...
Recursion is considered a challenging programming technique by many students. There are two common a...
In this paper we explain how recursion operators can be used to structure and reason about program s...
This paper describes an integrated procedure mechanism that permits procedures to be used as recursi...
Inlining is an important optimization that can lead to significant runtime improvements. When decidi...
We investigate the origin of recursive procedures in imperative programming languages. We attempt to...
Inlining is an important optimization technique in any modern compiler, though the description of th...
1. A procedure is recursive if part of it involves running the entire procedure anew. The output of ...
Semantics of recursive programs has been extensively studied for more than 30 years, and now there e...
Abstract. The semantics of some dynamic programming languages, in-cluding Python, JavaScript, and R5...
Refactorings are program transformations that preserve the observable behavior of the program. The r...
What is functional programming? – Functions are first class (objects). – That is, everything you can...
Function inlining is a compiler optimization where the function call is replaced by the code from th...
. Inline function expansion is an optimization that may improve program performance by removing call...