Transformation of Applicative Specifications into Imperative ...
Transformation of Applicative Specifications into Imperative ... Transformation of Applicative Specifications into Imperative ...
APPENDIX C. FORMAL SPECIFICATIONS OF TRANSFORMATIONS end, CheckPreCondOptRestriction( or, func, trans, types) /∗Checks if a map expression contains generators or hidden generators.∗/ /∗ Arguments: ======= me: the map expression Results: ===== Bool: true if the map expression does not contain generators, false otherwise ∗/ CheckPreCondGenMap : MapExpr × FUNC × TRANS × TYPES → Bool CheckPreCondGenMap(me, func, trans, types) ≡ case me of EnumeratedMapExpr(ovel) → case ovel of ValueExprPairList(vel) → CheckPreCondPairList(vel, func, trans, types), NoValueExprPairList → true end, ComprehendedMapExpr(vep, t, or) → CheckPreCondGen(first(vep), func, trans, types) ∧ CheckPreCondGen(second(vep), func, trans, types) ∧ CheckPreCondOptRestriction( or, func, trans, types) end, /∗Checks if an optional restriction contains generators or hidden generators.∗/ /∗ Arguments: ======= or: the optional restriction Results: ===== Bool: true if the optional restriction does not contain generators, false otherwise ∗/ CheckPreCondOptRestriction : 158
C.1. FORMAL SPECIFICATION OF THE TRANSFORMER OptionalRestriction × FUNC × TRANS × TYPES → Bool CheckPreCondOptRestriction(or, func, trans, types) ≡ case or of Restriction(ve) → CheckPreCondGen(ve, func, trans, types), NoRestriction → true end, /∗Checks if a pair list contains generators or hidden generators.∗/ /∗ Arguments: ======= vepl: the pair list Results: ===== Bool: true if the pair list does not contain generators, false otherwise ∗/ CheckPreCondPairList : ValueExprPair ∗ × FUNC × TRANS × TYPES → Bool CheckPreCondPairList(vepl, func, trans, types) ≡ if vepl = 〈〉 then true else CheckPreCondGen(first(hd vepl), func, trans, types) ∧ CheckPreCondGen( second(hd vepl), func, trans, types) ∧ CheckPreCondPairList(tl vepl, func, trans, types) end, /∗Checks if an application expression contains generators or hidden generators.∗/ /∗ Arguments: ======= ve: the application id vel: the arguments of the application expression Results: ===== Bool: true if the application expression does not contain generators, false otherwise ∗/ CheckPreCondApplicationExpr : ValueExpr × ValueExpr ∗ × FUNC × TRANS × TYPES → 159
- Page 124 and 125: CHAPTER 9. IMPLEMENTATION OF THE TR
- Page 126 and 127: CHAPTER 10. EXAMPLES OF TRANSFORMAT
- Page 128 and 129: CHAPTER 10. EXAMPLES OF TRANSFORMAT
- Page 130 and 131: CHAPTER 10. EXAMPLES OF TRANSFORMAT
- Page 132 and 133: CHAPTER 10. EXAMPLES OF TRANSFORMAT
- Page 134 and 135: CHAPTER 10. EXAMPLES OF TRANSFORMAT
- Page 136 and 137: CHAPTER 11. TEST 11.1.1 Lexer and P
- Page 138 and 139: CHAPTER 11. TEST An overview of the
- Page 140 and 141: CHAPTER 12. POSSIBLE EXTENSIONS OF
- Page 142 and 143: CHAPTER 12. POSSIBLE EXTENSIONS OF
- Page 144 and 145: CHAPTER 12. POSSIBLE EXTENSIONS OF
- Page 146 and 147: CHAPTER 13. CONCLUSION RSL AST and
- Page 148 and 149: CHAPTER 13. CONCLUSION 132
- Page 150 and 151: BIBLIOGRAPHY [ST02] Donald Sannello
- Page 152 and 153: APPENDIX A. USING AND EXTENDING THE
- Page 154 and 155: APPENDIX A. USING AND EXTENDING THE
- Page 156 and 157: APPENDIX B. CONTENTS OF CD-ROM 140
- Page 158 and 159: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 160 and 161: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 162 and 163: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 164 and 165: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 166 and 167: APPENDIX C. FORMAL SPECIFICATIONS O
- 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 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 218 and 219: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 220 and 221: APPENDIX C. FORMAL SPECIFICATIONS O
- Page 222 and 223: APPENDIX C. FORMAL SPECIFICATIONS O
APPENDIX C. FORMAL SPECIFICATIONS OF TRANSFORMATIONS<br />
end,<br />
CheckPreCondOptRestriction(<br />
or, func, trans, types)<br />
/∗Checks if a map expression contains generators<br />
or hidden generators.∗/<br />
/∗<br />
Arguments:<br />
=======<br />
me: the map expression<br />
Results:<br />
=====<br />
Bool: true if the map expression does not contain<br />
generators, false otherwise<br />
∗/<br />
CheckPreCondGenMap :<br />
MapExpr × FUNC × TRANS × TYPES → Bool<br />
CheckPreCondGenMap(me, func, trans, types) ≡<br />
case me <strong>of</strong><br />
EnumeratedMapExpr(ovel) →<br />
case ovel <strong>of</strong><br />
ValueExprPairList(vel) →<br />
CheckPreCondPairList(vel, func, trans, types),<br />
NoValueExprPairList → true<br />
end,<br />
ComprehendedMapExpr(vep, t, or) →<br />
CheckPreCondGen(first(vep), func, trans, types) ∧<br />
CheckPreCondGen(second(vep), func, trans, types) ∧<br />
CheckPreCondOptRestriction(<br />
or, func, trans, types)<br />
end,<br />
/∗Checks if an optional restriction contains generators<br />
or hidden generators.∗/<br />
/∗<br />
Arguments:<br />
=======<br />
or: the optional restriction<br />
Results:<br />
=====<br />
Bool: true if the optional restriction does not<br />
contain generators, false otherwise<br />
∗/<br />
CheckPreCondOptRestriction :<br />
158