AdaCore has released its latest Ada cross-development environment, GNAT Pro 7.2, for ARM Cortex processors running Android. This GNAT Pro product, hosted on Windows and Linux, comprises a complete Ada toolsuite for developing and maintaining Android applications using a mixture of Ada and Java. Developers can now exploit the software engineering benefits of the Ada language, while also taking advantage of the Java libraries and services provided by the Android platform. Applications can also be written solely in Ada, or in a combination of Ada and other “native” languages. Android 2.3 and later versions are supported, on Cortex A8 and above.
A recent trend is the use of COTS portable devices in mission-critical contexts, such as military command and control and industrial process management. In these systems the original OS and consumer-oriented applications are replaced by customized versions that include domain-specific software using proprietary and/or confidential algorithms. GNAT Pro for Android offers developers an attractive solution by generating highly efficient, native ARM code for the algorithms, while giving access to the common Android graphics library for implementing the user interface. And with Ada’s strong typing and other compile-time checks, GNAT Pro and supplemental static analysis tools, such as CodePeer, can detect many errors and vulnerabilities early in the development stage, an especially important advantage in embedded systems where recalls or updates may be expensive or impractical.
“Hand-held devices are becoming a natural part of modern software-intensive systems, in both military and civil arenas,” said Cyrille Comar, AdaCore Managing Director. “High reliability and security are critical for many of these systems, and developers can now take full advantage of Ada 2012 and SPARK 2014 to help meet these requirements.”
Incorporating more than 120 new features, this latest GNAT Pro toolsuite implements the Ada 2012 language standard by default. Some of the new Ada 2012 language features include:
Contract-based programming (preconditions, postconditions, type invariants)
Enhanced multiprocessor support (multiprocessor affinity and barriers)
Enhanced integration of concurrency and OOP
Additional language-defined libraries (vector/matrix packages)
GNAT Pro 7.2 includes a new version of GNATbench, the AdaCore plug-in extending Eclipse into an Ada IDE. Along with general enhancements, this new version includes a dedicated plug-in providing end-to-end support for mixed Ada-Java development on Android. Starting with a specific wizard that handles all the project setup details, users need only specify the Ada packages to be called from the Java application. Building the project automatically invokes AJIS, the Ada-Java Interfacing System, to generate all Java code required to call the Ada code, compiles the Ada code into a shared library referenced from the Java side, and makes both available to the Java project. Any changes to the set of Ada interface packages, or to the Ada code in those packages, are automatically detected and handled by the builder. The generated Java is high-level and thus avoids the error-prone direct use of JNI. Furthermore, the Ada and Java code are fully integrated within the IDE, allowing for example navigation within the editors. Finally, debugging the Ada code is supported via the normal Eclipse/CDT debugger GUI.