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 end, → Unknown end, → Unknown end, getMapType : ExpType → MapType getMapType(et) ≡ case et of Known(te) → case te of TypeExprMap(tem) → case tem of FiniteMapTypeExpr(tedom, terange) → mk_MapType(Known(tedom), Known(terange)), FiniteMapTypeExpr(tedom, terange) → mk_MapType(Known(tedom), Known(terange)) end, → mk_MapType(Unknown, Unknown) end, → mk_MapType(Unknown, Unknown) end, getBracketedType : ExpType → ExpType getBracketedType(et) ≡ case et of Known(te) → case te of BracketedTypeExpr(bte) → Known(bte), → Unknown end, Unknown → Unknown end, getListMapTypeArg : ExpType → ExpType getListMapTypeArg(et) ≡ case et of Known(te) → case te of TypeExprList(tel) → Known(TypeExprProduct(〈TypeLiteral(INT)〉)), TypeExprMap(tem) → case tem of FiniteMapTypeExpr(tedom, terange) → 414
D.2. FORMAL SPECIFICATION OF THE TRANSFORMER IN RSL1 Known(TypeExprProduct(〈tedom〉)), InfiniteMapTypeExpr(tedom, terange) → Known(TypeExprProduct(〈tedom〉)) end, → et end, Unknown → Unknown end, removeBrackets : ExpType → ExpType removeBrackets(et) ≡ case et of Known(te) → case te of BracketedTypeExpr(bte) → Known(bte), → et end, → et end, /∗**** ExpType end ****∗/ /∗**** ValueExpr ****∗/ toValueExpr : ValueExpr ∗ → ValueExpr toValueExpr(vel) ≡ if lengthVE(vel) = 1 then hd vel else ProductExpr(vel) end, makeValueExprList : ValueExpr ∗ × ExpType ∗ × ValueExpr ∗ × TRANS × FUNC → ValueExpr ∗ makeValueExprList(vel, etl, vl, trans, func) ≡ if vel = 〈〉 then vel else if and( isGen(hd vel, hd etl, trans, func), not( returnsNonTOI(hd vel, hd etl, trans, func)) ) then 415
- Page 380 and 381: APPENDIX D. SPECIFICATION OF TRANSF
- Page 382 and 383: APPENDIX D. SPECIFICATION OF TRANSF
- Page 384 and 385: APPENDIX D. SPECIFICATION OF TRANSF
- Page 386 and 387: APPENDIX D. SPECIFICATION OF TRANSF
- Page 388 and 389: APPENDIX D. SPECIFICATION OF TRANSF
- Page 390 and 391: APPENDIX D. SPECIFICATION OF TRANSF
- Page 392 and 393: APPENDIX D. SPECIFICATION OF TRANSF
- 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 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 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
APPENDIX D. SPECIFICATION OF TRANSFORMER IN RSL1<br />
end,<br />
→ Unknown<br />
end,<br />
→ Unknown<br />
end,<br />
getMapType : ExpType → MapType<br />
getMapType(et) ≡<br />
case et <strong>of</strong><br />
Known(te) →<br />
case te <strong>of</strong><br />
TypeExprMap(tem) →<br />
case tem <strong>of</strong><br />
FiniteMapTypeExpr(tedom, terange) →<br />
mk_MapType(Known(tedom), Known(terange)),<br />
FiniteMapTypeExpr(tedom, terange) →<br />
mk_MapType(Known(tedom), Known(terange))<br />
end,<br />
→ mk_MapType(Unknown, Unknown)<br />
end,<br />
→ mk_MapType(Unknown, Unknown)<br />
end,<br />
getBracketedType : ExpType → ExpType<br />
getBracketedType(et) ≡<br />
case et <strong>of</strong><br />
Known(te) →<br />
case te <strong>of</strong><br />
BracketedTypeExpr(bte) → Known(bte),<br />
→ Unknown<br />
end,<br />
Unknown → Unknown<br />
end,<br />
getListMapTypeArg : ExpType → ExpType<br />
getListMapTypeArg(et) ≡<br />
case et <strong>of</strong><br />
Known(te) →<br />
case te <strong>of</strong><br />
TypeExprList(tel) →<br />
Known(TypeExprProduct(〈TypeLiteral(INT)〉)),<br />
TypeExprMap(tem) →<br />
case tem <strong>of</strong><br />
FiniteMapTypeExpr(tedom, terange) →<br />
414