Ada Skills Sharpened

Projectlet based approach

Published

February 4, 2025

Preface

The year was 1986. I was privileged to be inserted into a large engineering team building the control system for a Hot Strip Mill. Fortran was the language, VAX/VMS the Operating System. Shared memory, global variables, variable names implying the data types (Integer vs Real) were the norm. Considering the complexity of hot rolling of steel, starting from giant slabs to produce coils of steel at such tight tolerances of thickness and cooling rate - the tools were primitive demanding extreme skill and competence of the engineers.

The next generation called for stepping up the game and it was most opportune that the company decided to invest in Ada technology. VAX?VMS, VAX/ELN, Ada, DECnet were a perfectly matched toolset and the team was inducted into this world. The robustness of the language, toolset, testing and debugging tools available made lifelong converts of many of the engineers. Over the next decade or so, this application grew to well over half a million lines of code - arguably the earliest and the largest non-defense application of Ada.

As the system evolved incorporating PC architecture, Unix derivative realtime operating system LynxOS the core architecture stood its own and thus contributed to my strong and unshakeable belief in the benefits of Ada. As I migrated to medical device engineering, I benefited enormously from the lessons learned yet unable to implement the language directly. However Ada remained the tool of choice for personal enrichment as well as auxiliary support tools whichever team I worked on since then and continues to be so.

Beyond the availability of affordable compiler systems, a significant stumbling block in propagating the enthusiasm was the lack of code examples within reach of learners, playgrounds that enable experimentation regardless of the development environment. The versatility and applicability of Ada beyond defense applications was mostly theoretical in perception.

This work is an attempt to fill the gap. With annotated code examples, problems from diverse application domains are presented. The projectlets are complete and provide enough scope for experimentation. Each chapter includes a paragraph of Stretch projects that can lead to full featured real applications. It is hoped that the examples and additional exercises whet the appetite of learners enough to invite them to incorporate Ada in their own applications and derive all the possible benefits.