Ada class library for RISC OS


Ada 95 is in my opinion one of the most interesting 3rd generation programming languages. It features strong typing, a very exact specification and a range of partly unique features.

On RISC OS, Ada was not really well known or widely used in the past. This had several reasons. First, the GNAT compiler requires a computer with a fast processor and a lot of RAM - this only became available with the Risc PC. And what is more, no RISC OS libraries were readily available.

The Ada enthusiasts on the RISC OS platform are here to change that fundamentally. There were always a lot of interesting ideas, but lack of time prevented the realization.

There was a certain thrust in development when I decided to implement CDBurn in Ada - however, the specifically written RISC OS library was neither very powerful nor well structured and also not object oriented.

To solve all this, we decided to start the "Ada class library for RISC OS" project somewhere mid 1999. There are three active project members at the moment:


Part of the design is already done, and implementation of this part has started.

Functionality for the first implementation stage was specified along these lines:

The final target for the project is the development of a complete integrated development environment with editor, GUI builder, project management, debugger etc...but this is still a bit away ;-) The class library should provide a sensible first step which can be combined with the available development tools like template editors, text editors etc.

Project size

We didn't do any real estimation for the size of the project. However, we agreed that the currently planned "first stage" is doable in around 6 months (free time permitting). A very rough guess.

Because of the estimation for the final project target, we concluded that we better start to implement the first stage to be complemented by already existing tools.


AdaLib is developed as a class library, and as such follows an object-oriented paradigma. But there is no "pure OO philosophy" behind it, the envisaged solutions are more of pragmatic nature. For example, we decided to use Callbacks for event handling instead of the "purer" dynamic dispatching.

Very helpful for this pragmatic solutions is the fact that Ada 95 is able to support several programming paradigms. OO concepts are easily integratable into "classic", procedural things.


The idea for a RISC OS library for Ada first surfaced when Christoph Schemainda and me were doing our Fachpraktikum during our University time in 1996. We had to implement a personal scheduler with a graphical front end, and the implementation language was mandatory - Ada (with the help of Tcl/Tk for the XWindow frontend). A little later, GNAT 3.03 was ported by Pete Burwood onto RISC OS, so all preconditions were there - and after the Fachpraktikum, we were real Ada fans.

At first, we envisaged a solution based on the Toolbox, because we thought of it as a solution with a bright future. However, time showed that Acorn did not have the resources to develop the Toolbox accordingly - many bugs were not fixed, and there were only very few gadgets developed by 3rd parties. But what was more, the necessary Toolbox things were only available when buying Acorn C/C++ Release 5, so we would have restricted the usage of our Ada library to C/C++ programmers.

So the delay until 1999, when it became clear that the toolbox is not a viable option anymore could even be seen as a positive thing ;-)

In 1997, a first Ada library was developed for the implementation of CDBurn. While this library is quite stable, it is also very procedurally oriented, and it requires some real low-level thinking. The implementation itself is also not very "nice", because I knew too few things about Ada 95 when starting implementation.

Home © 1999-2001 Steffen Huber,

Valid HTML 4.01!