Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.5555/800078.802557acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
Article
Free access

Program slicing

Published: 09 March 1981 Publication History
  • Get Citation Alerts
  • Abstract

    Program slicing is a method used by experienced computer programmers for abstracting from programs. Starting from a subset of a program's behavior, slicing reduces that program to a minimal form which still produces that behavior. The reduced program, called a “slice”, is an independent program guaranteed to faithfully represent the original program within the domain of the specified subset of behavior.
    Finding a slice is in general unsolvable. A dataflow algorithm is presented for approximating slices when the behavior subset is specified as the values of a set of variables at a statement. Experimental evidence is presented that these slices are used by programmers during debugging. Experience with two automatic slicing tools is summarized. New measures of program complexity are suggested based on the organization of a program's slices.

    References

    [1]
    Aho, A.V. and Ullman, J.D. 1977 Principles of Compiler Design. Addison-Wesley, 1977.
    [2]
    Arsac, J.J. 1979 Syntactic Source to Source TransformaHs and Program Manipulation. CACM 22, 1 (Jan. 1979) pp. 43-53.
    [3]
    Ashcroft and Manna 1973 The Translation of GOTO Programs into WHILE programs. Information Processing 71, North Holland Pub. Co. Amsterdam, pp. 250-255.
    [4]
    Aygun, B.O. 1973 Dynamic analysis of execution: possibilities, techniques, and problems. PhD thesis, Carnegie-Mellon University Sept. 1973.
    [5]
    Baker, B. 1977 An Algorithm for Structuring Flowgraphs. JACM 24, 1 (Jan. 1977) pp. 98-120.
    [6]
    Barth, J.M. 1978 A Practical Interprocedural Dataflow Analysis Algorithm. CACM 21, 9 (Sept. 1978) pp. 724-736.
    [7]
    Basili, V.R. 1976 The design and implementation of a family of application-oriented languages. Fifth Texas Conference on Computing Systems. pp. 6-12.
    [8]
    Browne, J.C. and Johnson, D.B. 1978 FAST: A second generation program analysis system. Third int'l conference on software engineering. IEEE catalog no. 78CH1317-7C. May 1978. pp. 142-148.
    [9]
    Denning, D.E. and Denning, P.J. 1977 Certification of programs for secure information flow. CACM 20, 7 (July 1977) pp. 504-513.
    [10]
    Fosdick. L.D. and Osterweil, L.J. 1976 Data Flow Analysis in Software Reliability. ACM Computing Surveys 8, 3 (Sept. 1976) pp. 305-330.
    [11]
    Gannon, J.D. and Rosenberg, J. 1979 Implementing data abstraction features in a stack-based language. Software-Practice and Experience, Vol. 9, pp. 547-560.
    [12]
    Gerhart, S. 1975 Correctness Preserving Program Transformations. Second Conference on the Principles of Programming Languages. ACM (Jan. 1975) pp. 54-66.
    [13]
    Gould, J.D. and Drongowski, P. 1974 An Exploratory Study of Computer Program Debugging. Human Factors 1, 6. pp. 258-277.
    [14]
    Graham, S.L., and Wegman, M. 1976 A fast and usually linear algorithm for global flow analysis. JACM 23, 1. January 1976, pp. 172-202.
    [15]
    Halstead, M. 1977 Elements of Software Science. Elsevier Computer Science Library. 1977.
    [16]
    Hecht, M.S. 1977 Flow Analysis of Computer Programs. North-Holland (1977).
    [17]
    IBM 1968 Scientific Subroutine Package (PL/I). 360-ACM-07X. Program Description and Operations Manual. Form 6H20-0586-0.
    [18]
    Lengauer, T. and Tarjan, R.E. 1979 A fast algorithm for finding dominators in a flowgraph. ACM T. on Prog. Lan. and Systems, Vol 1, no. 1 July 1979, pp. 121-141.
    [19]
    Liskov, B.H. and Zilles, S.N. 1975 Specification techniques for data abstractions. IEEE Trans of Software Engineering. March 1975.
    [20]
    Loveman, D.B. 1977 Program Improvement by Source to Source Transformation. JACM 24, 1 (Jan. 1977) pp. 121-145.
    [21]
    Luckham, D.C. and Suzuki, N. 1979 Verification of array, record, and pointer operations in Pascal. ACM T. on Prog. Lan. and Systems, Vol. 1, no. 2 Oct. 1979, pp. 226-244.
    [22]
    McCabe, Thomas J. 1976 A Complexity Measure. IEEE Transactions on Software Engineering. SE-2,
    [23]
    Parnas, D.L. 1972 On the criteria used in decomposing systems into modules. CACM 15, 12 (Dec. 1972) pp. 1053-1058.
    [24]
    Schwartz, J.T. 1971 An overview of bugs. in Debugging techniques in large systems. Rustin, Randall, ed. Prentice-Hall.
    [25]
    Shneiderman, B. 1976 a Exploratory Experiments in Programmer Behavior. International J. of Computer and Information Sciences, 5, 2.
    [26]
    Stay, J.F. 1976 HIPO and integrated program design. IBM systems journal.
    [27]
    Tarjan, R.E. and Valdes, J. 1980 Prime subprogram parsing of a program. Seventh annual ACM symposium on the principles of programming languages. Jan. 1980, pp. 95-105.
    [28]
    U.S.D.O.D. 1979 Preliminary Ada reference manual and rationale. Sigplan notices 14, 6.
    [29]
    Wegbreit, Ben 1976 Goal-directed program transformation IEEE Transactions on Software Engineering. Vol SE-2, 2 (June 1976) pp. 69-80.
    [30]
    Weihl, W.E. 1980 Interprocedural data flow analysis in the presence of pointers, procedure variables and label variables. Seventh ACM Symposium on the Principles of Programming Languages pp. 83-94.
    [31]
    Weiser, M.D. 1979 Program Slices: Foraml Psychological, and Practical Investigations of an Automatic Program Abstraction Method. Ph.D. Thesis, Computer and Communication Sciences Dept., University of Michigan.
    [32]
    Weiser, M.D. 1980 Color dominance: a new graph coloring program with applications to computer program optimization. In preparation.
    [33]
    Zelkowitz, M.W., Shaw, A.C., and Gannon, J.D. 1979 Principles of software engineering and design. Prentice-Hall.

    Cited By

    View all
    • (2024)Lifting Micro-Update Models from RTL for Formal Security AnalysisProceedings of the 29th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 210.1145/3620665.3640418(631-648)Online publication date: 27-Apr-2024
    • (2023)DAFLProceedings of the 32nd USENIX Conference on Security Symposium10.5555/3620237.3620513(4931-4948)Online publication date: 9-Aug-2023
    • (2023)FreePart: Hardening Data Processing Software via Framework-based Partitioning and IsolationProceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 410.1145/3623278.3624760(169-188)Online publication date: 25-Mar-2023
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    ICSE '81: Proceedings of the 5th international conference on Software engineering
    March 1981
    468 pages
    ISBN:0897911466

    Sponsors

    Publisher

    IEEE Press

    Publication History

    Published: 09 March 1981

    Check for updates

    Author Tags

    1. Data flow analysis
    2. Debugging
    3. Human factors
    4. Program maintenance
    5. Program metrics
    6. Software tools

    Qualifiers

    • Article

    Acceptance Rates

    Overall Acceptance Rate 276 of 1,856 submissions, 15%

    Upcoming Conference

    ICSE 2025

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)184
    • Downloads (Last 6 weeks)37
    Reflects downloads up to 27 Jul 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Lifting Micro-Update Models from RTL for Formal Security AnalysisProceedings of the 29th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 210.1145/3620665.3640418(631-648)Online publication date: 27-Apr-2024
    • (2023)DAFLProceedings of the 32nd USENIX Conference on Security Symposium10.5555/3620237.3620513(4931-4948)Online publication date: 9-Aug-2023
    • (2023)FreePart: Hardening Data Processing Software via Framework-based Partitioning and IsolationProceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 410.1145/3623278.3624760(169-188)Online publication date: 25-Mar-2023
    • (2023)Type Batched Program ReductionProceedings of the 32nd ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3597926.3598065(398-410)Online publication date: 12-Jul-2023
    • (2023)Reachable Coverage: Estimating Saturation in FuzzingProceedings of the 45th International Conference on Software Engineering10.1109/ICSE48619.2023.00042(371-383)Online publication date: 14-May-2023
    • (2023)Scalable Compositional Static Taint Analysis for Sensitive Data Tracing on Industrial Micro-ServicesProceedings of the 45th International Conference on Software Engineering: Software Engineering in Practice10.1109/ICSE-SEIP58684.2023.00015(110-121)Online publication date: 17-May-2023
    • (2022)Modular information flow through ownershipProceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation10.1145/3519939.3523445(1-14)Online publication date: 9-Jun-2022
    • (2022)Identifying Extract Method RefactoringsProceedings of the 15th Innovations in Software Engineering Conference10.1145/3511430.3511435(1-11)Online publication date: 24-Feb-2022
    • (2022)Hiding critical program components via ambiguous translationProceedings of the 44th International Conference on Software Engineering10.1145/3510003.3510139(1120-1132)Online publication date: 21-May-2022
    • (2022)Static stack-preserving intra-procedural slicing of webassembly binariesProceedings of the 44th International Conference on Software Engineering10.1145/3510003.3510070(2031-2042)Online publication date: 21-May-2022
    • Show More Cited By

    View Options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Get Access

    Login options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media