Ada 2012 Tutorial
Welcome to the tutorial! I will be making some assumptions which are fairly safe: first, that you are unfamiliar with the Ada language; second, you have at least some interest in discovering what it is about; third, that you have some programming experience; and last, that you have an Ada Compiler. (There’s a free one available from AdaCore here, and the GCC has one as well.)
Ada is probably different than what programming languages you are likely to be familiar with, this is a result of Ada’s design goals — two of which are safety and maintainability. The first means that Ada tries to do a lot of checking up-front, in compilation if possible, which reduces the time spent debugging at the cost of the compiler rejecting erroneous source. That can be frustrating at times, but it is better than having to spend three days tracking down a bug. This leads us to the second difference, Ada was designed to be highly maintainable, even across large teams, which is evident in its package system.
To introduce the language I will use a small and simple (read as ‘toy’) LISP-like interpreter. To begin with, we need to realize that LISP runs on a loop of read-input, evaluate, and print.