Thanks for your compliment. It is really difficult to live up to it :) >>Is it intended that all extensions of Xanadu be placed at the same software-architectural design points as this extension?
What xinterp and xjonsonize show is a typical way to implement a tool for processing or analyzing various syntax trees used in the implementation of ATS3. For instance, pretty printing can be implemented in this way; error-message reporting of all sorts can also be implemented in this way. With xjsonize, such tools can actually be written in other languages than ATS2. However, what gets me really excited is to implement so-called meta-programming extensions. ATS3 is designed to be both a source language and a target language. And a meta-programming extension of ATS3 is supposed to compile to ATS3, enabling higher-level programming than what is supported in ATS3. Speaking of programming, I think we must automate and we will automate (Hilbert's original words are: Wir müssen wissen — wir werden wissen!). Cheers! --Hongwei On Saturday, December 21, 2019 at 10:21:48 AM UTC-5, Dan'l Miller wrote: > > Thank you for providing this extension, Richard. (And thank you, Hongwei, > for being the prime-mover genius of all this; this is like watching Mozart > write his symphonies.) > > Is it intended that all extensions of Xanadu be placed at the same > software-architectural design points as this extension? Or are there > intended to be quite different categories of extensions that are placed in > Xanadu's compiler at quite different software-architectural put-stuff-here > design points—i.e., “horses for courses” as the British say: different > horses are bred for different events/venues? (I am aware of Hongwei's > posting in recent days regarding AST-to-AST-to-…-to-AST transforms as a key > microkernel-esque breakthrough design of Xanadu. Those transforms/ASTs > might be part of the answer, but are their more intended put-stuff-here > design points?) > > On Saturday, December 21, 2019 at 3:09:53 AM UTC-6, Richard wrote: >> >> Here is an other extension example https://github.com/sparverius/xjsonize. >> (see the readme for building instructions) >> Outputs the AST at each transition level in json. This can be helpful for >> writing other extensions or even just to learn ast. >> > -- You received this message because you are subscribed to the Google Groups "ats-lang-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/ats-lang-users/fc5cd22d-12c6-463e-b2c9-f587a50da1ff%40googlegroups.com.
