Proceedings of the 30th Annual ACM Symposium on Applied Computing 2015
DOI: 10.1145/2695664.2695819
|View full text |Cite
|
Sign up to set email alerts
|

Compilation of synchronous observers as code contracts

Abstract: Synchronous languages have long been the standard formalism for modeling and implementing embedded control software in critical domains like avionics, automotive or railway system development. Those languages are equipped with qualified compilers that generate the target final embedded code. An extensively used technique to define the expected behavior is the use of synchronous observers. Those observers are typically used for simulation and testing purposes. However, the information contained in those observe… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
7
0

Year Published

2015
2015
2024
2024

Publication Types

Select...
3
3
2

Relationship

3
5

Authors

Journals

citations
Cited by 9 publications
(7 citation statements)
references
References 22 publications
0
7
0
Order By: Relevance
“…This compilation is modular and produces a Lustre node for each Simulink subsystem. Once the Lustre model is obtained, it can be either compiled to C code with the LustreC compiler [16] or submitted to Lustre model checkers such as Kind2 [12,28] or Zustre [21].…”
Section: Cocosimmentioning
confidence: 99%
See 1 more Smart Citation
“…This compilation is modular and produces a Lustre node for each Simulink subsystem. Once the Lustre model is obtained, it can be either compiled to C code with the LustreC compiler [16] or submitted to Lustre model checkers such as Kind2 [12,28] or Zustre [21].…”
Section: Cocosimmentioning
confidence: 99%
“…These assume/guarantee pairs can thus be used to specify requirements at the component level. This approach was first proposed by Hoare [27] to specify axiomatic semantics of imperative programs; however, it was later lifted to reactive systems through the notion of synchronous observers [12,16,25,26,35]. When contracts are specified formally for individual components, they can facilitate several development activities, such as compositional reasoning during static analysis, step-wise refinement, systematic component reuse, and component-level and integration-level test case generation.…”
Section: Introductionmentioning
confidence: 99%
“…CoCoSim [1] is a verification tool that can check properties of top level Simulink models using an underlying model checker. Given an existing Simulink model, an "observer" [6,7] is added to the system using the installed CoCoSim menu. All of the inputs of the system, identified by Simulink inport blocks, must be routed as inputs to the observer.…”
Section: Verification Softwarementioning
confidence: 99%
“…One motivation for verifying a Lustre compiler is to ensure that properties verified on models also hold on generated code. An alternative is to also compile the properties and to reverify them at the code level [22]. This is an interesting approach, but it has two disadvantages: the compilation of properties and the re-verification must be trusted; verification may succeed on the model but fail on the code.…”
Section: Related Workmentioning
confidence: 99%