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 getAccessObsListList : Id ∗ × ValueExpr ∗ × ExpType ∗ × FUNC × TRANS → AccessResult getAccessObsListList(idset, vel, etl, func, trans) ≡ if vel = 〈〉 then mk_AccessResult(〈〉, idset) else mk_AccessResult( removeDuplets( accessList( getAccessObs( idset, hd vel, hd etl, func, trans)) accessList( getAccessObsListList( accessIdSet( getAccessObs( idset, hd vel, hd etl, func, trans)), tl vel, tl etl, func, trans))), accessIdSet( getAccessObsListList( accessIdSet( getAccessObs( idset, hd vel, hd etl, func, trans)), tl vel, tl etl, func, trans))) end, getAccessObsLetDefList : Id ∗ × LetDef ∗ × FUNC × TRANS → AccessResult getAccessObsLetDefList(idset, ldl, func, trans) ≡ if ldl = 〈〉 then mk_AccessResult(〈〉, idset) else mk_AccessResult( removeDuplets( accessList( getAccessObs( idset, value_expr(hd ldl), Unknown, func, trans)) accessList( getAccessObsLetDefList( accessIdSet( getAccessObs( 432
D.2. FORMAL SPECIFICATION OF THE TRANSFORMER IN RSL1 ) end, idset, value_expr(hd ldl), Unknown, func, trans)), tl ldl, func, trans))), accessIdSet( getAccessObsLetDefList( accessIdSet( getAccessObs( idset, value_expr(hd ldl), Unknown, func, trans)), tl ldl, func, trans)) getAccessObsCaseBranch : Id ∗ × CaseBranch ∗ × ExpType × FUNC × TRANS → AccessResult getAccessObsCaseBranch(idset, cbl, et, func, trans) ≡ if cbl = 〈〉 then mk_AccessResult(〈〉, idset) else mk_AccessResult( removeDuplets( accessList( getAccessObs( idset, value_expr(hd cbl), et, func, trans)) accessList( getAccessObsCaseBranch( accessIdSet( getAccessObs( idset, value_expr(hd cbl), et, func, trans)), tl cbl, et, func, trans))), accessIdSet( getAccessObsCaseBranch( accessIdSet( getAccessObs( idset, value_expr(hd cbl), et, func, trans)), tl cbl, et, func, trans))) end, getAccessGen : Id ∗ × ValueExpr × ExpType × FUNC × TRANS → AccessResult 433
- 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 444 and 445: APPENDIX D. SPECIFICATION OF TRANSF
- Page 446 and 447: 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
- Page 494 and 495: APPENDIX E. ANTLR GRAMMAR ; d = d e
- Page 496 and 497: APPENDIX E. ANTLR GRAMMAR ; } ( com
D.2. FORMAL SPECIFICATION OF THE TRANSFORMER IN RSL1<br />
)<br />
end,<br />
idset, value_expr(hd ldl),<br />
Unknown, func, trans)), tl ldl,<br />
func, trans))),<br />
accessIdSet(<br />
getAccessObsLetDefList(<br />
accessIdSet(<br />
getAccessObs(<br />
idset, value_expr(hd ldl), Unknown,<br />
func, trans)), tl ldl, func, trans))<br />
getAccessObsCaseBranch :<br />
Id ∗ × CaseBranch ∗ × ExpType × FUNC ×<br />
TRANS →<br />
AccessResult<br />
getAccessObsCaseBranch(idset, cbl, et, func, trans) ≡<br />
if cbl = 〈〉 then mk_AccessResult(〈〉, idset)<br />
else<br />
mk_AccessResult(<br />
removeDuplets(<br />
accessList(<br />
getAccessObs(<br />
idset, value_expr(hd cbl), et, func,<br />
trans)) <br />
accessList(<br />
getAccessObsCaseBranch(<br />
accessIdSet(<br />
getAccessObs(<br />
idset, value_expr(hd cbl), et,<br />
func, trans)), tl cbl, et, func,<br />
trans))),<br />
accessIdSet(<br />
getAccessObsCaseBranch(<br />
accessIdSet(<br />
getAccessObs(<br />
idset, value_expr(hd cbl), et,<br />
func, trans)), tl cbl, et, func,<br />
trans)))<br />
end,<br />
getAccessGen :<br />
Id ∗ × ValueExpr × ExpType × FUNC × TRANS →<br />
AccessResult<br />
433