This book starts from the core of ATS, a statically typed call-by-value
functional programming language, gradually introducing the reader to
dependent types, linear types and the paradigm of programming with
theorem-proving. It assumes no familiarity of the reader with functional
programming but it does expect the reader to have already acquired
basic understanding of programming and possibly some programming skills.
The primary purpose of this tutorial is to bring deep insights into a rich
set of programming features in ATS and also demonstrate through concrete
examples that these features can be made of effective use in the
construction of high-quality programs. For someone familiar with both ML
and C, it is possible to learn programming in ATS by simply studying the
tutorial. However, a coherent and systematic view of ATS is diffcult to be
gained from the tutorial alone.