Current Status of ATS3

130 views
Skip to first unread message

gmhwxi

unread,
Sep 1, 2020, 12:52:11 PM9/1/20
to ats-lang-users

Hi, there,

I would like to say a few words on the current status of ATS3.

Originally, I planned to complete a compiler from ATS3 to C/C++ by
the end of Summer, 2020. On the way, my plan changed somewhat.
This is the current status of ATS3:

1. In the following repository, there is a compiler from ATS3 to an intermediate
language ATS3-ML (which is ML-like):


This compiler is functioning. And it will be polished and improved gradually. This
is the core for all of the future development of ATS3. Essentially, the compiler first
does the so-called Hindley-style of type-inference, and then it performs template resolution.

2. In the following repository, there is a running interpreter for testing the aforementioned
compiler:


This interpreter is not meant for practical use; it is mainly for testing and documenting
the syntax of ATS3.

3. I am working on a compiler from ATS3-ML to JS:


This compiler is meant for practical use. For instance, I plan to use it for building a website for ATS3. Hopefully, this compiler will be functioning in a couple of months.

After xats2js, I will be working on dependent and linear type-checking for ATS3 and then
a compiler from ATS-ML to C/C++. Will keep everyone informed.

Cheers,

--Hongwei



Brandon Barker

unread,
Oct 17, 2020, 5:52:57 PM10/17/20
to ats-lang-users
Thanks for your continued efforts! That all sounds wonderful, just one question for now: it sounds like ATS3-ML's first working target will be Javascript. I wonder if ATS3-ML is similar enough to some existing ML to support an ML target? Or maybe I misunderstood and the ML target can already be executed standalone.

Dambaev Alexander

unread,
Oct 17, 2020, 10:53:26 PM10/17/20
to ats-lan...@googlegroups.com
On Tuesday, September 1, 2020 at 12:52:11 PM UTC-4 gmhwxi wrote:

Hi, there,

I would like to say a few words on the current status of ATS3.

Originally, I planned to complete a compiler from ATS3 to C/C++ by
the end of Summer, 2020. On the way, my plan changed somewhat.
This is the current status of ATS3:

1. In the following repository, there is a compiler from ATS3 to an intermediate
language ATS3-ML (which is ML-like):


This compiler is functioning. And it will be polished and improved gradually. This
is the core for all of the future development of ATS3. Essentially, the compiler first
does the so-called Hindley-style of type-inference, and then it performs template resolution.

2. In the following repository, there is a running interpreter for testing the aforementioned
compiler:


This interpreter is not meant for practical use; it is mainly for testing and documenting
the syntax of ATS3.

3. I am working on a compiler from ATS3-ML to JS:


This compiler is meant for practical use. For instance, I plan to use it for building a website for ATS3. Hopefully, this compiler will be functioning in a couple of months.

After xats2js, I will be working on dependent and linear type-checking for ATS3 and then
a compiler from ATS-ML to C/C++. Will keep everyone informed.

Cheers,

--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 ats-lang-user...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ats-lang-users/b44430c7-7ed0-4761-aac5-8c1c193f1439n%40googlegroups.com.

Dambaev Alexander

unread,
Oct 17, 2020, 10:53:58 PM10/17/20
to ats-lan...@googlegroups.com
Thanks for the report. I think all of us can't  wait to try ATS3, especially if it will improve user-experience in comparison to ATS2.

As I guess, "someone" can try to work on ATS3-ML->C/C++ translator in parallel to xats2js at the point, when ATS3-ML should not have planned backward incompatibility changes.
Am I correct: ATS3-ML, being intermediate language, does not aware of dependent/linear types and

Dambaev Alexander

unread,
Oct 17, 2020, 10:54:53 PM10/17/20
to ats-lan...@googlegroups.com

Dambaev Alexander

unread,
Oct 17, 2020, 10:55:49 PM10/17/20
to ats-lan...@googlegroups.com

gmhwxi

unread,
Oct 18, 2020, 9:42:07 AM10/18/20
to ats-lang-users
Yes, JS is the first working target.

The 'ML' in ATS3-ML is used in rather a loose sense.

By ML, I basically refer to a language that supports function closures and recursive datatypes/pattern matching.
This is a broad category. ATS3-ML should readily be able to be compiled to any ML-like languages that I can think of.

I may change the name ATS3-ML to ATS3-CML to reflect the fact that this language supports flat data representation
(in contrast to the boxed data representation used by ML-like languages).

Cheers!

gmhwxi

unread,
Oct 18, 2020, 9:46:45 AM10/18/20
to ats-lang-users
>>Am I correct: ATS3-ML, being intermediate language, does not aware of dependent/linear types and

That is correct. ATS3-ML is typed; its type system is ML-like. In particular, the types in ATS3-ML are algebraic
(that is, they are free of explicit quantifiers).

gmhwxi

unread,
Oct 18, 2020, 9:57:50 AM10/18/20
to ats-lang-users
>>As I guess, "someone" can try to work on ATS3-ML->C/C++ translator in parallel to xats2js at the point, when ATS3-ML should not have planned backward incompatibility changes.

Yes, this is the plan.

ATS3 is designed to be an "open" programming language platform. In particular,
the design of ATS3 should readily allow people to build such translators on their own.
For instance, xats2js is the first example of such. This is just like compiling C to all kinds
of assembly languages.

Cheers!

--Hongwei
Reply all
Reply to author
Forward
0 new messages