×

A non-standard semantics for program slicing and dependence analysis. (English) Zbl 1119.68110

Summary: We introduce a new non-strict semantics for a simple while language. We demonstrate that this semantics allows us to give a denotational definition of variable dependence and neededness, which is consistent with program slicing. Unlike other semantics used in variable dependence, our semantics is substitutive. We prove that our semantics is preserved by traditional slicing algorithms.

MSC:

68Q55 Semantics in the theory of computing
68N99 Theory of software
Full Text: DOI

References:

[3] Weiser, M., Programmers use slicing when debugging, Commun. ACM, 25, 7, 446-452 (1982)
[4] Weiser, M., Program slicing, IEEE Trans. Software Eng., 10, 4, 352-357 (1984) · Zbl 0552.68004
[5] Canfora, G.; Cimitile, A.; Munro, M., \(RE^2\): Reverse engineering and reuse re-engineering, J. Software Mainten.: Res. Practice, 6, 2, 53-72 (1994)
[6] Simpson, D.; Valentine, S. H.; Mitchell, R.; Liu, L.; Ellis, R., Recoup - Maintaining Fortran, ACM Fortran Forum, 12, 3, 26-32 (1993)
[8] Harman, M.; Hierons, R. M.; Danicic, S.; Howroyd, J.; Fox, C., Pre/post conditioned slicing, (IEEE International Conference on Software Maintenance (ICSM’01) (2001), IEEE Computer Society Press: IEEE Computer Society Press Los Alamitos, CA, USA, Florence, Italy), 138-147
[9] Canfora, G.; Cimitile, A.; De Lucia, A.; Lucca, G. A.D., Software salvaging based on conditions, (International Conference on Software Maintenance (ICSM’96) (1994), IEEE Computer Society Press: IEEE Computer Society Press Los Alamitos, CA, USA, Victoria, Canada), 424-433
[10] Cimitile, A.; De Lucia, A.; Munro, M., A specification driven slicing process for identifying reusable functions, Software Mainten.: Res. Practice, 8, 145-178 (1996)
[11] Gallagher, K. B., Evaluating the surgeon’s assistant: results of a pilot study, (Proceedings of the International Conference on Software Maintenance (1992), IEEE Computer Society Press: IEEE Computer Society Press Los Alamitos, CA, USA), 236-244
[12] Gallagher, K. B.; Lyle, J. R., Using program slicing in software maintenance, IEEE Trans. Software Eng., 17, 8, 751-761 (1991)
[13] Agrawal, H.; DeMillo, R. A.; Spafford, E. H., Debugging with dynamic slicing and backtracking, Software Practice Exper., 23, 6, 589-616 (1993)
[15] Lyle, J. R.; Weiser, M., Automatic program bug location by program slicing, (2nd International Conference on Computers and Applications (1987), IEEE Computer Society Press: IEEE Computer Society Press Los Alamitos, CA, USA, Peking), 877-882
[16] Binkley, D. W., The application of program slicing to regression testing, (Harman, M.; Gallagher, K., Information and Software Technology Special Issue on Program Slicing, vol. 40 (1998), Elsevier), 583-594
[17] Gupta, R.; Harrold, M. J.; Soffa, M. L., An approach to regression testing using slicing, (Proceedings of the IEEE Conference on Software Maintenance (1992), IEEE Computer Society Press: IEEE Computer Society Press Los Alamitos, CA, USA, Orlando, FL, USA), 299-308
[18] Harman, M.; Danicic, S., Using program slicing to simplify testing, Software Test. Verif. Reliab., 5, 3, 143-162 (1995)
[19] Hierons, R. M.; Harman, M.; Danicic, S., Using program slicing to assist in the detection of equivalent mutants, Software Test. Verif. Reliab., 9, 4, 233-262 (1999)
[20] Hierons, R. M.; Harman, M.; Fox, C.; Ouarbya, L.; Daoudi, M., Conditioned slicing supports partition testing, Software Test. Verif. Reliab., 12, 23-28 (2002)
[21] Beck, J.; Eichmann, D., Program and interface slicing for reverse engineering, (IEEE/ACM 15th Conference on Software Engineering (ICSE’93) (1993), IEEE Computer Society Press: IEEE Computer Society Press Los Alamitos, CA, USA), 509-518
[22] Cimitile, A.; De Lucia, A.; Munro, M., Identifying reusable functions using specification driven program slicing: a case study, (Proceedings of the IEEE International Conference on Software Maintenance (ICSM’95) (1995), IEEE Computer Society Press: IEEE Computer Society Press Los Alamitos, CA, USA, Nice, France), 124-133
[23] Binkley, D. W.; Horwitz, S.; Reps, T., Program integration for languages with procedure calls, ACM Trans. Software Eng. Method., 4, 1, 3-35 (1995)
[24] Horwitz, S.; Prins, J.; Reps, T., Integrating non-interfering versions of programs, ACM Trans. Program. Lang. Syst., 11, 3, 345-387 (1989)
[25] Bieman, J. M.; Ott, L. M., Measuring functional cohesion, IEEE Trans. Software Eng., 20, 8, 644-657 (1994)
[27] Ott, L. M.; Thuss, J. J., Slice based metrics for estimating cohesion, (Proceedings of the IEEE-CS International Metrics Symposium (1993), IEEE Computer Society Press: IEEE Computer Society Press Los Alamitos, CA, USA, Baltimore, MD, USA), 71-81
[28] Binkley, D. W.; Gallagher, K. B., Program slicing, (Zelkowitz, M., Advances in Computing, vol. 43 (1996), Academic Press), 1-50
[29] De Lucia, A., Program slicing: methods and applications, (1st IEEE International Workshop on Source Code Analysis and Manipulation (2001), IEEE Computer Society Press: IEEE Computer Society Press Los Alamitos, CA, USA, Florence, Italy), 142-149
[30] Harman, M.; Hierons, R. M., An overview of program slicing, Software Focus, 2, 3, 85-92 (2001)
[31] Tip, F., A survey of program slicing techniques, J. Program. Lang., 3, 3, 121-189 (1995)
[34] Ferrante, J.; Ottenstein, K. J.; Warren, J. D., The program dependence graph and its use in optimization, ACM Trans. Program. Lang. Syst., 9, 3, 319-349 (1987) · Zbl 0623.68012
[36] Giacobazzi, R.; Mastroeni, I., Non-standard semantics for program slicing, Higher-Order Symbol. Comput. (HOSC), 16, 4, 297-339 (2003) · Zbl 1074.68034
[37] Kennaway, J.; Klop, J.; Sleep, M.; Vries, F., Transfinite reduction in orthogonal term rewriting systems, Inform. Comput., 119, 1, 18-38 (1995) · Zbl 0832.68063
[39] Binkley, D. W., Computing amorphous program slices using dependence graphs and a data-flow model, (ACM Symposium on Applied Computing (1999), ACM Press: ACM Press New York, NY, USA, The Menger, San Antonio, TX, USA), 519-525
[41] Stoy, J. E., Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory (1985), MIT Press · Zbl 0503.68059
[42] Schmidt, D. A., Denotational Semantics: A Methodology for Language Development (1986), Allyn and Bacons
[43] Manna, Z., Mathematical Theory of Computation (1974), McGraw-Hill · Zbl 0353.68066
[45] Apt, K. R.; Olderog, E.-R., Verification of Sequential and Concurrent Programs (1997), Springer-Verlag New York, Inc.: Springer-Verlag New York, Inc. Secaucus, NJ, USA · Zbl 0869.68064
[46] Reps, T. W.; Yang, W., The semantics of program slicing and program integration, (TAPSOFT ’89: Proceedings of the International Joint Conference on Theory and Practice of Software Development, vol. 2 (1989), Springer-Verlag: Springer-Verlag London, UK), 360-374
This reference list is based on information provided by the publisher or from digital mathematics libraries. Its items are heuristically matched to zbMATH identifiers and may contain data conversion errors. In some cases that data have been complemented/enhanced by data from zbMATH Open. This attempts to reflect the references listed in the original paper as accurately as possible without claiming completeness or a perfect matching.