AST in JSON format
david-sarah at jacaranda.org
Mon Dec 7 15:10:21 PST 2009
Mark Miller wrote:
> On Mon, Dec 7, 2009 at 7:45 AM, Maciej Stachowiak <mjs at apple.com> wrote:
>> I can see how modifying the AST client-side prior to execution could be
>> useful, to implement macro-like processing. But I don't see the use case for
>> serializing an AST in JSON-like format, or sending it over the wire that
>> way. It seems like it would be larger (and therefore slower to transmit),
>> shouldn't the serialization format just be JS source code?
> While potentially useful, I have no interest in these ASTs as a
> serialization format nor in a compact AST encoding. I am interested in
> having a standard JsonML AST encoding of parsed ES5, and eventually an
> efficient and standard browser-side parser that emits these ASTs. Many
> forms of JS meta-programming that currently occur only on the server
> (e.g., Caja, FBJS, MSWebSandbox, Jacaranda) or have to download a full
> JS parser to the client per frame (ADsafe, JSLint, Narcissus,
> Narrative JS) could instead become lighter weight client side
- although the size of the JSON serialization of the AST is not
critical for this kind of usage, the size of the in-memory
representation definitely is.
- encoding node type strings as integers, as suggested earlier in the
thread, does not help with this memory usage.
- any Lempel-Ziv-based compression algorithm will do much better than
replacing type strings with integers, in the few situations where
it is useful to serialize the AST and to minimize the size of the
- JsonML is a reasonable basis for an AST format even when
"serialization for free" is of fairly low importance. In particular,
it is useful that it only uses structures that are common across
programming languages (for instance, the prototype Jacaranda verifier
uses it even though it is written in Java). Also, programmers of
AST-processing applications will see this serialization when
debugging, and it is likely to appear in test cases for such
applications and for parsers/emitters.
David-Sarah Hopwood ⚥ http://davidsarah.livejournal.com
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 292 bytes
Desc: OpenPGP digital signature
More information about the es-discuss