Abstract
Program slicing is an important decomposition technique. It has been widely used in many software activities, such as software analyzing, understanding, debugging, testing, and maintenance. The current slicing methods and tools, however, are monolithic, and mainly based on program or system dependence graph. This paper presents a novel formal tool for program slicing. It abstracts the computation of program slicing as a language-independent slice monad transformer, which can be applied to the semantic descriptions of the program in a modular way, forming the corresponding slicing algorithms. Such algorithms allow program slices to be computed directly on abstract syntax, with no need to explicitly construct intermediate structures such as dependence graphs or to record an execution history. It has reusability and language-flexibility properties in comparison with the current program slicing methods/tools.
- Binkley D., and Gallagher K. B., "Program Slicing", Advances in Computers, 43 (1996): 1--50.Google Scholar
Cross Ref
- Espinosa D., "Semantic Lego", PhD dissertation, Columbia University, Columbia, 1995. Google Scholar
Digital Library
- Gallagher K. B., and Lyle J. R., "Using Program Slicing in Software Maintenance", IEEE Transactions on Software Engineering, 17 (1991): 751--761. Google Scholar
Digital Library
- Hausler P. A., "Denotational Program Slicing", Proceeding of 22th Annual Hawaii International Conference on System Sciences, 2 (1989): 486--495.Google Scholar
- Harman M., and Hierons R. M., "An Overview of Program Slicing", Software Focus, 2 (2001): 85--92.Google Scholar
Cross Ref
- Horwitz S., Reps T., and Binkley D., "Interprocedural Slicing Using Dependence Graphs", ACM Transactions on Programming Languages and Systems, 12 (1990): 26--60. Google Scholar
Digital Library
- Hwang J. C., Du M. W., and Chou C. R., "The Influence of Language Semantics on Program Slices", Proceedings of the 1988 International Conference on Computer Languages, (1988): 120--127.Google Scholar
- Liang S., and Hudak P., "Modular Denotational Semantics for Compiler Construction", Proceeding of 6th European Synposium on Programming Languages and Systems, ESOP'96. LNCS 1058, Springer-Verlag, Berlin, (1996): 219--234. Google Scholar
Digital Library
- Liang S., Hudak P., and Jones M., "Monad Transformers and Modular Interpreters", 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL'95, ACM Press, New York, (1995): 333--343. Google Scholar
Digital Library
- Liang S., "Modular Monadic Semantics and Compilation", PhD dissertation, University of Yale, Yale, 1998. Google Scholar
Digital Library
- Labra Gayo J. E., Luengo Diez M. C., Cueva Lovelle J. M., and Cernuda del Rio A., "A Language Prototyping System Using Modular Monadic Semantics", Workshop on Language Definitions, Tools and Applications, LDTA'01, Netherlands, 2001.Google Scholar
- Labra Gayo J. E., Cueva Lovelle J. M., Luengo Diez M. C., and Gonzalez Rodriguez B. M., "A Language Prototyping Tool based on Semantic Building Blocks", The 12th Nordic Workshop on Programming Theory, Bergen-Norway, 2000.Google Scholar
- Labra Gayo J. E., Luengo Diez M. C., Cueva Lovelle J. M., and Cernuda del Rio A., "Reusable Monadic Semantics of Object Oriented Programming Languages", Proceeding of 6th Brazilian Symposium on Programming Languages, SBLP'02, PUC-Rio University, Brazil, 2002.Google Scholar
- Moggi E., "An Abstract View of Programming Languages", LFCS Report ECS-LFCS-90-113, University of Edinburgh, 1989. http://www.lfcs.nformatics.ed.ac.uk/reports/90/ECS-FCS-90-113/.Google Scholar
- Moggi E., "Notions of Computation and Monads", Information and Computation, 93 (1991): 55--92. Google Scholar
Digital Library
- Mosses P. D., "Semantics, Modularity, and Rewriting Logic", Proceeding of 2nd International Workshop on Rewriting Logic and its Applications, ENTCS 15, Elesvier Press, Netherlands, 1998.Google Scholar
- Ouarbya L., Danicic S., Daoudi M., Harman M., and Fox C., "A Denotational Interprocedural Program Slicer", Proceeding of 9th IEEE Working Conference on Reverse Engineering, IEEE Press, Virginia, (2002): 181--189. Google Scholar
Digital Library
- Ottenstein K. J., and Ottenstein L. M., "The program dependence graph in a software development environment", ACM SIGPLAN Notices, 19 (1984): 177--184. Google Scholar
Digital Library
- Papaspyrou N. S., "A Resumption Monad Transformer and its Applications in the Semantics of Concurrency", Technical Report CSD-SW-TR-2-01, National Technical University of Athens, 2001.Google Scholar
- Peterson J., Hammond K., Augustsson L., Boutel B., Burton W., Fasel J., Gordon A. D., Hughes J., Hudak P., Johnsson T., Jones M., Meijer E., Peyton Jones S. L., Reid A., Wadler P., "Report on the Programming Language Haskell 1.4, A Non-strict Purely Functional Language", Yale University Technical Report, YALEU/DCS/RR-1106, 1997.Google Scholar
- Power J., "Modularity in Denotational Semantics", Proceeding of 13th Annual Conference on Mathematical Foundations of Programming Semantics, Elsevier Press, New York, 2000.Google Scholar
- Thompson S., "Haskell: The Craft of Functional Programming", Addison-Wesley, Harlow, England, 1996. Google Scholar
Digital Library
- Tip F., "A Survey of Program Slcing Techniques", Journal of Programming Languages, 3 (1995): 121--189.Google Scholar
- Venkatesh G. A., "The Semantic Approach to Program Slicing", ACM SIGPLAN Conference on Programming Language Design and Implementation, Toronto, Canada (1991): 26--28. Google Scholar
Digital Library
- Wadler P., "Comprehending monads", ACM Conference on Lisp and Functional Programming, ACM Press, France (1990): 61--78. Google Scholar
Digital Library
- Wadler P., "The Essence of Functional Programming", Proceeding of 19th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, ACM Press, New Mexico, (1992): 1--14. Google Scholar
Digital Library
- Wadler P., "Monads for Functional Programming", Lecture Notes on Advanced Functional Programming Techniques, LNCS 925, Springer-Verlag, Berlin (1995): 24--52. Google Scholar
Digital Library
- Wansbrough K., "A Modular Monadic Action Semantics", Master thesis, University of Auckland, Auckland, 1997.Google Scholar
- Weiser M., "Program Slicing", IEEE Transaction on Software Engineering, 16 (1984): 498--509.Google Scholar
- Zhang Y. Z., and Xu B. W., "A Survey of Semantic Description Frameworks for Programming Languages", ACM SIGPLAN Notices, 39 (2004): 14--30. Google Scholar
Digital Library
- Zhang Y. Z., Xu B. W., Shi L., Li B. X., and Yang H. J., "Modular Monadic Program Slicing", The 28th Annual International Computer Software and Applications Conference, COMPSAC 2004, Hong Kong, China, 66--71. Google Scholar
Digital Library
Index Terms
A monadic program slicer
Recommendations
A Slice Monad Transformer and Its Applications in Program Slicing
ICECCS '05: Proceedings of the 10th IEEE International Conference on Engineering of Complex Computer SystemsMonad transformers, each representing a single notion of computation, can be designed once and for all. In this paper we abstract the computation of program slicing as slice monad transformer, which allows program slices to be computed on any type of ...
Optimizing the SPARK program slicer
SigAda '05: Proceedings of the 2005 annual ACM SIGAda international conference on Ada: The Engineering of Correct and Reliable Software for Real-Time & Distributed Systems using Ada and Related TechnologiesRecent trends in software re-engineering have included tools to extract program slices from existing Ada procedures. One such tool has already been developed that extracts program slices from SPARK procedures along with a proof that the functionality of ...
Modular Monadic Program Slicing
COMPSAC '04: Proceedings of the 28th Annual International Computer Software and Applications Conference - Volume 01Program slicing is widely used in applications such as program comprehension, software testing, debugging, measurement, and reengineering. This paper proposes a new approach for program slicing, called modular monadic slicing, basing on modular monadic ...






Comments