Changeset 1394 for Deliverables/D4.2-4.3/reports/D4-3.tex
- Timestamp:
- Oct 17, 2011, 4:50:44 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Deliverables/D4.2-4.3/reports/D4-3.tex
r1391 r1394 149 149 In particular, we have merged many of the syntaxes of the intermediate languages (i.e. RTL, ERTL, LTL and LIN) into a single `joint' syntax, which is parameterised by various types. 150 150 Equivalent intermediate languages to those present in the O'Caml code can be recovered by specialising this joint structure. 151 152 As mentioned in the report for Deliverable D4.2, there are a number of advantages that this process of abstraction brings, from code reuse to allowing us to get a clearer view of the intermediate languages and their structure. 153 However, the semantics of the intermediate languages allow us to concretely demonstrate this improvement in clarity, by noting that the semantics of the LTL and the semantics of the LIN languages are identical. 154 In particular, the semantics of both LTL and LIN are implemented in exactly the same way. 155 The only difference between the two languages is how the next instruction to be interpreted is fetched. 156 In LTL, this involves looking up in a graph, whereas in LTL, this involves fetching from a list of instructions. 157 158 As a result, we see that the semantics of LIN and LTL are both instances of a single, more general language that is parametric in how the next instruction is fetched. 159 Furthermore, any prospective proof that the semantics of LTL and LIN are identical is not almost trivial, saving a deal of work in Deliverable D4.4. 151 160 152 161 %-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-% … … 195 204 Most functions in the intermediate language semantics fall into the IO monad. 196 205 \end{enumerate} 206 This monadic infrastructure is shared between the frontend and backend languages. 197 207 198 208 %-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%
Note: See TracChangeset
for help on using the changeset viewer.