Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Information and Computation - Semantics of Data Types
Eliminating go to's while preserving program structure
Journal of the ACM (JACM)
Interprocedural slicing using dependence graphs
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
Information Processing Letters
Interprocedural slicing using dependence graphs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Specification and transformation of programs: a formal approach to software development
Specification and transformation of programs: a formal approach to software development
COLOG-88 Proceedings of the international conference on Computer logic
The semantic approach to program slicing
PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
Intelligent search and acquisition of business knowledge from programs
Journal of Software Maintenance: Research and Practice
Synthesis of ML programs in the system Coq
Journal of Symbolic Computation - Special issue on automatic programming
Lazy array data-flow dependence analysis
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
On slicing programs with jump statements
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
Static slicing in the presence of goto statements
ACM Transactions on Programming Languages and Systems (TOPLAS)
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Slicing object-oriented software
Proceedings of the 18th international conference on Software engineering
Slicing real-time programs for enhanced schedulability
ACM Transactions on Programming Languages and Systems (TOPLAS)
The concept assignment problem in program understanding
ICSE '93 Proceedings of the 15th international conference on Software Engineering
The design and implementation of RAP: a PDG-based register allocator
Software—Practice & Experience
Alma-O: an imperative language that supports declarative programming
ACM Transactions on Programming Languages and Systems (TOPLAS)
Computing amorphous program slices using dependence graphs
Proceedings of the 1999 ACM symposium on Applied computing
SUIF Explorer: an interactive and interprocedural parallelizer
Proceedings of the seventh ACM SIGPLAN symposium on Principles and practice of parallel programming
System-dependence-graph-based slicing of programs with arbitrary interprocedural control flow
Proceedings of the 21st international conference on Software engineering
A new Algorithm for slicing unstructured programs
Journal of Software Maintenance: Research and Practice
Identifying procedural structure in Cobol programs
Proceedings of the 1999 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Bandera: extracting finite-state models from Java source code
Proceedings of the 22nd international conference on Software engineering
SAC '00 Proceedings of the 2000 ACM symposium on Applied computing - Volume 2
Social processes and proofs of theorems and programs
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory
Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory
Better Slicing of Programs with Jumps and Switches
FASE '02 Proceedings of the 5th International Conference on Fundamental Approaches to Software Engineering
Program Slicing via FermaT Transformations
COMPSAC '02 Proceedings of the 26th International Computer Software and Applications Conference on Prolonging Software Life: Development and Redevelopment
Improving Evolutionary Testing By Flag Removal
GECCO '02 Proceedings of the Genetic and Evolutionary Computation Conference
Weakest Precondition for General Recursive Programs Formalized in Coq
TPHOLs '02 Proceedings of the 15th International Conference on Theorem Proving in Higher Order Logics
Slicing Programs with Arbitrary Control-flow
AADEBUG '93 Proceedings of the First International Workshop on Automated and Algorithmic Debugging
The program dependence graph in a software development environment
SDE 1 Proceedings of the first ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
Mechanized Operational Semantics of WSL
SCAM '02 Proceedings of the Second IEEE International Workshop on Source Code Analysis and Manipulation
GUSTT: An Amorphous Slicing System which Combines Slicing and Transformation
WCRE '01 Proceedings of the Eighth Working Conference on Reverse Engineering (WCRE'01)
Understanding Function Behaviors through Program Slicing
WPC '96 Proceedings of the 4th International Workshop on Program Comprehension (WPC '96)
WPC '97 Proceedings of the 5th International Workshop on Program Comprehension (WPC '97)
Hypothesis-Based Concept Assignment to Support Software Maintenance
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
Bylands: reverse engineering safety-critical systems
ICSM '95 Proceedings of the International Conference on Software Maintenance
Analysis of Programs with Exception-Handling Constructs
ICSM '98 Proceedings of the International Conference on Software Maintenance
Analysis of Dynamic Memory Access using Amorphous Slicing
ICSM '98 Proceedings of the International Conference on Software Maintenance
Do Program Transformations Help Reverse Engineering?
ICSM '98 Proceedings of the International Conference on Software Maintenance
Slicing Objects Using System Dependence Graphs
ICSM '98 Proceedings of the International Conference on Software Maintenance
ConSIT: A Conditioned Program Slicer
ICSM '00 Proceedings of the International Conference on Software Maintenance (ICSM'00)
An Empirical Study of Amorphous Slicing as a Program Comprehension Support Tool
IWPC '00 Proceedings of the 8th International Workshop on Program Comprehension
Slicing Aspect-Oriented Software
IWPC '02 Proceedings of the 10th International Workshop on Program Comprehension
A Post-Placement Side-Effect Removal Algorithm
ICSM '02 Proceedings of the International Conference on Software Maintenance (ICSM'02)
Side-Effect Removal Transformation
IWPC '01 Proceedings of the 9th International Workshop on Program Comprehension
A Denotational Interprocedural Program Slicer
WCRE '02 Proceedings of the Ninth Working Conference on Reverse Engineering (WCRE'02)
Code Extraction Algorithms which Unify Slicing and Concept Assignment
WCRE '02 Proceedings of the Ninth Working Conference on Reverse Engineering (WCRE'02)
ConSUS: A Scalable Approach to Conditioned Slicing
WCRE '02 Proceedings of the Ninth Working Conference on Reverse Engineering (WCRE'02)
Program slices: formal, psychological, and practical investigations of an automatic program abstraction method
Proving program refinements and transformations
Proving program refinements and transformations
Partial evaluation using dependence graphs
Partial evaluation using dependence graphs
Journal of Systems and Software
A brief survey of program slicing
ACM SIGSOFT Software Engineering Notes
A formalisation of the relationship between forms of program slicing
Science of Computer Programming - Special issue on source code analysis and manipulation (SCAM 2005)
Object-oriented transformations for extracting aspects
Information and Software Technology
SPAPE: A semantic-preserving amorphous procedure extraction method for near-miss clones
Journal of Systems and Software
Hi-index | 0.00 |
An amorphous slice of a program is constructed with respect to a set of variables. The amorphous slice is an executable program which preserves the behaviour of the original on the variables of interest. Unlike syntax-preserving slices, amorphous slices need not preserve a projection of the syntax of a program. This makes the task of amorphous slice construction harder, but it also often makes the result thinner and thereby preferable in applications where syntax preservation is unimportant.This paper describes an approach to the construction of amorphous slices which is based on the Abstract Syntax Tree of the program to be sliced, and does not require the construction of control flow graphs nor of program dependence graphs. The approach has some strengths and weaknesses which the paper discusses.The amorphous slicer, is part of the GUSTT slicing system, which includes syntax preserving static and conditioned slicers, a side effect removal transformation phase, slicing criterion guidance and for which much of the correctness proofs for transformation steps are mechanically verified. The system handles a subset of WSL, into which more general WSL constructs can be transformed.The paper focuses upon the way in which the GUSTT System uses dependence reduction transformation tactics. Such dependence reduction is at the heart of all approaches to amorphous slicing. The algorithms used are described and their performance is assessed with a simple empirical study of best and worst case execution times for an implementation built on top of the FermaT transformation system for maintenance and re-engineering.