Railway Signalling Control System Intermediate Data Language
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current methods for preparing and verifying application data for solid state interlocking systems, such as railway signalling networks, are cumbersome due to high combinatorial complexity and lack of direct editing or verification capabilities, leading to difficulties in ensuring safety properties and productivity.
Innovation Solution
The introduction of an intermediate data language with an object-oriented syntax allows for the abstract representation of application data, enabling formal analysis and automatic translation between source code, object code, and intermediate code, facilitating verification and editing of application data independently of hardware perception.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If traditional compilation methods are used to translate application data from high-level language to machine code, then the control system can execute the compiled code, but the verification of compilation correctness becomes extremely difficult and time-consuming due to high combinatorial complexity
Solution Approach 1:
The patent introduces an intermediate representation (IR) as a mediator between the high-level application data and the machine code. This IR serves as a common ground for verification, allowing the system to check compilation correctness by comparing the IR generated from source code with the IR generated from machine code through decompilation, thereby resolving the verification difficulty without adding excessive complexity to the overall process
Solution Approach 2:
The verification process is segmented into independent steps: generating IR from source code, generating machine code from source code, decompiling machine code back to IR, and comparing the two IR versions. This segmentation allows each step to be verified independently, reducing the combinatorial complexity of the overall verification process
2Productivity
If application data is stored in binary machine code format for direct execution, then the control system can efficiently process the data, but direct editing and verification of the application data becomes impossible
Solution Approach 1:
The intermediate representation serves as a bridge between the human-readable high-level language and the executable machine code. It allows operators to edit application data in the high-level language while maintaining the ability to generate efficient machine code, thus preserving both productivity and ease of operation
Solution Approach 2:
The system creates an intermediate copy of the application data in IR format, which can be used for verification and analysis without modifying the original high-level source code or the executable machine code. This copying mechanism enables editing and verification capabilities while maintaining the efficiency of machine code execution
3Reliability
If extensive testing is performed to ensure safety properties of the control system, then the reliability of fail-safe operations is improved, but the time and resources required for testing increase significantly
Solution Approach 1:
The patent performs verification actions before actual system deployment and extensive testing. By verifying compilation correctness through intermediate representation comparison and checking safety properties in advance, the system reduces the need for extensive post-deployment testing, thereby saving time while maintaining reliability
Solution Approach 2:
The verification process provides feedback on compilation correctness and safety property satisfaction before the system is deployed. This early feedback mechanism allows issues to be identified and corrected before extensive testing is required, reducing overall testing time while ensuring reliability
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Method for preparing and checking software means to be executed by programmable control devices or plants for carrying out processes, in which: a) a programming language for expressing the software means is provided, which language is based on an abstract syntax, particularly an object oriented syntax; b) the said programming language being generated from both the source code language and the object code language; c) expressing the control program in the said programming language; d) deriving the source code format and/or the object code format of the control program by translation of the said control program expressed in the language based on the abstract syntax into the language of the source code format and/or of the object code format of the abstract syntax.