Certified Development Tools Implementation in Objective Caml

  • Bruno Pagano
  • Olivier Andrieu
  • Benjamin Canou
  • Emmanuel Chailloux
  • Jean-Louis Colaço
  • Thomas Moniot
  • Philippe Wang
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4902)


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 Scade\(^{\mathtt{TM}}\) 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.


Code coverage Tests measurement Functional programming Objective Caml Civil avionics 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Aponte, M.-V., Chailloux, E., Cousineau, G., Manoury, P.: Advanced Programming Features in Objective Caml. In: 6th Brazilian Symposium on Programming Languages(June 2002)Google Scholar
  2. 2.
    Berry, G.: The Effectiveness of Synchronous Languages for the Development of Safety-Critical Systems. Technical report, Esterel-Technologies (2003)Google Scholar
  3. 3.
    Boehm, H., Weiser, M., Bartlett, J.F.: Garbage collection in an uncooperative environment. Software - Practice and Experience (September 1988)Google Scholar
  4. 4.
    Camus, J.-L., Dion, B.: Efficient Development of Airborne Software with SCADE SuiteTM. Technical report, Esterel-Technologies (2003)Google Scholar
  5. 5.
    Chailloux, E.: An Efficient Way of Compiling ML to C. In: Workshop on ML and its Applications. ACM SIGPLAN (June 1992)Google Scholar
  6. 6.
    Colaço, J.-L., Pagano, B., Pouzet, M.: A Conservative Extension of Synchronous Data-flow with State Machines. In: ACM International Conference on Embedded Software (EMSOFT 2005), Jersey city, New Jersey, USA (September 2005)Google Scholar
  7. 7.
    Colaço, J.-L., Pouzet, M.: Clocks as First Class Abstract Types. In: Third International Conference on Embedded Software (EMSOFT 2003), Philadelphia, Pennsylvania, USA (October 2003)Google Scholar
  8. 8.
    Cousot, P., Cousot, R., Feret, J., Mauborgne, L., Miné, A., Monniaux, D., Rival, X.: The astrée analyser. In: European Symposium on Programming. LNCS (April 2005)Google Scholar
  9. 9.
    Dupuy, A., Leveson, N.: An empirical evaluation of the mc/dc coverage criterion on the hete-2 satellite software. In: Digital Aviations Systems Conference (DASC), Philadelphia, Pennsylvania, USA (October 2000)Google Scholar
  10. 10.
    Hayhurst, K.J., Veerhusen, D.S., Chilenski, J.J., Rierson, L.K.:A Practical Tutorial on Modified Condition/Decision Coverage. Technical report, NASA/TM-2001-210876 (May 2001)Google Scholar
  11. 11.
    Jones, R., Lins, R.: Garbage Collection. Wiley, Chichester (1996)zbMATHGoogle Scholar
  12. 12.
    Kapoor, K., Bowen, J.P.: Experimental evaluation of the variation in effectiveness for dc, fpc and mc/dc test criteria. In: ISESE, pp. 185–194. IEEE Computer Society, Los Alamitos (2003)Google Scholar
  13. 13.
    Leroy, X.: The Objective Caml system release 3.10 : Documentation and user’s manual (2007),
  14. 14.
    Maranget, L.: Warnings for pattern matching. Journal of Functional Programming (2007)Google Scholar
  15. 15.
    Pouzet, M.: Lucid Synchrone version 3.0 : Tutorial and Reference Manual (2006),
  16. 16.
    T.C.D.T.L. Project: The Coq Proof Assistant Reference Manual (2006),
  17. 17.
    RTCA/DO-178B: Software Considerations in Airborne Systems and Equipment Certification. Radio Technical Commission for Aeronautics RTCA (December 1992)Google Scholar
  18. 18.
    Starynkevitch, B.: OCamljit - a faster Just-In-TIme Ocaml implementation. In: Workshop MetaOcaml (June 2004)Google Scholar
  19. 19.
    Tarditi, D., Lee, P., Acharya, A.: No assembly required: Compiling standard ML to C. ACM Letters on Programming Languages and Systems 1(2), 161–177 (1992)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2007

Authors and Affiliations

  • Bruno Pagano
    • 1
  • Olivier Andrieu
    • 1
  • Benjamin Canou
    • 2
    • 3
  • Emmanuel Chailloux
    • 3
  • Jean-Louis Colaço
    • 4
  • Thomas Moniot
    • 1
  • Philippe Wang
    • 3
  1. 1.Esterel Technologies, 8, rue Blaise Pascal, 78890 ElancourtFrance
  2. 2.ENS Cachan, antenne de Bretagne Campus Ker Lann, F-35170 BruzFrance
  3. 3.Laboratoire d’informatique de Paris 6 (LIP6 - UMR 7606)Université Pierre et Marie CurieParisFrance
  4. 4.Siemens VDO Automotive, 1, avenue Paul Ourliac, BP 1149, 31036 ToulouseFrance

Personalised recommendations