
AdaCore + Rail
Modern rail transportation relies on sophisticated software systems that control everything from train movements to passenger safety. As rail networks become increasingly automated and interconnected, development teams face mounting challenges in certification, cybersecurity, and long-term system maintenance.
Where Our Technology Makes a Difference
Train Control & Signaling Systems
At the heart of rail safety are train control and signaling systems that manage train movements, ensure safe separation, and coordinate complex junction operations. These include Automatic Train Protection (ATP), Automatic Train Operation (ATO), and Computer-Based Interlocking (CBI) systems. Software in these applications must meet the highest safety integrity levels, as failures can result in collisions or derailments. Robust, certifiable development tools are essential for delivering the deterministic behavior and fault tolerance required in safety-critical rail environments.
Traffic Management & Operations
Modern rail networks depend on sophisticated Traffic Management Systems (TMS) and Rail Traffic Management Systems (RTMS) to optimize capacity, manage schedules, and coordinate maintenance activities. These systems integrate real-time data from across the network to make critical operational decisions. Their software must handle complex optimization algorithms while maintaining real-time performance and reliability. Supporting these systems requires development tools that can manage computational complexity while ensuring long-term maintainability across diverse operational environments.
Communication & Network Systems
Today's rail infrastructure relies heavily on communication systems for train-to-ground coordination, passenger information, and operational data exchange. Applications such as GSM-R communication systems, Positive Train Control (PTC), and European Train Control System (ETCS) play vital roles in ensuring safe and efficient operations. These systems must meet strict real-time requirements while maintaining robust cybersecurity defenses against evolving threats. Developing such systems demands technology stacks that enable high assurance and facilitate certification while providing strong security foundations.
Infrastructure Monitoring & Maintenance
Ensuring operational integrity and passenger safety depends on continuous monitoring applications such as track condition monitoring systems, bridge and tunnel management systems, and predictive maintenance platforms. These applications often integrate with IoT sensors and must process large volumes of real-time data while maintaining safety-critical reliability. Their complexity, combined with requirements for certifiability and long-term operation, places a premium on using development tools that support formal verification, comprehensive testing, and sustained support across a multi-decade operational lifecycle.
Dependable Across Generations of Systems
Platform Diversity
Platform diversity makes portability and maintainability difficult across generations of hardware and RTOS environments.
Industry Compliance
EN-50128 and EN-50657 compliance demands rigorous development processes, qualified tools, and comprehensive verification, driving significant cost and complexity across SIL-3 and SIL-4 applications.
Cybersecurity
Rail software runs in an open environment susceptible to threats. It needs to be protected from third-party attacks.
Longevity
Decades-long operational lifecycles require software to remain maintainable and supportable across multiple hardware generations and evolving regulatory requirements.

All-in-One Software Developer Toolkit
AdaCore provides compilation, verification, and certification-ready tools for Ada, C/C++, and Rust, supporting platforms from bare-metal embedded systems to full server environments. Integrated testing and analysis, combined with compliance with industry standards, ensure robust, mission-critical software development.
Development
Ada, C/C++ and Rust
Support is provided for a wide set of languages relevant to embedded and safety-critical software development:
- Ada 83, 95, 2005, 2012 and 2022
- C89 to C20 and C++98 to C++20
- Rust starting with 1.77.2
DevOps
All tools provided for developers are DevOps-ready and can be integrated into off-the-shelf or custom pipelines.
Customizable Runtimes
Language runtimes can be customized to limit the number of lines of code they contain, from full capability to minimized resource footprint and certification costs, allowing them to be used on large server systems as well as resource-constrained environments.
LLVM and GCC
AdaCore toolchain are industrial-grade version of the GCC and LLVM compilers, allowing ease of integration in widespread and known environments and pipelines.
Verification
Static Analysis for Ada
Static Analysis technologies is provided for all version of Ada. It covers area such as:
- Code issue scanning
- Cybersecurity weaknesses detection
- Bug identification
- Metric computation
Static Analysis for C/C++
Static Analysis technologies is provided for C/C++. It covers area such as:
- Code issue scanning
- Cybersecurity weaknesses detection
- Bug identification
- Coding standard compliance, including MISRA-C and MISRA-C++
- Metric computation
Dynamic Analysis Suite
Dynamic Analysis covers Ada, C/C++ and Rust, addressing various areas:
- Unit Testing
- Structural Code Coverage up to MC/DC
- Code Fuzzing
Compliance
EN-50128 and EN-50657
The AdaCore toolchain meets requirements of EN-50128 and EN-50657. In particular:
- Embedded language run-time libraries are certified up to SIL-3/4
- Structural Coverage and coding standard checkers are qualified T2
- Software can be actively supported over decades, provided with known-problem monitoring, issues impact analysis and targeted toolchain fixes
- Compilers are qualified T3
Software Bill of Material
AdaCore produces Software Bills of Materials (SBOMs) for all AdaCore products supplied in the industry-standard SPDX format, allowing automated incorporation into customers’ vulnerability management and reporting systems.

Elevate Safety with MISRA C/C++, Rust, and SPARK
SPARK, Rust, and MISRA C/C++ offer a gradient of possibilities for approaching safety. These are not just about different languages; they are about shifting developers' mindsets and processes when pursuing the highest level of reliability.
A formally verifiable subset of Ada that enables mathematical proof of correctness. Eliminates entire classes of errors, providing the highest level of assurance for critical software.
A modern systems language with ownership and borrowing to enforce memory safety. Reduces runtime risks, though concurrency and “unsafe” code require careful handling.
Widely used industry guidelines that mitigate many of C/C++’s inherent risks. Helps structure development, but safety depends on process discipline.
Powering the Widest Range of Platforms in the Industry
We support over one hundred off-the-shelf and custom platforms across the industry.

Streamline Your EN-50128 / EN-50657 Workflow
Discover how AdaCore technologies support EN-50128 / EN-50657 certification requirements.
Trusted Across the Industry
Over one hundred companies across high-integrity industries have chosen our technology to meet the highest standards of safety, reliability, and performance.












