An unexpected source of mobile security: Ada

The longstanding DOD programming language goes from mainframes to mobile devices.

The military is making greater use of mobile devices, from tailored smartphones for the battlefield to handheld biological and chemical detection devices.

But as common as mobility is becoming, security is always a concern. In addition to steps such as encryption, NSA certification and strong authentication, programmers also are finding new ways to combine existing software and tighten the links between programs.

One approach involves Ada, the time-honored, though often maligned, Defense Department programming language that dates to the early 1980s and was largely associated with mainframe and embedded systems. DOD originally commissioned Ada in the 1970s, and later mandated its use across the military services in an attempt to reduce the spread of other, often incompatible languages in DOD systems. (It was named in honor of Ada Lovelace, daughter of Lord Byron and a mathematician who is generally credited with writing the first computer program for Charles Babbage’s Analytical Engine in the 1840s.)

But many developers in DOD resisted, saying Ada was difficult to work with, and fell back on the well-known C programming language and later C++ and Java. The mandate was discontinued in 1997, but Ada did survive, and lives on in millions of lines of code in DOD systems.

What made Ada difficult also made it secure and reliable—in simplified programing terms, it was hard to get code past Ada’s exacting compiler, but once you did, it was extremely reliable and resistant to many types of attacks. Could that reliability and security be combined with an easier development path?

That’s what AdaCore, a commercial company led by people who have worked with Ada through its evolution (Ada 83, Ada 95, Ada 2005) has been doing for about two decades. AdaCore is open source, and offers the GNAT Pro and SPARK Pro development environments along with an Ada compiler. It has been used fairly widely in DOD, particularly in avionics and as a teaching language.

And it’s also going mobile. The U.S. Army, for example, wanted to let Ada applications run on ruggedized Android tablets used on battlefields. Army planners wanted to bring Ada’s safety, security and reliability to the Wild West environment of commercial handheld devices, where apps’ reliability and security are not always optimal.  

AdaCore leveraged its GNAT Pro 7.2 development environment to create a tool suite for developing and maintaining Android applications using a mixture of Ada and Java. The tools make it more straightforward for tablet and phone users to gain the benefits of Java and Ada, which can also enhance compatibility between tablets and mainframes.

The combination of Ada’s safe, reliable code and Java’s graphical functionality can allow DOD to deliver existing systems to the front lines on mobile devices without a trade-off in security or usability, the company says. If nothing else, it’s one more option for helping to ensure mobile security.