Hongwei,
In your 16dec2019 posting & its replies
https://groups.google.com/g/ats-lang-users/c/TnL5h-_mDOQ/m/35X4gneUBgAJ
you mentioned that your intended software architecture for the ATS3 
compiler under development would have stages at which AST-to-AST transforms 
would be a key facilitator of extension functionality.  Some such 
AST-to-AST transforms might include, e.g., alternative syntax, full OOP 
that partially impairs programming-by-proofs, partial OOP that does not 
impair programming-by-proofs at all, alternative logic solvers, LLVM 
backend, and so forth.

In your reply on 29aug2020
https://groups.google.com/g/ats-lang-users/c/fJWbXeOraDU/m/lcfFdhQfAgAJ
it might seem that OOP might be such an extension that fits somewhere in 
the AST-to-AST transforms.

Has this vision of architecting the ATS3 compiler as having the 
originally-intended AST-to-AST transform-based extension points come to 
fruition (perhaps in some early not-final form) at this release?  Or did 
some trade-offs along the way cause these AST-to-AST transform-based 
extension points to be postponed for a while into the future?

On Sunday, November 22, 2020 at 8:31:16 AM UTC-6 gmhwxi wrote:

>
>
> Hi, there, 
>
> HX-2020-11-22: 
>
> (* 
> HX-2018-04-07: Let us get started!!! 
> *) 
>
> As of today, I am pleased to announce that ATS3 has reached a stage 
> where it can be realistically used in software construction. This is 
> achieved after slightly more than two and one-half years of continual 
> development by yours truly :) 
>
> ###### 
> # 
> # The current status 
> # 
> ###### 
>
> XATSOPT: 
>
> Xatsopt is a functioning compiler implemented in ATS2 for translating 
> ATS3 into a typed intermediate language of the name XATSCML, which is 
> both C-like and ML-like. It is planned for xatsopt to further 
> translate XATSCML into XATSCL0, a low-level C-like language. I now 
> primarily see xatsopt as a library (libxatsopt) for implementing tools 
> to support programming with ATS3. 
>
> XATS2JS: 
>
> Xats2js is a functioning compiler implemented in ATS2 for translating 
> XATSCML into JavaScript (or JS for short). It should be noted that 
> xats2js can compile tail-recursive calls into local jumps, effectively 
> supporting the common practice in functional programming of writing 
> loops as tail-recursive functions. 
>
> I will give detailed explanation elsewhere on using xats2js. Generally 
> speaking, one can now practice a form of co-programming with ATS3 and 
> JS. The JS code generated by xats2js from compiling ATS3 source can be 
> directly combined with other JS code (as if the generated code were 
> manually written in JS) 
>
> ###### 
> # 
> # Future Development 
> # 
> ###### 
>
> Documenting Xatsopt: 
>
> This has been assigned a high priority. It is hoped that other 
> people interested in ATS3 can start developing tools for ATS3 after 
> a minimal amount of documentation on xatsopt is made available. 
>
> Advanced Type-Checking: 
>
> While one can specify with linear types and dependent types in ATS3, 
> there is no type-checking for such advanced types in xatsopt. I plan 
> to concentrate on implementing support for such type-checking in the 
> next phase of ATS3 development. 
>
> ###### 
> # 
> # A little history of ATS3 
> # 
> ###### 
>
> Essentially, ATS3 refers to the third edition of ATS, and ATS/Xanadu 
> is currently the only implementation of ATS3. Note that the names ATS3 
> and ATS/Xanadu are often used interchangeably. 
>
> In the ATS family of languages, the first implementation is named 
> ATS/Proto (2004) and the language it implements is referred to as 
> ATS0. Please note that the implementation of ATS/Proto is written in 
> OCaml. The next implementation is ATS/Geizella (2007), which is also 
> written in OCaml. And the language implemented by ATS/Geizella is 
> referred to as ATS1. ATS/Anairiats (2008) is an implementation of ATS1 
> in itself; the implementation is first compiled by ATS/Geizella and 
> then by itself, succeeding in so-called bootstrapping. The next 
> edition of ATS is ATS2, which is given an implementation of the name 
> ATS/Postiats (2013) written in ATS1. 
>
> ATS/Xanadu implements ATS3 and the implementation is written in ATS2. 
> While there is currently no plan to bootstrap ATS3 by implementing it 
> in itself, it is perceivable that ATS/Xanadu can be readily translated 
> (manually) into such an implementation since the difference between 
> ATS2 and ATS3 in terms of both syntax and semantics is fairly minor 
> (for the part being used in compiler implementation). 
>
> ################################################################## 
>
> Cheers! 
>
> --Hongwei 
>
> ################################################################## 
>
> For previously post messages: 
>
> https://github.com/githwxi/ATS-Xanadu/tree/master/docgen/NOTES 
> ##################################################################
>
>
>

-- 
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-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ats-lang-users/06dba1dc-0a74-4484-aebe-ae42f8771184n%40googlegroups.com.

Reply via email to