> 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?
>

To some extent, the answer is yes. With type-inference, ATS3 could readily
support programming of familiar styles to programmers working in industry.

On Tuesday, December 24, 2019 at 7:12:37 PM UTC-5, Dan'l Miller wrote:
>
> 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/ea9f7089-4a41-40ab-8d3e-f1b5b5af6e8f%40googlegroups.com.

Reply via email to