The program dependence graph and its use in optimization
ACM Transactions on Programming Languages and Systems (TOPLAS)
Information Processing Letters
Interprocedural slicing using dependence graphs
ACM Transactions on Programming Languages and Systems (TOPLAS)
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
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
Program Specialization via Program Slicing
Selected Papers from the Internaltional Seminar on Partial Evaluation
ICSE '81 Proceedings of the 5th international conference on Software engineering
Slicing Objects Using System Dependence Graphs
ICSM '98 Proceedings of the International Conference on Software Maintenance
Slicing Aspect-Oriented Software
IWPC '02 Proceedings of the 10th International Workshop on Program Comprehension
Dynamic slicing based on redex trails
Proceedings of the 2004 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Flow graphs for testing sequential erlang programs
ERLANG '04 Proceedings of the 2004 ACM SIGPLAN workshop on Erlang
TypEr: a type annotator of Erlang code
Proceedings of the 2005 ACM SIGPLAN workshop on Erlang
Practical type inference based on success typings
Proceedings of the 8th ACM SIGPLAN international conference on Principles and practice of declarative programming
Static Slicing of Rewrite Systems
Electronic Notes in Theoretical Computer Science (ENTCS)
Impact analysis of erlang programs using behaviour dependency graphs
CEFP'09 Proceedings of the Third summer school conference on Central European functional programming school
Hi-index | 0.00 |
The system dependence graph (SDG) is a data structure used in the imperative paradigm for different static analysis, and particularly, for program slicing. Program slicing allows us to determine the part of a program (called slice) that influences a given variable of interest. Thanks to the SDG, we can produce precise slices for interprocedural programs. Unfortunately, the SDG cannot be used in the functional paradigm due to important features that are not considered in this formalism (e.g., pattern matching, higher-order, composite expressions, etc.). In this work we propose the first adaptation of the SDG to a functional language facing these problems. We take Erlang as the host language and we adapt the algorithms used to slice the SDG to produce precise slices of Erlang interprocedural programs. As a proof-of-concept, we have implemented a program slicer for Erlang based on our SDGs.