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/9a56547b-82cf-4131-9aa9-2d42b0f72873%40googlegroups.com.

Reply via email to