Transformation of Applicative Specifications into Imperative ...
Transformation of Applicative Specifications into Imperative ... Transformation of Applicative Specifications into Imperative ...
APPENDIX C. FORMAL SPECIFICATIONS OF TRANSFORMATIONS (fve ′ , types ′ ) = TRValueExpr(fve, et, func, trans, types), (sve ′ , types ′′ ) = TRValueExpr(sve, et, func, trans, types ′ ) in (RangedListExpr(fve ′ , sve ′ ), types ′′ ) end, EnumeratedListExpr(ovel) → let (ovel ′ , types ′ ) = TROptValueExprList( ovel, et, func, trans, types) in (EnumeratedListExpr(ovel ′ ), types ′ ) end, ComprehendedListExpr(ve1, b, ve2, or) → let (ve1 ′ , types1) = TRValueExpr(ve1, et, func, trans, types), (ve2 ′ , types2) = TRValueExpr(ve2, et, func, trans, types1), (or ′ , types3) = TROptRestriction( or, Known(TypeLiteral(BOOL)), func, trans, types2) in (ComprehendedListExpr(ve1 ′ , b, ve2 ′ , or ′ ), types3) end end, /∗Transforms a map expression.∗/ /∗ Arguments: ======= me: the map expression et: the expected type the components of the map expression Result: ======= MapExpr: the imperative version of the map expression ∗/ TRMapExpr : MapExpr × MapType × FUNC × TRANS × TYPES → 202
C.1. FORMAL SPECIFICATION OF THE TRANSFORMER MapExpr × TYPES TRMapExpr(me, et, func, trans, types) ≡ case me of EnumeratedMapExpr(ovel) → let (ovel ′ , types ′ ) = TROptValueExprPairList( ovel, et, func, trans, types) in (EnumeratedMapExpr(ovel ′ ), types ′ ) end, ComprehendedMapExpr(ve, typlist, or) → let (vedom, types1) = TRValueExpr( first(ve), tedom(et), func, trans, types), (verange, types2) = TRValueExpr( second(ve), terange(et), func, trans, types1), (or ′ , types3) = TROptRestriction( or, Known(TypeLiteral(BOOL)), func, trans, types2) in (ComprehendedMapExpr( mk_ValueExprPair(vedom, verange), typlist, or ′ ), types3) end end, /∗Transforms an optional value expression list. ∗/ /∗ Arguments: ======= ovel: the optional value expression list et: the expected type the components of the set expression Result: ======= OptionalValueExprList: the imperative version of the optional value expression list ∗/ 203
- Page 168 and 169: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 170 and 171: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 172 and 173: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 174 and 175: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 176 and 177: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 178 and 179: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 180 and 181: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 182 and 183: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 184 and 185: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 186 and 187: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 188 and 189: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 190 and 191: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 192 and 193: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 194 and 195: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 196 and 197: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 198 and 199: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 200 and 201: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 202 and 203: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 204 and 205: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 206 and 207: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 208 and 209: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 210 and 211: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 212 and 213: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 214 and 215: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 216 and 217: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 220 and 221: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 222 and 223: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 224 and 225: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 226 and 227: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 228 and 229: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 230 and 231: APPENDIX C. FORMAL SPECIFICATIONS O
- 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
APPENDIX C. FORMAL SPECIFICATIONS OF TRANSFORMATIONS<br />
(fve ′ , types ′ ) =<br />
TRValueExpr(fve, et, func, trans, types),<br />
(sve ′ , types ′′ ) =<br />
TRValueExpr(sve, et, func, trans, types ′ )<br />
in<br />
(RangedListExpr(fve ′ , sve ′ ), types ′′ )<br />
end,<br />
EnumeratedListExpr(ovel) →<br />
let<br />
(ovel ′ , types ′ ) =<br />
TROptValueExprList(<br />
ovel, et, func, trans, types)<br />
in<br />
(EnumeratedListExpr(ovel ′ ), types ′ )<br />
end,<br />
ComprehendedListExpr(ve1, b, ve2, or) →<br />
let<br />
(ve1 ′ , types1) =<br />
TRValueExpr(ve1, et, func, trans, types),<br />
(ve2 ′ , types2) =<br />
TRValueExpr(ve2, et, func, trans, types1),<br />
(or ′ , types3) =<br />
TROptRestriction(<br />
or, Known(TypeLiteral(BOOL)), func,<br />
trans, types2)<br />
in<br />
(ComprehendedListExpr(ve1 ′ , b, ve2 ′ , or ′ ),<br />
types3)<br />
end<br />
end,<br />
/∗Transforms a map expression.∗/<br />
/∗<br />
Arguments:<br />
=======<br />
me: the map expression<br />
et: the expected type the components <strong>of</strong> the map<br />
expression<br />
Result:<br />
=======<br />
MapExpr: the imperative version <strong>of</strong> the map expression<br />
∗/<br />
TRMapExpr :<br />
MapExpr × MapType × FUNC × TRANS × TYPES →<br />
202