AdaCore: Build Software that Matters
I Stock 1194849760
Industries > Rail_

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.

Key Use Cases_

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.

The Challenge_

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.

Binary code
The Solution_

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.

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.

Programming Languages_

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.

Platforms Support_

Powering the Widest Range of Platforms in the Industry

We support over one hundred off-the-shelf and custom platforms across the industry.

Vxworks logo
Lynxos logo
Linux logo
Free RTOS logo 2005
Qnx logo
Android logo 2023
Windows logo
Powerpc logo
x86 Logo
Arm logo
RISC V logo
Bare metal logo
Binary code

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.

Alstom logo svg
Siemens logo
Hitachi logo
Code
Siemens logo

Safety has the highest priority in the railway business. Therefore, we invest a lot of time and energy in code-review and testing activities. Recently, Siemens is experiencing a renaissance in demand for its railway control software, which is placing a heavy load on our software development resources. In order to meet the demand, without compromising safety or quality, we recognized the need for tools that would allow us to work more efficiently. Our two most important requirements were an Ada compiler that could be configured to analyze code against a rigorous set of specific criteria, and an automated code review and validation tool to identify potential runtime errors. Now, with detailed feedback from the GNAT compiler and CodePeer we are able to discover problems at the source instead of in the test lab and the code-review process is now essentially automated.

Daniel Bigelow, Siemens Software Developer

Speak to an expert

Expert guidance for your safety-critical rail programs.

Related Resources