Transforming Legacy Ada Code to C/C++ with MapuSoft Ada-C/C++ Changer

Apr 18, 2024Articles, News & Events

ADA to C

In the late 1980s, the U.S. Government mandated the use of the Ada programming language for all Department of Defense projects, a directive that remained in effect until 1997. This mandate led to the development of hundreds of millions of lines of legacy Ada83 and Ada95 code across thousands of projects, many of which are still integral to today’s military and commercial avionics systems. As these applications age, the need for updates to address new functionalities and hardware obsolescence becomes increasingly critical.

To protect the significant software investment made in Ada, one viable solution is the conversion of Ada applications to either C/C++, a versatile and widely used programming languages. MapuSoft’s Ada-Changer emerges as a groundbreaking tool in this context, offering a seamless and automated transition from Ada to C/C++ without the need for extensive manual intervention. This article explores the features and benefits of Ada-Changer and its role in modernizing legacy Ada applications.

Click here to read the full article

The Challenge of Legacy Ada Code

The legacy Ada projects, developed from the early 1970s through the early 2000s, represent a valuable but aging software repository. The challenge lies in the fact that these applications, originally written in Ada, face the need for updates and improvements. Due to the hardware obsolescence and evolving requirements, there is an increasing demand to migrate these applications to modern, flexible, and widely supported platforms.

Ada to C/C++

In 1987, the U.S. Government mandated the use of the Ada programming language for all Department of Defense projects, a requirement that persisted until 1997. This directive led to the creation of extensive legacy Ada83 and Ada95 code, totaling hundreds of millions of lines, across numerous projects. Much of this code remains in use today within military and commercial avionics systems. Originating from development efforts spanning the early 1970s to the early 2000s, these aging applications often require updates to incorporate new functionalities or address challenges arising from hardware obsolescence.

To safeguard the software investment, one effective approach involves converting the Ada applications to C/C++ language, complemented by new development in C/C++ . MapuSoft’s Ada-Changer simplifies this process by offering a software tool that automatically converts Ada code to C/C++ without requiring human intervention.

Ada-Changer: Simplifying the Transition

MapuSoft’s Ada-Changer addresses the challenges associated with legacy Ada code by providing a software tool that automates the conversion process. This tool streamlines the transition from Ada to C/C++, offering numerous benefits that contribute to significant cost and time savings.

Key Features of Ada-Changer

    1. Automatic Code Conversion: Ada-Changer facilitates the automatic conversion of Ada code to C/C++, eliminating the need for a manual code rewrite. This automation ensures accuracy and consistency throughout the conversion process.
    2. Cost and Time Savings: The tool eliminates the need for a costly and tedious manual code rewrite. By automating the conversion process, Ada-Changer significantly reduces the time and resources required for transitioning from Ada to C/C++.
    3. Error-Free Tool: Manual code rewriting is a complex and normally an error-prone task. Ada-Changer, being an automated tool, minimizes the risk of mistakes and errors associated with the manual conversion process. This ensures a smoother transition and enhances the overall reliability of the migrated code.
    4. Support for Ada 83, Ada 95 and some Ada 2012: The tool supports the conversion of both Ada 83, Ada 95 and some features of Ada 2012 source code to C/C++ output, providing flexibility for projects developed using different Ada versions. Custom language transformation rules can be developed to support advanced Ada features that are found in the later standards.
    5. Preservation of Code Structure: Ada-Changer preserves essential elements of the original Ada code, including comments, file structures, and variable names. This preservation facilitates easier code maintenance and comprehension, ensuring that the migrated code remains accessible to developers.
    6. Conversion of Ada Generics to C/C++ Templates: The tool supports the conversion of Ada generics to C/C++ templates, adapting the code structure while maintaining its functionality. This ensures that the migrated code retains its original purpose and logic.
    7. Support for Ada Tasking and Rendezvous Constructs: Ada-Changer is equipped to handle Ada tasking and rendezvous constructs, ensuring that the concurrent aspects of the original code are effectively translated into C/C++.

Add-On Tool Features and Refactoring Services

In addition to the core features of converting Ada to C/C++, Ada-Changer provides a range of add-on tools and refactoring services to further enhance the modernization process:

    1. Design Documentation Generation: The tool can generate design documents for both existing and new code, aiding in documentation efforts and ensuring a clear understanding of the codebase.
    2. Database and User-Interface Transformation: Ada-Changer can transform the implementation of databases and user interfaces, aligning them with modern standards and requirements.
    3. Code Cleanup: The tool can identify and remove dead or redundant code/data, as well as consolidate duplicate code/data, leading to a more streamlined and efficient codebase.
    4. Reorganization and Design Improvement: Ada-Changer facilitates the reorganization and improvement of the design in new code/data, addressing flaws that may have existed in the original code.
    5. Creation of Reusable Modules: The tool can create reusable optimization, packaging, and redistribution modules, promoting code modularity and reusability.
    6. Integration with Modern Environments: Ada-Changer supports integration with modern parallel/multi-processing and distributed/N-Tier operational environments, ensuring that the migrated code is compatible with contemporary computing architectures.
    7. Modernization of Legacy Systems: The tool supports the modernization of legacy systems to multi-tier architectures, including the modernization of flat file, hierarchical, and legacy databases.
    8. User Interface Modernization: Ada-Changer facilitates the modernization of legacy user interfaces to web or other modern UI frameworks, enhancing the user experience.
    9. Code Refactoring for Maintainability, Security, and Performance: The tool supports code refactoring to improve maintainability, security, and performance, ensuring that the migrated code meets modern software development standards.
    10. Custom Pattern-Based Changes: Ada-Changer allows for custom pattern-based changes, enabling tailored modifications to meet specific project requirements.
    11. Migration to Modern Cloud Architectures: The tool supports the migration of legacy systems to modern cloud architectures, aligning the codebase with contemporary cloud computing paradigms.
    12. Testing and Integration Support Solutions: Ada-Changer provides solutions for testing and integration support, ensuring a smooth transition and seamless integration with existing systems.
    13. Design Logic and Business Rules: Ada-Changer’s DesignDoc tools can be used to fully understand your existing software in terms of it’s business logic plus code’s complexity, similarity and external dependencies. The use of DesignDoc tools results in shorter development times and therefore reduced development costs, reduced maintenance costs and a higher return on investment. MapuSoft’s Ada-Changer emerges as a powerful and comprehensive solution for the modernization of legacy Ada code. By automating the conversion process and offering a range of additional tools and services, Ada-Changer simplifies the transition from Ada to C/C++, ensuring cost and time savings while preserving the integrity and functionality of the original code. As industries increasingly rely on advanced and modern technologies, the ability to transform legacy systems becomes paramount. Ada-Changer stands at the forefront, providing a bridge between the robust legacy Ada codebase and the dynamic, modern landscape of C/C++ development.

Explore Products


OS Changer

Programming Language Changer

Hardware/OS Support

Try or Buy

Trial Software

Contact Sales

Installation Help


Get Support

Support Portal


Technical Data




News Room

Contact Us