Skip to main content

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 7335))

Included in the following conference series:

Abstract

Using type systems, this paper treats heap slicing which is a technique transforming a program into a new one that produces the same result while working on a heap sliced into independent regions. Heap slicing is a common approach to handle the problem of modifying the heap layout without changing the program semantics. Heap slicing has applications in the areas of performance optimization and security.

Towards solving the problem of heap slicing, this paper introduces three type systems. The first type system does a pointer analysis and annotates program points with pointer information. This type system is an augmentation of a previously developed type system by the author. The second type system does a region analysis and refines the result of the first type system by augmenting the pointer information with region information. The region information approximately specifies at each program point for each memory cell the region where the cell exists. The third type system uses the information gathered by the region type system to do the principal transformation of heap slicing.

The paper also presents two operational semantics; one for single-region heap scenario and the other for multi-regions heap scenario. These semantics are used to prove the soundness of the type systems.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Barraclough, R.W., Binkley, D., Danicic, S., Harman, M., Hierons, R.M., Kiss, Á., Laurence, M., Ouarbya, L.: A trajectory-based strict semantics for program slicing. Theor. Comput. Sci. 411(11-13), 1372–1386 (2010)

    Article  MathSciNet  MATH  Google Scholar 

  2. Carrillo, S., Siegel, J., Li, X.: A control-structure splitting optimization for gpgpu. In: Johnson, G., Trinitis, C., Gaydadjiev, G., Veidenbaum, A.V. (eds.) Conf. Computing Frontiers, pp. 147–150. ACM (2009)

    Google Scholar 

  3. Chen, C.-L., Lin, S.-H.: Formulating and solving a class of optimization problems for high-performance gray world automatic white balance. Appl. Soft Comput. 11(1), 523–533 (2011)

    Article  Google Scholar 

  4. Cheney, J.: Program slicing and data provenance. IEEE Data Eng. Bull. 30(4), 22–28 (2007)

    Google Scholar 

  5. Chilimbi, T.M., Davidson, B., Larus, J.R.: Cache-conscious structure definition. In: PLDI, pp. 13–24 (1999)

    Google Scholar 

  6. Condit, J., Necula, G.C.: Data Slicing: Separating the Heap into Independent Regions. In: Bodik, R. (ed.) CC 2005. LNCS, vol. 3443, pp. 172–187. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  7. Crary, K., Weirich, S., Gregory Morrisett, J.: Intensional polymorphism in type-erasure semantics. J. Funct. Program. 12(6), 567–600 (2002)

    Article  MATH  Google Scholar 

  8. Duggan, D.: Dynamic typing for distributed programming in polymorphic languages. ACM Trans. Program. Lang. Syst. 21(1), 11–45 (1999)

    Article  Google Scholar 

  9. El-Zawawy, M., Daoud, N.: New error-recovery techniques for faulty-calls of functions. Computer and Information Science 4(3) (May 2012)

    Google Scholar 

  10. El-Zawawy, M.A.: Semantic spaces in Priestley form. PhD thesis, University of Birmingham, UK (January 2007)

    Google Scholar 

  11. El-Zawawy, M.A.: Flow Sensitive-Insensitive Pointer Analysis Based Memory Safety for Multithreaded Programs. In: Murgante, B., Gervasi, O., Iglesias, A., Taniar, D., Apduhan, B.O. (eds.) ICCSA 2011, Part V. LNCS, vol. 6786, pp. 355–369. Springer, Heidelberg (2011)

    Chapter  Google Scholar 

  12. El-Zawawy, M.A.: Probabilistic pointer analysis for multithreaded programs. ScienceAsia 37(4) (December 2011)

    Google Scholar 

  13. El-Zawawy, M.A.: Program optimization based pointer analysis and live stack-heap analysis. International Journal of Computer Science Issues 8(2) (March 2011)

    Google Scholar 

  14. El-Zawawy, M.A.: Dead code elimination based pointer analysis for multithreaded programs. Journal of the Egyptian Mathematical Society (January 2012), doi:10.1016/j.joems.2011.12.011

    Google Scholar 

  15. El-Zawawy, M.A., Jung, A.: Priestley duality for strong proximity lattices. Electr. Notes Theor. Comput. Sci. 158, 199–217 (2006)

    Article  Google Scholar 

  16. El-Zawawy, M.A., Nayel, H.A.: Partial redundancy elimination for multi-threaded programs. IJCSNS International Journal of Computer Science and Network Security 11(10) (October 2011)

    Google Scholar 

  17. Harper, R., Gregory Morrisett, J.: Compiling polymorphism using intensional type analysis. In: POPL, pp. 130–141 (1995)

    Google Scholar 

  18. Gaikovina Kula, R., Fushida, K., Kawaguchi, S., Iida, H.: Analysis of Bug Fixing Processes Using Program Slicing Metrics. In: Ali Babar, M., Vierimaa, M., Oivo, M. (eds.) PROFES 2010. LNCS, vol. 6156, pp. 32–46. Springer, Heidelberg (2010)

    Chapter  Google Scholar 

  19. George, C.: Proof-carrying code. In: Henk, C., van Tilborg, H.C.A., Jajodia, S. (eds.) Encyclopedia of Cryptography and Security, 2nd edn., pp. 984–986. Springer (2011)

    Google Scholar 

  20. Nielson, F., Nielson, H.R., Hankin, C.L.: Principles of Program Analysis. Springer (1999); second printing (2005)

    Google Scholar 

  21. Pettie, S.: Splay trees, davenport-schinzel sequences, and the deque conjecture. In: Teng, S.-H. (ed.) SODA, pp. 1115–1124. SIAM (2008)

    Google Scholar 

  22. Pfenning, F., Caires, L., Toninho, B.: Proof-Carrying Code in a Session-Typed Process Calculus. In: Jouannaud, J.-P., Shao, Z. (eds.) CPP 2011. LNCS, vol. 7086, pp. 21–36. Springer, Heidelberg (2011)

    Chapter  Google Scholar 

  23. Prasad, S., Arun-Kumar, S.: Introduction to operational semantics. In: The Compiler Design Handbook, pp. 841–890 (2002)

    Google Scholar 

  24. Reynolds, J.C.: Separation logic: A logic for shared mutable data structures. In: Symposium on Logic in Computer Science, p. 55 (2002)

    Google Scholar 

  25. Sasirekha, N., Edwin Robert, A., Hemalatha, M.: Program slicing techniques and its applications. CoRR, abs/1108.1352 (2011)

    Google Scholar 

  26. Tip, F.: A survey of program slicing techniques. J. Prog. Lang. 3(3) (1995)

    Google Scholar 

  27. Weiser, M.: Program slicing. IEEE Trans. Software Eng. 10(4), 352–357 (1984)

    Article  MATH  Google Scholar 

  28. Xin, B., Zhang, X.: Memory slicing. In: Rothermel, G., Dillon, L.K. (eds.) ISSTA, pp. 165–176. ACM (2009)

    Google Scholar 

  29. Ye, X., Li, P.: Parallel program performance modeling for runtime optimization of multi-algorithm circuit simulation. In: Sapatnekar, S.S. (ed.) DAC, pp. 561–566. ACM (2010)

    Google Scholar 

  30. Zhang, S., Cui, Z., Gong, S.-R., Liu, Q., Fan, J.-X.: A data aggregation algorithm based on splay tree for wireless sensor networks. JCP 5(4), 492–499 (2010)

    Google Scholar 

  31. Zhang, X., Gupta, R., Zhang, Y.: Cost and precision tradeoffs of dynamic data slicing algorithms. ACM Trans. Program. Lang. Syst. 27(4), 631–661 (2005)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2012 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

El-Zawawy, M.A. (2012). Heap Slicing Using Type Systems. In: Murgante, B., et al. Computational Science and Its Applications – ICCSA 2012. ICCSA 2012. Lecture Notes in Computer Science, vol 7335. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-31137-6_45

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-31137-6_45

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-31136-9

  • Online ISBN: 978-3-642-31137-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics