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