{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,9,28]],"date-time":"2025-09-28T04:16:38Z","timestamp":1759032998806},"reference-count":70,"publisher":"Elsevier BV","issue":"1","license":[{"start":{"date-parts":[[2003,10,1]],"date-time":"2003-10-01T00:00:00Z","timestamp":1064966400000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.elsevier.com\/tdm\/userlicense\/1.0\/"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Journal of Systems and Software"],"published-print":{"date-parts":[[2003,10]]},"DOI":"10.1016\/s0164-1212(02)00135-8","type":"journal-article","created":{"date-parts":[[2003,6,3]],"date-time":"2003-06-03T00:12:50Z","timestamp":1054599170000},"page":"45-64","source":"Crossref","is-referenced-by-count":71,"title":["Amorphous program slicing"],"prefix":"10.1016","volume":"68","author":[{"given":"Mark","family":"Harman","sequence":"first","affiliation":[]},{"given":"David","family":"Binkley","sequence":"additional","affiliation":[]},{"given":"Sebastian","family":"Danicic","sequence":"additional","affiliation":[]}],"member":"78","reference":[{"key":"10.1016\/S0164-1212(02)00135-8_BIB1","doi-asserted-by":"crossref","unstructured":"Agrawal, H., 1994. On slicing programs with jump statements. In: ACM SIGPLAN Conference on Programming Language Design and Implementation, Orlando, Florida. Proceedings in SIGPLAN Notices, 29(6), June 1994, pp. 302\u2013312","DOI":"10.1145\/773473.178456"},{"key":"10.1016\/S0164-1212(02)00135-8_BIB2","unstructured":"Ahn, J., Han, T., 1999. Static slicing of a first-order functional language based on operational semantics. Technical Report CS-TR-99-144, KAIST: Korean Advanced Institute of Science and Technology"},{"key":"10.1016\/S0164-1212(02)00135-8_BIB3","unstructured":"Andersen, L.O., 1994. Program Analysis and Specialization for the C Programming Language. PhD thesis, DIKU, University of Copenhagen. (DIKU report 94\/19)"},{"key":"10.1016\/S0164-1212(02)00135-8_BIB4","first-page":"250","article-title":"The translation of goto programs into while programs","volume":"vol. 1","author":"Ashcroft","year":"1972"},{"key":"10.1016\/S0164-1212(02)00135-8_BIB5","series-title":"First Conference on Automated Algorithmic Debugging, Link\u00f6ping, Sweden","first-page":"206","article-title":"Slicing programs with arbitrary control-flow","author":"Ball","year":"1993"},{"key":"10.1016\/S0164-1212(02)00135-8_BIB6","series-title":"IEEE\/ACM 15th Conference on Software Engineering (ICSE\u201993)","first-page":"509","article-title":"Program and interface slicing for reverse engineering","author":"Beck","year":"1993"},{"issue":"8","key":"10.1016\/S0164-1212(02)00135-8_BIB7","doi-asserted-by":"crossref","first-page":"644","DOI":"10.1109\/32.310673","article-title":"Measuring functional cohesion","volume":"20","author":"Bieman","year":"1994","journal-title":"IEEE Transactions on Software Engineering"},{"issue":"1\u20134","key":"10.1016\/S0164-1212(02)00135-8_BIB8","doi-asserted-by":"crossref","first-page":"31","DOI":"10.1145\/176454.176473","article-title":"Precise executable interprocedural slices","volume":"2","author":"Binkley","year":"1993","journal-title":"ACM Letters on Programming Languages and Systems"},{"key":"10.1016\/S0164-1212(02)00135-8_BIB9","first-page":"374","article-title":"Interprocedural constant propagation using dependence graphs and a data-flow model","volume":"vol. 786","author":"Binkley","year":"1994"},{"issue":"8","key":"10.1016\/S0164-1212(02)00135-8_BIB10","doi-asserted-by":"crossref","first-page":"498","DOI":"10.1109\/32.624306","article-title":"Semantics guided regression test cost reduction","volume":"23","author":"Binkley","year":"1997","journal-title":"IEEE Transactions on Software Engineering"},{"key":"10.1016\/S0164-1212(02)00135-8_BIB11","first-page":"583","article-title":"The application of program slicing to regression testing","volume":"vol. 40","author":"Binkley","year":"1998"},{"key":"10.1016\/S0164-1212(02)00135-8_BIB12","series-title":"ACM Symposium on Applied Computing","first-page":"519","article-title":"Computing amorphous program slices using dependence graphs and a data-flow model","author":"Binkley","year":"1999"},{"key":"10.1016\/S0164-1212(02)00135-8_BIB13","first-page":"1","article-title":"Program slicing","volume":"vol. 43","author":"Binkley","year":"1996"},{"issue":"1","key":"10.1016\/S0164-1212(02)00135-8_BIB14","doi-asserted-by":"crossref","first-page":"3","DOI":"10.1145\/201055.201056","article-title":"Program integration for languages with procedure calls","volume":"4","author":"Binkley","year":"1995","journal-title":"ACM Transactions on Software Engineering and Methodology"},{"key":"10.1016\/S0164-1212(02)00135-8_BIB15","series-title":"8th IEEE International Workshop on Program Comprehension, IWPC 2000, Limerick, Ireland","first-page":"161","article-title":"An empirical study of amorphous slicing as a program comprehension support tool","author":"Binkley","year":"2000"},{"key":"10.1016\/S0164-1212(02)00135-8_BIB16","first-page":"595","article-title":"Conditioned program slicing","volume":"vol. 40","author":"Canfora","year":"1998"},{"key":"10.1016\/S0164-1212(02)00135-8_BIB17","doi-asserted-by":"crossref","unstructured":"Cartwright, R., Felleisen, M., 1989. The semantics of program dependence. In: ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 13\u201327","DOI":"10.1145\/73141.74820"},{"issue":"4","key":"10.1016\/S0164-1212(02)00135-8_BIB18","doi-asserted-by":"crossref","first-page":"1097","DOI":"10.1145\/183432.183438","article-title":"Static slicing in the presence of goto statements","volume":"16","author":"Choi","year":"1994","journal-title":"ACM Transactions on Programming Languages and Systems"},{"key":"10.1016\/S0164-1212(02)00135-8_BIB19","doi-asserted-by":"crossref","first-page":"145","DOI":"10.1002\/(SICI)1096-908X(199605)8:3<145::AID-SMR127>3.0.CO;2-9","article-title":"A specification driven slicing process for identifying reusable functions","volume":"8","author":"Cimitile","year":"1996","journal-title":"Software maintenance: Research and Practice"},{"key":"10.1016\/S0164-1212(02)00135-8_BIB20","series-title":"22nd International Conference on Software Engineering (ICSE\u20192000)","first-page":"439","article-title":"Bandera: Extracting finite-state models from java source code","author":"Corbett","year":"2000"},{"key":"10.1016\/S0164-1212(02)00135-8_BIB21","unstructured":"Das, M., 1998. Partial evaluation using dependence graphs. PhD thesis, University of Wisconsin, Madison"},{"key":"10.1016\/S0164-1212(02)00135-8_BIB22","series-title":"4th IEEE Workshop on Program Comprehension, Berlin, Germany","first-page":"9","article-title":"Understanding function behaviours through program slicing","author":"De Lucia","year":"1996"},{"key":"10.1016\/S0164-1212(02)00135-8_BIB23","unstructured":"Ernst, M.D., 1994. Practical fine\u2013grained static slicing of optimised code. Technical Report MSR-TR-94-14, Microsoft research, Redmond, WA"},{"issue":"3","key":"10.1016\/S0164-1212(02)00135-8_BIB24","doi-asserted-by":"crossref","first-page":"319","DOI":"10.1145\/24039.24041","article-title":"The program dependence graph and its use in optimization","volume":"9","author":"Ferrante","year":"1987","journal-title":"ACM Transactions on Programming Languages and Systems"},{"key":"10.1016\/S0164-1212(02)00135-8_BIB25","first-page":"1","article-title":"Identifying procedural structure in cobol programs","author":"Field","year":"1999"},{"key":"10.1016\/S0164-1212(02)00135-8_BIB26","unstructured":"Fischer, C.N., LeBlanc, R.J., 1988. Crafting a Compiler. Benjamin\/Cummings Series in Computer Science. Benjamin\/Cummings Publishing Company, Menlo Park, CA"},{"issue":"8","key":"10.1016\/S0164-1212(02)00135-8_BIB27","doi-asserted-by":"crossref","first-page":"751","DOI":"10.1109\/32.83912","article-title":"Using program slicing in software maintenance","volume":"17","author":"Gallagher","year":"1991","journal-title":"IEEE Transactions on Software Engineering"},{"issue":"3","key":"10.1016\/S0164-1212(02)00135-8_BIB28","doi-asserted-by":"crossref","first-page":"525","DOI":"10.1145\/256167.256394","article-title":"Slicing real-time programs for enhanced schedulability","volume":"19","author":"Gerber","year":"1997","journal-title":"ACM Transactions on Programming Languages and Systems"},{"key":"10.1016\/S0164-1212(02)00135-8_BIB29","doi-asserted-by":"crossref","unstructured":"Gouranton, V., 1998. Deriving analysers by folding&sol;unfolding of natural semantics and a case study: Slicing. Technical Report RR-3413, Inria, Institut National de Recherche en Informatique et en Automatique","DOI":"10.1007\/3-540-49727-7_7"},{"key":"10.1016\/S0164-1212(02)00135-8_BIB30","series-title":"Proceedings of the IEEE Conference on Software Maintenance, Orlando, Florida, USA","first-page":"299","article-title":"An approach to regression testing using slicing","author":"Gupta","year":"1992"},{"key":"10.1016\/S0164-1212(02)00135-8_BIB31","unstructured":"Gyim\u00f3thy, T., Paakki, J., 1995. Static slicing of logic programs. In: Ducass\u00e9, M., (Ed.), AADEBUG, 2nd International Workshop on Automated and Algorithmic Debugging, Saint Malo, France. IRISA-CNRS, pp. 87\u2013103"},{"issue":"11","key":"10.1016\/S0164-1212(02)00135-8_BIB32","doi-asserted-by":"crossref","first-page":"42","DOI":"10.1145\/165564.165574","article-title":"Projecting functional models of imperative programs","volume":"28","author":"Harman","year":"1993","journal-title":"ACM SIGPLan Notices"},{"issue":"3","key":"10.1016\/S0164-1212(02)00135-8_BIB33","doi-asserted-by":"crossref","first-page":"143","DOI":"10.1002\/stvr.4370050303","article-title":"Using program slicing to simplify testing","volume":"5","author":"Harman","year":"1995","journal-title":"Software Testing, Verification and Reliability"},{"key":"10.1016\/S0164-1212(02)00135-8_BIB34","series-title":"5th IEEE International Workshop on Program Comprehension (IWPC\u201997), Dearborn, Michigan, USA","first-page":"70","article-title":"Amorphous program slicing","author":"Harman","year":"1997"},{"issue":"3","key":"10.1016\/S0164-1212(02)00135-8_BIB35","doi-asserted-by":"crossref","first-page":"85","DOI":"10.1002\/swf.41","article-title":"An overview of program slicing","volume":"2","author":"Harman","year":"2001","journal-title":"Software Focus"},{"key":"10.1016\/S0164-1212(02)00135-8_BIB36","series-title":"7th IEEE International Workshop on Program Comprehension","first-page":"208","article-title":"Program simplification as a means of approximating undecidable propositions","author":"Harman","year":"1999"},{"key":"10.1016\/S0164-1212(02)00135-8_BIB37","series-title":"1st Workshop on Analysis, Slicing, and Transformation, AST 2001, Stuttgart","first-page":"271","article-title":"An amorphous slicing system which combines slicing and transformation","author":"Harman","year":"2001"},{"key":"10.1016\/S0164-1212(02)00135-8_BIB38","series-title":"9th IEEE, International Workshop on Program Comprehension","first-page":"310","article-title":"Side-effect removal transformation","author":"Harman","year":"2001"},{"issue":"4","key":"10.1016\/S0164-1212(02)00135-8_BIB39","doi-asserted-by":"crossref","first-page":"233","DOI":"10.1002\/(SICI)1099-1689(199912)9:4<233::AID-STVR191>3.0.CO;2-3","article-title":"Using program slicing to assist in the detection of equivalent mutants","volume":"9","author":"Hierons","year":"1999","journal-title":"Software Testing, Verification and Reliability"},{"key":"10.1016\/S0164-1212(02)00135-8_BIB40","doi-asserted-by":"crossref","first-page":"23","DOI":"10.1002\/stvr.232","article-title":"Conditioned slicing supports partition testing","volume":"12","author":"Hierons","year":"2002","journal-title":"Software Testing, Verification and Reliability"},{"issue":"3","key":"10.1016\/S0164-1212(02)00135-8_BIB41","doi-asserted-by":"crossref","first-page":"345","DOI":"10.1145\/65979.65980","article-title":"Integrating non-interfering versions of programs","volume":"11","author":"Horwitz","year":"1989","journal-title":"ACM Transactions on Programming Languages and Systems"},{"issue":"1","key":"10.1016\/S0164-1212(02)00135-8_BIB42","doi-asserted-by":"crossref","first-page":"26","DOI":"10.1145\/77606.77608","article-title":"Interprocedural slicing using dependence graphs","volume":"12","author":"Horwitz","year":"1990","journal-title":"ACM Transactions on Programming Languages and Systems"},{"key":"10.1016\/S0164-1212(02)00135-8_BIB43","doi-asserted-by":"crossref","unstructured":"Kamkar, M., 1993. Interprocedural dynamic slicing with applications to debugging and testing. PhD Thesis, Department of Computer Science and Information Science, Link\u00f6ping University, Sweden. Available as Link\u00f6ping Studies in Science and Technology, Dissertations, no. 297","DOI":"10.1016\/0165-6074(93)90203-W"},{"issue":"3","key":"10.1016\/S0164-1212(02)00135-8_BIB44","doi-asserted-by":"crossref","first-page":"155","DOI":"10.1016\/0020-0190(88)90054-3","article-title":"Dynamic program slicing","volume":"29","author":"Korel","year":"1988","journal-title":"Information Processing Letters"},{"key":"10.1016\/S0164-1212(02)00135-8_BIB45","first-page":"661","article-title":"Validation of measurement software as an application of slicing and constraint solving","volume":"vol. 40","author":"Krinke","year":"1998"},{"key":"10.1016\/S0164-1212(02)00135-8_BIB46","doi-asserted-by":"crossref","unstructured":"Lakhotia, A., 1993. Rule\u2013based approach to computing module cohesion. In: Proceedings of the 15th Conference on Software Engineering (ICSE-15), pp. 34\u201344","DOI":"10.1109\/ICSE.1993.346057"},{"key":"10.1016\/S0164-1212(02)00135-8_BIB47","first-page":"677","article-title":"Restructuring programs by tucking statements into functions","volume":"vol. 40","author":"Lakhotia","year":"1998"},{"key":"10.1016\/S0164-1212(02)00135-8_BIB48","first-page":"37","article-title":"SUIF explorer: An interactive and interprocedural parallelizer","volume":"vol. 34.8 of ACM Sigplan Notices","author":"Liao","year":"1999"},{"key":"10.1016\/S0164-1212(02)00135-8_BIB49","unstructured":"Liu, L., Ellis, R., 1993. An approach to eliminating COMMON blocks and deriving ADTs from Fortran programs. Technical report, University of Westminster, UK"},{"key":"10.1016\/S0164-1212(02)00135-8_BIB50","series-title":"1st IEEE International Workshop on Source Code Analysis and Manipulation","first-page":"142","article-title":"Program slicing: Methods and applications","author":"Lucia","year":"2001"},{"key":"10.1016\/S0164-1212(02)00135-8_BIB51","unstructured":"Lyle, J.R., Binkley, D.W., 1993. Program slicing in the presence of pointers. In: Foundations of Software Engineering, Orlando, FL, USA, pp. 255\u2013260"},{"key":"10.1016\/S0164-1212(02)00135-8_BIB52","series-title":"International Conference on Computers and Applications, Peking","first-page":"877","article-title":"Automatic program bug location by program slicing","author":"Lyle","year":"1987"},{"key":"10.1016\/S0164-1212(02)00135-8_BIB53","first-page":"117","article-title":"Lazy algorithmic debugging: Ideas for practical implementation","author":"Nilsson","year":"1993"},{"issue":"4","key":"10.1016\/S0164-1212(02)00135-8_BIB54","doi-asserted-by":"crossref","first-page":"401","DOI":"10.1002\/(SICI)1097-024X(19980410)28:4<401::AID-SPE159>3.0.CO;2-R","article-title":"The design and implementation of RAP: A PDG-based register allocator","volume":"28","author":"Norris","year":"1998","journal-title":"Software Practice and Experience"},{"key":"10.1016\/S0164-1212(02)00135-8_BIB55","series-title":"Proceedings of the IEEE-CS International Metrics Symposium, Baltimore, Maryland, USA","first-page":"71","article-title":"Slice based metrics for estimating cohesion","author":"Ott","year":"1993"},{"issue":"5","key":"10.1016\/S0164-1212(02)00135-8_BIB56","doi-asserted-by":"crossref","first-page":"177","DOI":"10.1145\/390011.808263","article-title":"The program dependence graph in software development environments","volume":"19","author":"Ottenstein","year":"1984","journal-title":"SIGPLAN Notices"},{"issue":"8","key":"10.1016\/S0164-1212(02)00135-8_BIB57","doi-asserted-by":"crossref","first-page":"503","DOI":"10.1145\/355609.362337","article-title":"On the capabilities of while, repeat, and exit statements","volume":"16","author":"Peterson","year":"1973","journal-title":"Communications of the ACM"},{"key":"10.1016\/S0164-1212(02)00135-8_BIB58","doi-asserted-by":"crossref","unstructured":"Schoenig, S., Ducass\u00e9, M., 1996. A hybrid backward slicing algorithm producing executable slices for prolog. In: Proceedings of the 7th Workshop on Logic Programming Environments, Portland, USA, pp. 41\u201348","DOI":"10.1007\/3-540-61739-6_50"},{"key":"10.1016\/S0164-1212(02)00135-8_BIB59","unstructured":"Shahmehri, N., 1991. Generalized algorithmic debugging. PhD Thesis, Department of Computer Science and Information Science, Link\u00f6ping University, Sweden. Available as Link\u00f6ping Studies in Science and Technology, Dissertations, no. 260"},{"issue":"3","key":"10.1016\/S0164-1212(02)00135-8_BIB60","doi-asserted-by":"crossref","first-page":"26","DOI":"10.1145\/174245.174252","article-title":"Recoup\u2013\u2013maintaining Fortran","volume":"12","author":"Simpson","year":"1993","journal-title":"ACM Fortran forum"},{"key":"10.1016\/S0164-1212(02)00135-8_BIB61","unstructured":"Sivagurunathan, Y., Harman, M., Danicic, S., 1997. Slicing I\/O and the implicit state. In: Kamkar, M., (Ed.), 3rd International Workshop on Automated Debugging (AADEBUG\u201997), vol. 2 of Link\u00f6ping Electronic Articles in Computer and Information Science, Link\u00f6ping, Sweden. pp. 59\u201365. Available from <http:\/\/www.ep.liu.se\/ea\/cis\/1997\/009\/06\/>"},{"key":"10.1016\/S0164-1212(02)00135-8_BIB62","doi-asserted-by":"crossref","unstructured":"Steensgaard, B., 1996. Points-to analysis in almost linear time. In: ACM, editor, Conference record of POPL \u201996, 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages: papers presented at the Symposium: St. Petersburg Beach, Florida, 21\u201324 January 1996, New York, NY, USA. ACM Press, pp. 32\u201341","DOI":"10.1145\/237721.237727"},{"key":"10.1016\/S0164-1212(02)00135-8_BIB63","unstructured":"Tip, F., 1995a. Generation of Program Analysis Tools. PhD thesis, Centrum voor Wiskunde en Informatica, Amsterdam"},{"issue":"3","key":"10.1016\/S0164-1212(02)00135-8_BIB64","first-page":"121","article-title":"A survey of program slicing techniques","volume":"3","author":"Tip","year":"1995","journal-title":"Journal of Programming Languages"},{"key":"10.1016\/S0164-1212(02)00135-8_BIB65","doi-asserted-by":"crossref","unstructured":"Venkatesh, G.A., 1991. The semantic approach to program slicing. In: ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 26\u201328, Toronto, Canada. Proceedings in SIGPLAN Notices, vol. 26(6), 1991, pp.107\u2013119","DOI":"10.1145\/113446.113455"},{"issue":"5","key":"10.1016\/S0164-1212(02)00135-8_BIB66","doi-asserted-by":"crossref","first-page":"795","DOI":"10.1093\/comjnl\/37.9.795","article-title":"Reverse engineering through formal transformation","volume":"37","author":"Ward","year":"1994","journal-title":"The Computer Journal"},{"key":"10.1016\/S0164-1212(02)00135-8_BIB67","doi-asserted-by":"crossref","unstructured":"Ward, M., 2002. Program slicing via FermaT transformations. In: 26th IEEE Annual Computer Software and Applications Conference (COMPSAC 2002), Oxford, UK. IEEE Computer Society Press, Los Alamitos, California, USA, pp. 357\u2013362","DOI":"10.1109\/CMPSAC.2002.1045029"},{"key":"10.1016\/S0164-1212(02)00135-8_BIB68","unstructured":"Weiser, M., 1979. Program slices: Formal, psychological, and practical investigations of an automatic program abstraction method. PhD thesis, University of Michigan, Ann Arbor, MI"},{"issue":"7","key":"10.1016\/S0164-1212(02)00135-8_BIB69","doi-asserted-by":"crossref","first-page":"446","DOI":"10.1145\/358557.358577","article-title":"Programmers use slicing when debugging","volume":"25","author":"Weiser","year":"1982","journal-title":"Communications of the ACM"},{"issue":"4","key":"10.1016\/S0164-1212(02)00135-8_BIB70","doi-asserted-by":"crossref","first-page":"352","DOI":"10.1109\/TSE.1984.5010248","article-title":"Program slicing","volume":"10","author":"Weiser","year":"1984","journal-title":"IEEE Transactions on Software Engineering"}],"container-title":["Journal of Systems and Software"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.elsevier.com\/content\/article\/PII:S0164121202001358?httpAccept=text\/xml","content-type":"text\/xml","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/api.elsevier.com\/content\/article\/PII:S0164121202001358?httpAccept=text\/plain","content-type":"text\/plain","content-version":"vor","intended-application":"text-mining"}],"deposited":{"date-parts":[[2023,4,26]],"date-time":"2023-04-26T10:18:52Z","timestamp":1682504332000},"score":1,"resource":{"primary":{"URL":"https:\/\/linkinghub.elsevier.com\/retrieve\/pii\/S0164121202001358"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2003,10]]},"references-count":70,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2003,10]]}},"alternative-id":["S0164121202001358"],"URL":"https:\/\/doi.org\/10.1016\/s0164-1212(02)00135-8","relation":{},"ISSN":["0164-1212"],"issn-type":[{"value":"0164-1212","type":"print"}],"subject":[],"published":{"date-parts":[[2003,10]]}}}