Transformation of Applicative Specifications into Imperative ...
Transformation of Applicative Specifications into Imperative ... Transformation of Applicative Specifications into Imperative ...
APPENDIX D. SPECIFICATION OF TRANSFORMER IN RSL1 getSequencingAccess : ValueExpr × TypeExpr × ExpType × TRANS × FUNC → Access ∗ getSequencingAccess(ve, te, et, trans, func) ≡ if and( and( isTGen(ve, trans, func), not(returnsNonTOI(ve, et, trans, func))), not(equalsType(te, et))) then getTOIReturnsListTN(te, trans) else 〈〉 end, getAccessObsSetExpr : Id ∗ × SetExpr × ExpType × FUNC × TRANS → AccessResult getAccessObsSetExpr(idset, se, et, func, trans) ≡ case se of RangedSetExpr(fve, sve) → getAccessObsListList( idset, 〈fve, sve〉, 〈et, et〉, func, trans), EnumeratedSetExpr(ovel) → getAccessObsOptVEL(idset, ovel, et, func, trans), ComprehendedSetExpr(ve, typlist, or) → mk_AccessResult( removeDuplets( accessList( getAccessObs(idset, ve, et, func, trans) ) accessList( getAccessObsList( getAccessIdSet( getAccessObs( idset, ve, et, func, trans)), getVEOptRestriction(or), Known(TypeLiteral(BOOL)), func, trans ))), getAccessIdSet( getAccessObsList( getAccessIdSet( getAccessObs( idset, ve, et, func, trans)), getVEOptRestriction(or), 428
D.2. FORMAL SPECIFICATION OF THE TRANSFORMER IN RSL1 end, Known(TypeLiteral(BOOL)), func, trans))) getAccessObsListExpr : Id ∗ × ListExpr × ExpType × FUNC × TRANS → AccessResult getAccessObsListExpr(idset, le, et, func, trans) ≡ case le of RangedListExpr(fve, sve) → getAccessObsListList( idset, 〈fve, sve〉, 〈et, et〉, func, trans), EnumeratedListExpr(ovel) → getAccessObsOptVEL(idset, ovel, et, func, trans), ComprehendedListExpr(ve1, b, ve2, or) → getAccessObsListList( idset, 〈ve1〉 〈ve2〉 getVEOptRestriction(or), 〈et, et, Known(TypeLiteral(BOOL))〉, func, trans) end, getAccessObsMapExpr : Id ∗ × MapExpr × MapType × FUNC × TRANS → AccessResult getAccessObsMapExpr(idset, me, et, func, trans) ≡ case me of EnumeratedMapExpr(ovel) → getAccessObsOptVEPL(idset, ovel, et, func, trans), ComprehendedMapExpr(ve, typlist, or) → getAccessObsListList( idset, getValueExprList(ve) getVEOptRestriction(or), 〈tedom(et), terange(et), Known(TypeLiteral(BOOL))〉, func, trans) end, getAccessObsOptVEL : Id ∗ × OptionalValueExprList × ExpType × FUNC × TRANS → AccessResult getAccessObsOptVEL(idset, ovel, et, func, trans) ≡ case ovel of ValueExprList(vel) → 429
- Page 394 and 395: APPENDIX D. SPECIFICATION OF TRANSF
- Page 396 and 397: APPENDIX D. SPECIFICATION OF TRANSF
- Page 398 and 399: APPENDIX D. SPECIFICATION OF TRANSF
- Page 400 and 401: APPENDIX D. SPECIFICATION OF TRANSF
- Page 402 and 403: APPENDIX D. SPECIFICATION OF TRANSF
- Page 404 and 405: APPENDIX D. SPECIFICATION OF TRANSF
- Page 406 and 407: APPENDIX D. SPECIFICATION OF TRANSF
- Page 408 and 409: APPENDIX D. SPECIFICATION OF TRANSF
- Page 410 and 411: APPENDIX D. SPECIFICATION OF TRANSF
- Page 412 and 413: APPENDIX D. SPECIFICATION OF TRANSF
- Page 414 and 415: APPENDIX D. SPECIFICATION OF TRANSF
- Page 416 and 417: APPENDIX D. SPECIFICATION OF TRANSF
- Page 418 and 419: APPENDIX D. SPECIFICATION OF TRANSF
- Page 420 and 421: APPENDIX D. SPECIFICATION OF TRANSF
- Page 422 and 423: APPENDIX D. SPECIFICATION OF TRANSF
- Page 424 and 425: APPENDIX D. SPECIFICATION OF TRANSF
- Page 426 and 427: APPENDIX D. SPECIFICATION OF TRANSF
- Page 428 and 429: APPENDIX D. SPECIFICATION OF TRANSF
- Page 430 and 431: APPENDIX D. SPECIFICATION OF TRANSF
- Page 432 and 433: APPENDIX D. SPECIFICATION OF TRANSF
- Page 434 and 435: APPENDIX D. SPECIFICATION OF TRANSF
- Page 436 and 437: APPENDIX D. SPECIFICATION OF TRANSF
- Page 438 and 439: APPENDIX D. SPECIFICATION OF TRANSF
- Page 440 and 441: APPENDIX D. SPECIFICATION OF TRANSF
- Page 442 and 443: APPENDIX D. SPECIFICATION OF TRANSF
- Page 446 and 447: APPENDIX D. SPECIFICATION OF TRANSF
- Page 448 and 449: APPENDIX D. SPECIFICATION OF TRANSF
- Page 450 and 451: APPENDIX D. SPECIFICATION OF TRANSF
- Page 452 and 453: APPENDIX D. SPECIFICATION OF TRANSF
- Page 454 and 455: APPENDIX D. SPECIFICATION OF TRANSF
- Page 456 and 457: APPENDIX D. SPECIFICATION OF TRANSF
- Page 458 and 459: APPENDIX D. SPECIFICATION OF TRANSF
- Page 460 and 461: APPENDIX D. SPECIFICATION OF TRANSF
- Page 462 and 463: APPENDIX D. SPECIFICATION OF TRANSF
- Page 464 and 465: APPENDIX D. SPECIFICATION OF TRANSF
- Page 466 and 467: APPENDIX D. SPECIFICATION OF TRANSF
- Page 468 and 469: APPENDIX D. SPECIFICATION OF TRANSF
- Page 470 and 471: APPENDIX D. SPECIFICATION OF TRANSF
- Page 472 and 473: APPENDIX D. SPECIFICATION OF TRANSF
- Page 474 and 475: APPENDIX D. SPECIFICATION OF TRANSF
- Page 476 and 477: APPENDIX D. SPECIFICATION OF TRANSF
- Page 478 and 479: APPENDIX D. SPECIFICATION OF TRANSF
- Page 480 and 481: APPENDIX D. SPECIFICATION OF TRANSF
- Page 482 and 483: APPENDIX D. SPECIFICATION OF TRANSF
- Page 484 and 485: APPENDIX D. SPECIFICATION OF TRANSF
- Page 486 and 487: APPENDIX D. SPECIFICATION OF TRANSF
- Page 488 and 489: APPENDIX D. SPECIFICATION OF TRANSF
- Page 490 and 491: APPENDIX D. SPECIFICATION OF TRANSF
- Page 492 and 493: APPENDIX E. ANTLR GRAMMAR END = "en
D.2. FORMAL SPECIFICATION OF THE TRANSFORMER IN RSL1<br />
end,<br />
Known(TypeLiteral(BOOL)), func, trans)))<br />
getAccessObsListExpr :<br />
Id ∗ × ListExpr × ExpType × FUNC × TRANS →<br />
AccessResult<br />
getAccessObsListExpr(idset, le, et, func, trans) ≡<br />
case le <strong>of</strong><br />
RangedListExpr(fve, sve) →<br />
getAccessObsListList(<br />
idset, 〈fve, sve〉, 〈et, et〉, func, trans),<br />
EnumeratedListExpr(ovel) →<br />
getAccessObsOptVEL(idset, ovel, et, func, trans),<br />
ComprehendedListExpr(ve1, b, ve2, or) →<br />
getAccessObsListList(<br />
idset,<br />
〈ve1〉 〈ve2〉 getVEOptRestriction(or),<br />
〈et, et, Known(TypeLiteral(BOOL))〉, func,<br />
trans)<br />
end,<br />
getAccessObsMapExpr :<br />
Id ∗ × MapExpr × MapType × FUNC × TRANS →<br />
AccessResult<br />
getAccessObsMapExpr(idset, me, et, func, trans) ≡<br />
case me <strong>of</strong><br />
EnumeratedMapExpr(ovel) →<br />
getAccessObsOptVEPL(idset, ovel, et, func, trans),<br />
ComprehendedMapExpr(ve, typlist, or) →<br />
getAccessObsListList(<br />
idset,<br />
getValueExprList(ve) <br />
getVEOptRestriction(or),<br />
〈tedom(et), terange(et),<br />
Known(TypeLiteral(BOOL))〉, func, trans)<br />
end,<br />
getAccessObsOptVEL :<br />
Id ∗ × OptionalValueExprList × ExpType ×<br />
FUNC × TRANS →<br />
AccessResult<br />
getAccessObsOptVEL(idset, ovel, et, func, trans) ≡<br />
case ovel <strong>of</strong><br />
ValueExprList(vel) →<br />
429