Where ≺ is precedes, A ≺ B0 ≺ C ≺ B → ATS/Xanadu is lucid & compact 
well-presented deep insight.  I had noticed clues & pieces to this effect 
in past postings but this puts is it together directly.

This progression might be related to something that I have been pondering: 
 Is the shift away from ATS2's more C-family syntax to ATS3's different 
ground syntax a direct facilitator of any or all of {A, B0, C, B} or is it 
an orthogonal choice?

On Tuesday, December 24, 2019 at 6:59:14 AM UTC-6, gmhwxi wrote:
>
>
> What I have learned from the ATS2 experiment is a set of programming 
> features
> that I want to have in ATS3 and how these features should be implemented.
>
> Say that we have three features A, B, and C. In ATS2, they are implemented 
> in the
> order of A + B + C. What I learned from ATS2 is that the order should 
> really be A + C + B,
> that is, C should be implemented before B. Specifically, B is 
> type-checking and C is template
> selection. In order to implement C before B, I need to implement another 
> feature B0:
> A + B0 + C + B, where B0 is type-inference. This change in implementation 
> order is fundamental.
> To appreciate the significant of this change, one could compare Haskell 
> without type classes (ATS2)
> with Haskell (ATS3).
>
> The C-source generation issue is relatively minor. It will be properly 
> taken care of in ATS3.
>
> In short, continuing to work on ATS2 is not a good choice because some 
> fundamental changes
> in implementation are needed to greatly improve it. Thus, ATS3!
>
> On Monday, December 23, 2019 at 2:20:31 PM UTC-5, Dan'l Miller wrote:
>>
>> Hongwei, other than the long list of fine-grained differences between 
>> ATS/Postiats and the emerging ATS/Xanadu, what do you think stops 
>> ATS/Postiats itself from being “a programming language suitable for use in 
>> production”?  For example, the C-source generation could fairly easily have 
>> begat an PostiatsAST-to-ClangAST tree-transduction to get an LLVM backend 
>> with relatively little effort (or PostiatsAST-to-gimpleAST 
>> tree-transduction à la GNAT to get a gcc backend).  I ask this from the 
>> perspective of what extensions to ATS/Xanadu would most likely be steps 
>> forward versus repeating an impediment-to-production-suitability that 
>> AST/Postiats already might have pursued.
>>
>> On Monday, December 16, 2019 at 10:05:41 PM UTC-6, gmhwxi wrote:
>>>
>>>
>>> The full name for ATS3 is ATS/Xanadu.
>>>
>>> From this point on, I would use the name 'Xanadu' for ATS3 as this 
>>> should make it easier
>>> for people to locate information on ATS/Xanadu.
>>>
>>> I have so far implemented ATS0 (ATS/Proto),  ATS1 (ATS/Geizella and 
>>> ATS/Anairiats),
>>> and ATS2 (ATS/Postiats). ATS/Proto and ATS/Geizella were done in OCaml 
>>> and the others
>>> in ATS1. I now see all of these implementations as parts of a lengthy 
>>> programming language
>>> experiment spanning a period of about 15 years.
>>>
>>> But ATS3 is designed and implemented very differently. First and 
>>> foremost, I hope that ATS3
>>> can become a programming language suitable for use in production. For 
>>> that to have a chance to
>>> ever happen, we need to build an ecosystem for ATS3. ATS3 is structured 
>>> in a way that can
>>> greatly facilitate collaboration of contributors.
>>>
>>> While it is still a bit too early for a release of ATS3, I feel that 
>>> some people may be interested in
>>> playing with the syntax of ATS3 and learning a few tricks about 
>>> programming language implementation.
>>> With that thought on my mind, I have just implemented a (naive) 
>>> interpreter for ATS3. Please find the code
>>> for this interpreter in the following repository:
>>>
>>> https://github.com/xanadu-lang/xinterp
>>>
>>> The basic idea is to structure xinterp as a project external to 
>>> ATS/Xanadu.
>>>
>>> After git-cloing xinterp, please also git-clone the following repo 
>>> inside the xinterp repo:
>>>
>>> https://github.com/xanadu-lang/xanadu
>>>
>>> Please do not modify the code in the xanadu repo; the code in this repo 
>>> is copied from elsewhere.
>>> You may ask me to do the modification, though.
>>>
>>> By studying xinterp (and possibly raising questions here), you can 
>>> implement all kinds of tools
>>> for processing the syntax of ATS3: syntax-highlighting, pretty-printing, 
>>> error-messgage-reporting, etc.
>>>
>>> Have fun!
>>>
>>> --Hongwei
>>>
>>> --Hongwei
>>>
>>

-- 
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/ccaa9fe2-1aa7-4031-867e-62bb3b4abb96%40googlegroups.com.

Reply via email to