Certified development tools implementation in objective Caml

  • Authors:
  • Bruno Pagano;Olivier Andrieu;Benjamin Canou;Emmanuel Chailloux;Jean-Louis Colaço;Thomas Moniot;Philippe Wang

  • Affiliations:
  • Esterel Technologies, Elancourt, France;Esterel Technologies, Elancourt, France;ENS Cachan, Bruz, France and Laboratoire d'informatique de Paris 6, UMR, Université Pierre et Marie Curie, Paris 6, Paris, France;Laboratoire d'informatique de Paris 6, UMR, Université Pierre et Marie Curie, Paris 6, Paris, France;Siemens VDO Automotive, Toulouse, France;Esterel Technologies, Elancourt, France;Laboratoire d'informatique de Paris 6, UMR, Université Pierre et Marie Curie, Paris 6, Paris, France

  • Venue:
  • PADL'08 Proceedings of the 10th international conference on Practical aspects of declarative languages
  • Year:
  • 2008

Quantified Score

Hi-index 0.01

Visualization

Abstract

This paper presents our feedback from the study on the use of Objective Caml for safety-critical software development tools implementation. As a result, Objective Caml is now used for the new ScadeTM certified embedded-code generator. The requirements for tools implementation are less strict than those for the embedded code itself. However, they are still quite demanding and linked to imperative languages properties, which are usually used for this kind of development. The use of Objective Caml is outstanding: firstly for its high level features (functional language of higher order, parametric polymorphism, pattern matching), secondly for its low level mechanisms needed by the runtime system (GC, exceptions). In order to develop the tools to check the safety-critical software development rules, it is necessary to reinterpret them for this language, and then to adapt Objective Caml so that it satisfies them. Thus, we propose a language restriction and a simplified runtime library in order that we can define and measure the coverage of a program written in Objective Caml according to the MC/DC criteria. Then we can look forward to seeing this kind of languages spread out the industrial environment, while raising the abstraction level in the conception and implementation of tools for certified programs production.