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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
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)
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)
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)
Cheney, J.: Program slicing and data provenance. IEEE Data Eng. Bull. 30(4), 22–28 (2007)
Chilimbi, T.M., Davidson, B., Larus, J.R.: Cache-conscious structure definition. In: PLDI, pp. 13–24 (1999)
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)
Crary, K., Weirich, S., Gregory Morrisett, J.: Intensional polymorphism in type-erasure semantics. J. Funct. Program. 12(6), 567–600 (2002)
Duggan, D.: Dynamic typing for distributed programming in polymorphic languages. ACM Trans. Program. Lang. Syst. 21(1), 11–45 (1999)
El-Zawawy, M., Daoud, N.: New error-recovery techniques for faulty-calls of functions. Computer and Information Science 4(3) (May 2012)
El-Zawawy, M.A.: Semantic spaces in Priestley form. PhD thesis, University of Birmingham, UK (January 2007)
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)
El-Zawawy, M.A.: Probabilistic pointer analysis for multithreaded programs. ScienceAsia 37(4) (December 2011)
El-Zawawy, M.A.: Program optimization based pointer analysis and live stack-heap analysis. International Journal of Computer Science Issues 8(2) (March 2011)
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
El-Zawawy, M.A., Jung, A.: Priestley duality for strong proximity lattices. Electr. Notes Theor. Comput. Sci. 158, 199–217 (2006)
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)
Harper, R., Gregory Morrisett, J.: Compiling polymorphism using intensional type analysis. In: POPL, pp. 130–141 (1995)
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)
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)
Nielson, F., Nielson, H.R., Hankin, C.L.: Principles of Program Analysis. Springer (1999); second printing (2005)
Pettie, S.: Splay trees, davenport-schinzel sequences, and the deque conjecture. In: Teng, S.-H. (ed.) SODA, pp. 1115–1124. SIAM (2008)
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)
Prasad, S., Arun-Kumar, S.: Introduction to operational semantics. In: The Compiler Design Handbook, pp. 841–890 (2002)
Reynolds, J.C.: Separation logic: A logic for shared mutable data structures. In: Symposium on Logic in Computer Science, p. 55 (2002)
Sasirekha, N., Edwin Robert, A., Hemalatha, M.: Program slicing techniques and its applications. CoRR, abs/1108.1352 (2011)
Tip, F.: A survey of program slicing techniques. J. Prog. Lang. 3(3) (1995)
Weiser, M.: Program slicing. IEEE Trans. Software Eng. 10(4), 352–357 (1984)
Xin, B., Zhang, X.: Memory slicing. In: Rothermel, G., Dillon, L.K. (eds.) ISSTA, pp. 165–176. ACM (2009)
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)
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)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)