/strong>.
The novel and unique approach to imperative programming in ATS is firmly
rooted in the paradigm of <em>programming with theorem-proving</em>. The
type system of ATS allows many features considered dangerous in other
languages (e.g., explicit pointer arithmetic and explicit memory
allocation/deallocation) to be safely supported in ATS, making ATS a viable
programming language for low-level systems programming.
</p></li>

<li><p>
<strong>Concurrent programming</strong>.
ATS, equipped with a multicor