Data Structure Fusion

  • Peter Hawkins
  • Alex Aiken
  • Kathleen Fisher
  • Martin Rinard
  • Mooly Sagiv
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6461)


We consider the problem of specifying data structures with complex sharing in a manner that is both declarative and results in provably correct code. In our approach, abstract data types are specified using relational algebra and functional dependencies; a novel fuse operation on relational indexes specifies where the underlying physical data structure representation has sharing. We permit the user to specify different concrete shared representations for relations, and show that the semantics of the relational specification are preserved.


Functional Dependency Binary Tree Physical Representation Relational Algebra Tree Decomposition 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Beeri, C., Fagin, R., Howard, J.H.: A complete axiomatization for functional and multivalued dependencies in database relations. In: SIGMOD, pp. 47–61. ACM, New York (1977)Google Scholar
  2. 2.
    Berdine, J., Calcagno, C., Cook, B., Distefano, D., O’Hearn, P., Wies, T., Yang, H.: Shape analysis for composite data structures. In: Damm, W., Hermanns, H. (eds.) CAV 2007. LNCS, vol. 4590, pp. 178–192. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  3. 3.
    Bierman, G., Wren, A.: First-class relationships in an object-oriented language. In: Black, A.P. (ed.) ECOOP 2005. LNCS, vol. 3586, pp. 262–286. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  4. 4.
    Cai, J., Paige, R.: Look ma, no hashing, and no arrays neither. In: POPL, pp. 143–154 (1991)Google Scholar
  5. 5.
    Chlipala, A.J., Malecha, J.G., Morrisett, G., Shinnar, A., Wisnesky, R.: Effective interactive proofs for higher-order imperative programs. In: ICFP, pp. 79–90 (2009)Google Scholar
  6. 6.
    Codd, E.F.: A relational model of data for large shared data banks. Commun. ACM 13(6), 377–387 (1970)CrossRefzbMATHGoogle Scholar
  7. 7.
    Dewar, R.B.K., Grand, A., Liu, S.-C., Schwartz, J.T., Schonberg, E.: Programming by refinement, as exemplified by the SETL representation sublanguage. ACM Trans. Program. Lang. Syst. 1(1), 27–49 (1979)CrossRefzbMATHGoogle Scholar
  8. 8.
    Distefano, D., Parkinson, M.J.: jStar: towards practical verification for Java. In: OOPSLA, pp. 213–226 (2008)Google Scholar
  9. 9.
    Fahndrich, M., Leino, R.: Heap monotonic typestates. In: Int. Work. on Alias Confinement and Ownership (July 2003)Google Scholar
  10. 10.
    Hawkins, P., Aiken, A., Fisher, K., Rinard, M., Sagiv, M.: Data structure fusion, full (2010),
  11. 11.
    Klarlund, N., Schwartzbach, M.I.: Graph types. In: POPL, Charleston, South Carolina, pp. 196–205. ACM, New York (1993)Google Scholar
  12. 12.
    Kreiker, J., Seidl, H., Vojdani, V.: Shape analysis of low-level C with overlapping structures. In: Barthe, G., Hermenegildo, M. (eds.) VMCAI 2010. LNCS, vol. 5944, pp. 214–230. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  13. 13.
    Kuncak, V., Lam, P., Rinard, M.: Role analysis. In: POPL, pp. 17–32 (2002)Google Scholar
  14. 14.
    Lam, P., Kuncak, V., Rinard, M.C.: Generalized typestate checking for data structure consistency. In: Cousot, R. (ed.) VMCAI 2005. LNCS, vol. 3385, pp. 430–447. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  15. 15.
    Meijer, E., Beckman, B., Bierman, G.: LINQ: Reconciling objects, relations and XML in the .NET framework. In: SIGMOD, p. 706. ACM, New York (2006)Google Scholar
  16. 16.
    Olston, C., et al.: Pig Latin: A not-so-foreign language for data processing. In: SIGMOD (June 2008)Google Scholar
  17. 17.
    Paige, R., Henglein, F.: Mechanical translation of set theoretic problem specifications into efficient RAM code. J. Sym. Com. 4(2), 207–232 (1987)MathSciNetCrossRefzbMATHGoogle Scholar
  18. 18.
    J. C. Reynolds. Separation logic: A logic for shared mutable data structures. In LICS (2002) (invited paper)Google Scholar
  19. 19.
    Rothamel, T., Liu, Y.A.: Efficient implementation of tuple pattern based retrieval. In: PEPM, pp. 81–90. ACM, New York (2007)CrossRefGoogle Scholar
  20. 20.
    Schonberg, E., Schwartz, J.T., Sharir, M.: Automatic data structure selection in SETL. In: POPL, pp. 197–210 (1979)Google Scholar
  21. 21.
    Shacham, O., Vechev, M., Yahav, E.: Chameleon: adaptive selection of collections. In: PLDI, pp. 408–418 (2009)Google Scholar
  22. 22.
    Zee, K., Kuncak, V., Rinard, M.C.: Full functional verification of linked data structures. In: PLDI, pp. 349–361 (2008)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  • Peter Hawkins
    • 1
  • Alex Aiken
    • 1
  • Kathleen Fisher
    • 2
  • Martin Rinard
    • 3
  • Mooly Sagiv
    • 4
  1. 1.Stanford UniversityUSA
  2. 2.AT&T Labs ResearchUSA
  3. 3.MITUSA
  4. 4.Tel Aviv UniversityIsrael

Personalised recommendations