Changes between Version 22 and Version 23 of ExplicitCallStack
- Timestamp:
- 01/29/07 08:45:52 (6 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
ExplicitCallStack
v22 v23 108 108 which is just a list of function names. 109 109 110 === Transformation option 1 ===111 110 112 This is probably the simplest transformation style possible. Stack traces are passed to functions at their lexical call sites, which correspond to the places where the function is mentioned in the source code. CAF bindings are treated as roots of stacks, so only function bindings receive stack arguments. In this transformation we can get away with simply passing one stack argument for each function, regardless of how many regular arguments it has. In contrast, other transformation styles 113 might pass one stack argument for every regular argument of the function. 111 === Notation === 114 112 115 The notation: 113 Double square brackets denote the transformation function, which has either one or two arguments, depending on what type of entity it is applied to. In most cases it has one argument, which is just a syntactic construct, but for expressions it 114 has an additional argument which represents the current stack value. 115 116 For instance: 116 117 117 118 {{{ … … 119 120 }}} 120 121 121 for some k, means transform the expression E, with stack value k. 122 means transform expression E with k as the current stack value. 123 124 === Transformation option 1 === 125 126 This is probably the simplest transformation style possible. Stack traces are passed to functions at their lexical call sites, which correspond to the places where the function is mentioned in the source code. CAF bindings are treated as roots of stacks, so only function bindings receive stack arguments. In this transformation we can get away with simply passing one stack argument for each function, regardless of how many regular arguments it has. In contrast, other transformation styles 127 might pass one stack argument for every regular argument of the function. 122 128 123 129 {{{
