Transformation of Applicative Specifications into Imperative ...
Transformation of Applicative Specifications into Imperative ... Transformation of Applicative Specifications into Imperative ...
APPENDIX C. FORMAL SPECIFICATIONS OF TRANSFORMATIONS case te of TypeName(tn) → if tn ∈ dom trans then /∗Type of interest.∗/ 〈AccessValueOrVariableName( mk_ValueOrVariableName(tn))〉 else /∗Not type of interest.∗/ 〈〉 end, → 〈〉 end, Unknown → 〈〉 end, /∗Returns an access list of the values of types of interest written to during evaluation of a set expression.∗/ /∗ Arguments: ======= idset: the functions already evaluated se: the set expression Result: ======= AccessResult: the corresponding access result ∗/ getAccessGenSetExpr : Id-set × SetExpr × ExpType × FUNC × TRANS → AccessResult getAccessGenSetExpr(idset, se, et, func, trans) ≡ case se of RangedSetExpr(fve, sve) → getAccessGenListList( idset, 〈fve, sve〉, 〈et, et〉, func, trans), EnumeratedSetExpr(ovel) → getAccessGenOptVEL(idset, ovel, et, func, trans), ComprehendedSetExpr(ve, typlist, or) → let ar = getAccessGen(idset, ve, et, func, trans), ar ′ = getAccessGenList( idSet(ar), getVEOptRestriction(or), 266
C.1. FORMAL SPECIFICATION OF THE TRANSFORMER end, in expTypeToExpTypeList( removeBrackets( Known(TypeLiteral(BOOL))), 1), func, trans) mk_AccessResult( removeDuplets( accessList(ar) accessList(ar ′ )), idSet(ar ′ )) end /∗Returns an access list of the values of types of interest written to during evaluation of a list expression.∗/ /∗ Arguments: ======= idset: the functions already evaluated le: the list expression Result: ======= AccessResult: the corresponding access result ∗/ getAccessGenListExpr : Id-set × ListExpr × ExpType × FUNC × TRANS → AccessResult getAccessGenListExpr(idset, le, et, func, trans) ≡ case le of RangedListExpr(fve, sve) → getAccessGenListList( idset, 〈fve, sve〉, 〈et, et〉, func, trans), EnumeratedListExpr(ovel) → getAccessGenOptVEL(idset, ovel, et, func, trans), ComprehendedListExpr(ve1, b, ve2, or) → getAccessGenListList( idset, 〈ve1〉 〈ve2〉 getVEOptRestriction(or), 〈et, et, Known(TypeLiteral(BOOL))〉, func, trans) end, /∗Returns an access list of the values of types of interest written to during evaluation of a 267
- Page 232 and 233: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 234 and 235: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 236 and 237: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 238 and 239: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 240 and 241: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 242 and 243: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 244 and 245: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 246 and 247: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 248 and 249: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 250 and 251: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 252 and 253: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 254 and 255: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 256 and 257: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 258 and 259: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 260 and 261: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 262 and 263: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 264 and 265: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 266 and 267: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 268 and 269: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 270 and 271: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 272 and 273: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 274 and 275: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 276 and 277: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 278 and 279: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 280 and 281: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 284 and 285: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 286 and 287: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 288 and 289: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 290 and 291: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 292 and 293: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 294 and 295: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 296 and 297: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 298 and 299: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 300 and 301: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 302 and 303: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 304 and 305: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 306 and 307: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 308 and 309: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 310 and 311: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 312 and 313: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 314 and 315: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 316 and 317: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 318 and 319: APPENDIX D. SPECIFICATION OF TRANSF
- Page 320 and 321: APPENDIX D. SPECIFICATION OF TRANSF
- Page 322 and 323: APPENDIX D. SPECIFICATION OF TRANSF
- Page 324 and 325: APPENDIX D. SPECIFICATION OF TRANSF
- Page 326 and 327: APPENDIX D. SPECIFICATION OF TRANSF
- Page 328 and 329: APPENDIX D. SPECIFICATION OF TRANSF
- Page 330 and 331: APPENDIX D. SPECIFICATION OF TRANSF
APPENDIX C. FORMAL SPECIFICATIONS OF TRANSFORMATIONS<br />
case te <strong>of</strong><br />
TypeName(tn) →<br />
if tn ∈ dom trans<br />
then<br />
/∗Type <strong>of</strong> interest.∗/<br />
〈AccessValueOrVariableName(<br />
mk_ValueOrVariableName(tn))〉<br />
else<br />
/∗Not type <strong>of</strong> interest.∗/<br />
〈〉<br />
end,<br />
→ 〈〉<br />
end,<br />
Unknown → 〈〉<br />
end,<br />
/∗Returns an access list <strong>of</strong> the values <strong>of</strong> types<br />
<strong>of</strong> interest written to during evaluation <strong>of</strong> a<br />
set expression.∗/<br />
/∗<br />
Arguments:<br />
=======<br />
idset: the functions already evaluated<br />
se: the set expression<br />
Result:<br />
=======<br />
AccessResult: the corresponding access result<br />
∗/<br />
getAccessGenSetExpr :<br />
Id-set × SetExpr × ExpType × FUNC × TRANS →<br />
AccessResult<br />
getAccessGenSetExpr(idset, se, et, func, trans) ≡<br />
case se <strong>of</strong><br />
RangedSetExpr(fve, sve) →<br />
getAccessGenListList(<br />
idset, 〈fve, sve〉, 〈et, et〉, func, trans),<br />
EnumeratedSetExpr(ovel) →<br />
getAccessGenOptVEL(idset, ovel, et, func, trans),<br />
ComprehendedSetExpr(ve, typlist, or) →<br />
let<br />
ar = getAccessGen(idset, ve, et, func, trans),<br />
ar ′ =<br />
getAccessGenList(<br />
idSet(ar), getVEOptRestriction(or),<br />
266