Modular Monadic Slicing in the Presence of Pointers

  • Zhongqiang Wu
  • Yingzhou Zhang
  • Baowen Xu
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3994)


Program slicing is a family of program decomposition techniques. For traditional slicing methods lack modularity and flexibility, we have proposed a new formal method for program slicing—modular monadic slicing. This paper presents an approach to extend the modular monadic slicing for handling pointers. With the inspiration of forward program slicing, our approach obtains the point-to information through the data-flow iteration. By combining the forward monad slicing with data-flow iteration, our method computes the point-to information and slices the program in the same phase. So our approach has the same precision as traditional data-flow iteration methods, but needs less space. In addition, our approach also inherits the properties of language independence and reusability from the original monadic slicing method.


Abstract Syntax Semantic Description Extended Algorithm Program Language Design Program Slice 
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.
    Weiser, M.: Program slicing. IEEE Transactions on Software Engineering 16(5), 498–509 (1984)Google Scholar
  2. 2.
    Binkley, D., Gallagher, K.B.: Program slicing. Advances in Computers 43, 1–50 (1996)CrossRefGoogle Scholar
  3. 3.
    Song, Y., Huynh, D.: Forward dynamic object-oriented program slicing. In: Application- Specific Systems and Software Engineering and Technology (ASSET 1999), pp. 230–237. IEEE CS Press, Los Alamitos (1999)Google Scholar
  4. 4.
    Yingzhou, Z., Baowen, X., et al.: Modular Monadic Program Slicing. In: COMPSAC 2004, Hong Kong, China, pp. 66–71 (2004)Google Scholar
  5. 5.
    Liang, S., Hudak, P., Jones, M.: Monad transformers and modular interpreters. In: The 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 1995, pp. 333–343. ACM Press, New York (1995)CrossRefGoogle Scholar
  6. 6.
    Burke, M., Carini, P., Choi, J.-D., Hind, M.: Flow-insensitive interprocedural alias analysis in the presence of pointers. In: Pingali, K.K., Gelernter, D., Padua, D.A., Banerjee, U., Nicolau, A. (eds.) LCPC 1994. LNCS, vol. 892. Springer, Heidelberg (1995)CrossRefGoogle Scholar
  7. 7.
    Wadler, P.: Comprehending monads. In: ACM Conference on Lisp and Functional Programming, pp. 61–78 (1990)Google Scholar
  8. 8.
    Steensgaard, B.: Points-to analysis in almost linear time. In: 23rd Annual ACM SIGACT-SIGPLAN POPL, January 1996, pp. 32–41 (1996)Google Scholar
  9. 9.
    Horwitz, S., Pfeiffer, P., Reps, T.: Dependence analysis for pointer variables. In: Proceedings of the SIGPLAN Conference on Programming Language Design and Implementation, June 1989, pp. 28–40 (1989)Google Scholar
  10. 10.
    Chase, D.R., Wegman, M., Kenneth Zadek, F.: Analysis of pointers and structures. In: Proceedings of the SIGPLAN 1990 Conference on Program Language Design and Implementation, White Plains, NY, June 1990, pp. 296–310 (1990)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Zhongqiang Wu
    • 1
  • Yingzhou Zhang
    • 2
  • Baowen Xu
    • 1
  1. 1.Dep. of Computer Science and EngineeringSoutheast Univ.NanjingChina
  2. 2.College of ComputerNanjing Univ. of Posts and TelecommunicationsNanjingChina

Personalised recommendations