Freeing task-access objects

Ada was the first language to include support for tasks (aka multi-threading) as part of the language itself. As such, it is often convenient to design a program to include a number of worker tasks that can split the work, and thus speed up the overall program. Here...

Calling inherited primitive operations in Ada

In object-oriented programming, it is often the case that we want to override a primitive operation from a parent type. While some languages have built-in support for this (for instance python has the super() operation for that), it is not the case with Ada. In this...