Changes between Version 63 and Version 64 of ExplicitCallStack
- Timestamp:
- 02/09/07 04:28:45 (6 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
ExplicitCallStack
v63 v64 267 267 === Notation === 268 268 269 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 270 has an additional argument which represents the current stack value. 271 269 Double square brackets denote the transformation function, which has two arguments. The first argument is denoted inside the brackets and it is the syntactic object that we are transforming. The second argument is a stack value. 272 270 For instance: 273 271 … … 276 274 }}} 277 275 278 means transform expression E with k as the current stack value. 276 means transform expression E with k as the current stack value. When we wish to ignore the current stack value (because it is not meaningful in a certain context, such as the top-level declarations) we write: 277 {{{ 278 [[ E ]]_? 279 }}} 279 280 280 281 === Transformation option 1 === … … 286 287 Declarations (top level): 287 288 288 [[ x :: T ]] ==> x :: Trace -> T , x is function bound, and transformed for tracing289 [[ x :: T ]]_? ==> x :: Trace -> T , x is function bound, and transformed for tracing 289 290 290 [[ x :: T ]] ==> x :: T , x does not match the above rule291 292 [[ x = \y1 .. yn -> E ]] ==> x = \t y1 .. yn -> [[ E ]]_("x":t) , x is transformed for tracing293 294 [[ x = \y1 .. yn -> E ]] ==> x = \y1 .. yn -> [[ E ]]_["x"] , x is not transformed for tracing295 296 [[ x = E ]] ==> x = [[ E ]]_["x"]297 298 [[ data f a1 .. an = K1 .. Km ]] ==> data f a1 .. an = K1 .. Km291 [[ x :: T ]]_? ==> x :: T , x does not match the above rule 292 293 [[ x = \y1 .. yn -> E ]]_? ==> x = \t y1 .. yn -> [[ E ]]_("x":t) , x is transformed for tracing 294 295 [[ x = \y1 .. yn -> E ]]_? ==> x = \y1 .. yn -> [[ E ]]_["x"] , x is not transformed for tracing 296 297 [[ x = E ]]_? ==> x = [[ E ]]_["x"] 298 299 [[ data f a1 .. an = K1 .. Km ]]_? ==> data f a1 .. an = K1 .. Km 299 300 300 301 Declarations (local):
