[ats-lang-users] Fw: New to ATS
Unleashing the potentials of types and templates
Status: Beta
Brought to you by:
ats-hwxi
From: Rouan v. D. <rv...@ya...> - 2010-03-15 07:49:40
|
Hi Thanks for the replies. Its great to hear that ATS is stable enough for real-world applications :) I don't mind spending time learning ATS and how to effectively use its types. I have the most experience in C/C++/Haskell/OCaml/C#/F#. I like static typing and having a type system to verify that my programs are sane at some level at least. This should give you an idea of the type of type-systems that I am used to. It is my first time hearing of dependent and linear types and I don't yet know what the advantages are of having them in a language. If possible, could anyone give / point me to small code samples that are relatively easy to understand, highlighting the advantages of linear and dependent types. I do not have a solid background in type-theory / lambda-calc and im not looking to write proofs for programs. I want to write practical applications that work and if the language has some facilities to help with writing small proofs to increase the safety of the code I will use them, but sparingly. At least until I understand the ideas behind dependent types and proofs better :) That said, I am very interested in type systems and love learning these concepts so I am eager to learn from smart people. When I say real-world apps, I mean applications that solve practical problems (networking, GUI apps, compilers) instead of writing something like a proof for an algorithm (more academic stuff). Mixing C and ATS is really attractive to me and the programming language I am designing takes most of its inspiration from Haskell & OCaml, and will thus have a similar syntactic feel & feature set. I also intend to first compile down to C and then let the C compiler generate executable code. So if I have a language that gives me good access to C for writing bindings, etc. it will be a plus. One thing attracts me to ATS is the claim that you can still use low-level concepts like pointers, etc. (which are usually labelled unsafe) to write efficient code, but still have the compiler verify the safety. Hongwei, in your last email, you said that tupples should be used sparingly in ATS, is this correct? I use tuples a lot in my functional code in Haskell/OCaml and would like to know why I should rather use call-by-ref than tuples in ATS? Tupples are a very useful feature for me in the code I intend to write for my compiler. My ATS code would look like ML code at the start I suppose :) Does ATS support currying? I haven't found any indication in the available documentation. Thanks for all the patience Regards, Rouan. |