Tradução da especificação SCJ para linguagem de programação C++ - Silva, Ricardo Frohlich da (2015)
Safety critical systems are systems where its failures can cause irreparable damage for this reason the development of safety critical systems involves safety issues and require rigorous validation in the certification process. Certification processes are expensive and lengthy to follow laws and rigorous rules. With the continuous evolution provided by general purpose programming languages, ease of learning, and the use of these languages in industry and academy, researches have been performed aiming to adapt general purpose programming languages for use in safety-critical applications. The purpose of these adaptations is to reduce the scope of commands found in general purpose languages in order to develop safety critical systems, for example, to avoid or reduce the use of recursions. Some examples of these adaptations include the Real Time Specification for Java (RTSJ), developed in 1998 and Safety Critical Java. SCJ uses objects and concepts defined by the RTSJ focusing on the development of safetycritical applications. In SCJ, the concept of missions is deployed where each mission consists of schedulable objects defined by the RTSJ. The portability of a Java application is one of the main factors for choosing this language. However, there is great difficulty in finding virtual machines for embedded safety-critical systems, therefore it is difficult to benefit from the portability provided by the Java virtual machine in this context. Nevertheless, an application developed in the C++ programming language can be executed directly on the device without using a virtual machine. This work presents a translation of the Safety Critical Java to the C++ programming language, maintaining the behaviour of objects that implement the concept of missions for SCJ in C++. This enables the execution of safety-critical applications in embedded devices without the use of a virtual machine.