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.