Tracking Heaps That Hop with Heap-Hop

  • Jules Villard
  • Étienne Lozes
  • Cristiano Calcagno
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6015)


Heap-Hop is a program prover for concurrent heap-manipulating programs that use Hoare monitors and message-passing synchronization. Programs are annotated with pre and post-conditions and loop invariants, written in a fragment of separation logic. Communications are governed by a form of session types called contracts. Heap-Hop can prove safety and race-freedom and, thanks to contracts, absence of memory leaks and deadlock-freedom. It has been used in several case studies, including concurrent programs for copyless list transfer, service provider protocols, and load-balancing parallel tree disposal.


Concurrent Program Symbolic Execution Separation Logic Session Type Loop Invariant 
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.


  1. 1.
  2. 2.
    Berdine, J., Calcagno, C., O’Hearn, P.: Smallfoot: Modular Automatic Assertion Checking with Separation Logic. In: de Boer, F.S., Bonsangue, M.M., Graf, S., de Roever, W.-P. (eds.) FMCO 2005. LNCS, vol. 4111, pp. 115–137. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  3. 3.
    Calcagno, C., Parkinson, M., Vafeiadis, V.: Modular Safety Checking for Fine-Grained Concurrency. In: Riis Nielson, H., Filé, G. (eds.) SAS 2007. LNCS, vol. 4634, p. 233. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  4. 4.
    Fähndrich, M., Aiken, M., Hawblitzel, M., Hodson, O., Hunt, G., Larus, J., Levi, S.: Language Support for Fast and Reliable Message-Based Communication in Singularity OS. In: EuroSys (2006)Google Scholar
  5. 5.
    Hu, R., Yoshida, N., Honda, K.: Session-Based Distributed Programming in Java. In: Vitek, J. (ed.) ECOOP 2008. LNCS, vol. 5142, pp. 516–541. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  6. 6.
    Leino, K., Müller, P., Smans, J.: Deadlock-free Channels and Locks. To appear in ESOP 2010 (2010)Google Scholar
  7. 7.
    Reynolds, J.C.: Separation Logic: A Logic for Shared Mutable Data Structures. In: LICS 2002 (2002)Google Scholar
  8. 8.
    Takeuchi, K., Honda, K., Kubo, M.: An Interaction-Based Language and Its Typing System. In: Halatsis, C., Philokyprou, G., Maritsas, D., Theodoridis, S. (eds.) PARLE 1994. LNCS, vol. 817, pp. 398–413. Springer, Heidelberg (1994)Google Scholar
  9. 9.
    Villard, J., Lozes, É., Calcagno, C.: Proving Copyless Message Passing. In: Hu, Z. (ed.) APLAS 2009. LNCS, vol. 5904, pp. 194–209. Springer, Heidelberg (2009)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  • Jules Villard
    • 1
  • Étienne Lozes
    • 1
  • Cristiano Calcagno
    • 2
    • 3
  1. 1.LSVENS Cachan, CNRS 
  2. 2.Monoidics Ltd 
  3. 3.Imperial CollegeLondon

Personalised recommendations