Thanks for your enthusiasm!

ATS3: For constructing quality code productively
1. Correctness through advanced types
2. Productivity through code sharing and meta-programming

Right now, there is not yet a compiler from ATS3 to C.
I am still in the process of designing an intermediate
language for compiling to C/C++.

We can compile ATS3 to JavaScript and also to Python3.
For this release, I will just push out  a compiler from ATS3
to JS (ATS3-to-JS-in-ATS3). This compiler has been successfully
bootstrapped in the sense that it can compile its own source, which
for now consists of about 160K lines written in ATS3.

By the way, the first compiler for ATS3 is ATS3-to-JS-in-ATS2, which
consists of about 120K lines written in ATS2 (ATS-Postiats).

What I will push out is a big file of JS code that you can use node
(or nodejs) to run to compile ATS3 programs. Yes, you can use 'bun'
to run it, too. For now, we will focus on using 'node'. In the future, we
may even use Quick JS (QJS) by Fabrice Bellard to run the file.

Programming in ATS3 as of now is likely a very different programming
experience. Please be patient. In a nutshell,  an ATS3 program can contain
many templates; the compiler fetches the code for these templates; in the
fetched code, there can be further templates, and the compiler does template
resolution recursively. And the programmer writes code to affect the outcome
of template resolution. If you have experience with C++ templates; it 
helps. If
you are familiar with type classes in Haskell, it helps, too.

If one programmer implements some templates and another puts them on
the search path of the compiler, then code sharing happens. Templates are
different from library functions in one big sense: the user of a template 
can
write code to modify the template from the outside.

There will be many many more new concepts on the way. Hopefully, learning
ATS3 can become an enlightening journey for you. If you would like to help
enlighten others by posting something here or elsewhere, please be my 
guest. 

Cheers!

Hongwei Xi

On Thursday, April 24, 2025 at 2:52:10 PM UTC-4 gmhwxi wrote:

> Hi, there,
>
> I will be releasing the first version of ATS3 shortly.
> More will be said in a followup email.
>
> For those who are familiar with ATS2, I would like to emphasize
> that ATS3 is very different from ATS2 at this point. Many advanced
> features of ATS2 have yet to be incorporated into ATS3.
>
> As you can see, there are two words in 'program verification'.
> Verification needs to be built on top of a productive approach
> to program construction.
>
> While ATS2 focuses on program verification, ATS3 has shifted the
> focus on program construction. The first priority of ATS3 is to provide
> a means for programmers to construct programs in a higher productive
> manner. The feature of templates in ATS3 is my attempt at it, and it is
> likely my last attempt at it as well. One could only experiment for so much
> and so long in one's own limited capacity.
>
> Cheers!
>
> Hongwei Xi
> Principal Designer and Implementer of ATS PL System
>
>
>
>

-- 
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 visit 
https://groups.google.com/d/msgid/ats-lang-users/27c2d4f6-9c69-4619-bf83-5e5a699fb287n%40googlegroups.com.

Reply via email to