Safe Serialization Under Mutual Suspicion/"Reversing" Evaluation
From Erights
(Difference between revisions)
(first paragraph added) |
(subsection title and second paragraph added) |
||
Line 3: | Line 3: | ||
The interface between the two is the DEBuilder API, explained in [http://www.erights.org/data/serial/jhu-paper/data-e-manual.html Appendix A: The Data-E Manual]. | The interface between the two is the DEBuilder API, explained in [http://www.erights.org/data/serial/jhu-paper/data-e-manual.html Appendix A: The Data-E Manual]. | ||
Since most of the API is a straightforward reflection of the Data-E grammar productions, if you wish, you may safely skip these details and proceed here by example. | Since most of the API is a straightforward reflection of the Data-E grammar productions, if you wish, you may safely skip these details and proceed here by example. | ||
+ | |||
+ | == Evaluating Data-E == | ||
+ | The semantics of Data-E are defined by the semantics of its evaluation as an <i><b><font color="#009000">E</font></b></i> program. | ||
+ | We could unserialize using the full <i><b><font color="#009000">E</font></b></i> evaluator. | ||
+ | However, this is inefficient both as an implementation and as an explanation. | ||
+ | Instead, here is the Data-E evaluator as a builder, implementing exactly this subset of <i><b><font color="#009000">E</font></b></i>'s semantics. | ||
+ | |||
[http://www.erights.org/data/serial/jhu-paper/recog-n-build.html Part 2: "Reversing" Evaluation] | [http://www.erights.org/data/serial/jhu-paper/recog-n-build.html Part 2: "Reversing" Evaluation] |
Revision as of 06:12, 29 January 2008
As we've seen, we make serializers, unserializers, and other transformers like expression simplifiers by composing a recognizer with a builder. The interface between the two is the DEBuilder API, explained in Appendix A: The Data-E Manual. Since most of the API is a straightforward reflection of the Data-E grammar productions, if you wish, you may safely skip these details and proceed here by example.
Evaluating Data-E
The semantics of Data-E are defined by the semantics of its evaluation as an E program. We could unserialize using the full E evaluator. However, this is inefficient both as an implementation and as an explanation. Instead, here is the Data-E evaluator as a builder, implementing exactly this subset of E's semantics.