Advertisement

Certified Complexity (CerCo)

  • Roberto M. Amadio
  • Nicolas Ayache
  • Francois Bobot
  • Jaap P. Boender
  • Brian Campbell
  • Ilias Garnier
  • Antoine Madet
  • James McKinna
  • Dominic P. Mulligan
  • Mauro Piccolo
  • Randy Pollack
  • Yann Régis-Gianas
  • Claudio Sacerdoti Coen
  • Ian Stark
  • Paolo Tranquilli
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8552)

Abstract

We provide an overview of the FET-Open Project CerCo (‘Certified Complexity’). Our main achievement is the development of a technique for analysing non-functional properties of programs (time, space) at the source level with little or no loss of accuracy and a small trusted code base. The core component is a C compiler, verified in Matita, that produces an instrumented copy of the source code in addition to generating object code. This instrumentation exposes, and tracks precisely, the actual (non-asymptotic) computational cost of the input program at the source level. Untrusted invariant generators and trusted theorem provers may then be used to compute and certify the parametric execution time of the code.

Keywords

Source Code Cost Model Basic Block Loop Body Object Code 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

References

  1. 1.
    AbsInt: aiT WCET analysis tools. http://www.absint.com/ait/
  2. 2.
    Amadio, R., Asperti, A., Ayache, N., Campbell, B., Mulligan, D.P., Pollack, R., Régis-Gianas, Y., Coen, C.S., Stark, I.: Certified complexity. Procedia Comput. Sci. 7, 175–177 (2011). Proceedings of the 2nd European Future Technologies Conference and Exhibition 2011 (FET 11)CrossRefGoogle Scholar
  3. 3.
    Amadio, R.M., Régis-Gianas, Y.: Certifying and reasoning on cost annotations of functional programs. In: Peña, R., van Eekelen, M., Shkaravska, O. (eds.) FOPARA 2011. LNCS, vol. 7177, pp. 72–89. Springer, Heidelberg (2012). Extended version to appear in Higher Order and Symbolic ComputationCrossRefGoogle Scholar
  4. 4.
    Asperti, A., Ricciotti, W., Sacerdoti Coen, C., Tassi, E.: The matita interactive theorem prover. In: Bjørner, N., Sofronie-Stokkermans, V. (eds.) CADE 2011. LNCS, vol. 6803, pp. 64–69. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  5. 5.
    Ayache, N., Amadio, R.M., Régis-Gianas, Y.: Certifying and reasoning on cost annotations in C programs. In: Stoelinga, M., Pinger, R. (eds.) FMICS 2012. LNCS, vol. 7437, pp. 32–46. Springer, Heidelberg (2012). http://dx.doi.org/10.1007/978-3-642-32469-7_3 CrossRefGoogle Scholar
  6. 6.
    Bobot, F., Filliâtre, J.-C.: Separation predicates: a taste of separation logic in first-order logic. In: Aoki, T., Taguchi, K. (eds.) ICFEM 2012. LNCS, vol. 7635, pp. 167–181. Springer, Heidelberg (2012). http://dx.doi.org/10.1007/978-3-642-34281-3_14 CrossRefGoogle Scholar
  7. 7.
    Caspi, P., Pilaud, D., Halbwachs, N., Plaice, J.: Lustre: a declarative language for programming synchronous systems. In: POPL, pp. 178–188. ACM Press (1987)Google Scholar
  8. 8.
    Cazorla, F., Quiñones, E., Vardanega, T., Cucu, L., Triquet, B., Bernat, G., Berger, E., Abella, J., Wartel, F., Houston, M., Santinelli, L., Kosmidis, L., Lo, C., Maxim, D.: Proartis: probabilistically analysable real-time systems. Trans. Embed. Comput. Syst. (2012)Google Scholar
  9. 9.
    The Certified Complexity (CerCo) project web site. http://cerco.cs.unibo.it
  10. 10.
    Correnson, L., Cuoq, P., Kirchner, F., Prevosto, V., Puccetti, A., Signoles, J., Yakobowski, B.: Frama-C user manual. CEA-LIST, Software Safety Laboratory, Saclay, F-91191. http://frama-c.com/
  11. 11.
    Hammond, K., Dyckhoff, R., Ferdinand, C., Heckmann, R., Hofmann, M., Jost, S., Loidl, H.W., Michaelson, G., Pointon, R.F., Scaife, N., Sérot, J., Wallace, A.: The EmBounded project (project start paper). Trends Funct. Program. TFP 6, 195–210 (2005)Google Scholar
  12. 12.
    Jessie Frama-C plugin. http://krakatoa.lri.fr/
  13. 13.
    Leroy, X.: Formal verification of a realistic compiler. Commun. ACM 52(7), 107–115 (2009)CrossRefGoogle Scholar
  14. 14.
    Mulligan, D.P., Sacerdoti Coen, C.: On the correctness of an optimising assembler for the intel MCS-51 microprocessor. In: Hawblitzel, C., Miller, D. (eds.) CPP 2012. LNCS, vol. 7679, pp. 43–59. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  15. 15.
    Talpin, J.P., Jouvelot, P.: The type and effect discipline. Inf. Comput. 111(2), 245–296 (1994)MathSciNetCrossRefzbMATHGoogle Scholar
  16. 16.
    Tranquilli, P.: Indexed labels for loop iteration dependent costs. In: QAPL. EPTCS, vol. 117, pp. 19–23 (2013)Google Scholar
  17. 17.
    Wilhelm, R., Engblom, J., Ermedahl, A., Holsti, N., Thesing, S., Whalley, D.B., Bernat, G., Ferdinand, C., Heckmann, R., Mitra, T., Mueller, F., Puaut, I., Puschner, P.P., Staschulat, J., Stenström, P.: The worst-case execution-time problem-overview of methods and survey of tools. ACM Trans. Embedded Comput. Syst. 7(3), 1–53 (2008)CrossRefGoogle Scholar
  18. 18.
    Wögerer, W.: A survey of static program analysis techniques. Technical report, Technische Universität Wien (2005)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2014

Authors and Affiliations

  • Roberto M. Amadio
    • 4
  • Nicolas Ayache
    • 3
    • 4
  • Francois Bobot
    • 3
    • 4
  • Jaap P. Boender
    • 1
  • Brian Campbell
    • 2
  • Ilias Garnier
    • 2
  • Antoine Madet
    • 4
  • James McKinna
    • 2
  • Dominic P. Mulligan
    • 1
  • Mauro Piccolo
    • 1
  • Randy Pollack
    • 2
  • Yann Régis-Gianas
    • 3
    • 4
  • Claudio Sacerdoti Coen
    • 1
  • Ian Stark
    • 2
  • Paolo Tranquilli
    • 1
  1. 1.Dipartimento di Informatica - Scienza e IngegneriaUniversitá di BolognaBolognaItaly
  2. 2.LFCS, School of InformaticsUniversity of EdinburghEdinburghUK
  3. 3.INRIA (Team πr2)Paris-RocquencourtFrance
  4. 4.Universitè Paris DiderotParisFrance

Personalised recommendations