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.

Reply via email to