Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Denotational semantics: a methodology for language development
Denotational semantics: a methodology for language development
The program dependence graph and its use in optimization
ACM Transactions on Programming Languages and Systems (TOPLAS)
Integrating non-intering versions of programs
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
On the adequacy of program dependence graphs for representing programs
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A rewriting semantics for program dependence graphs
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Deriving Target Code as a Representation of Continuation Semantics
ACM Transactions on Programming Languages and Systems (TOPLAS)
Compilers and staging transformations
POPL '86 Proceedings of the 13th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Loops in combinator-based compilers
POPL '83 Proceedings of the 10th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
A program form based on data dependency in predicate regions
POPL '83 Proceedings of the 10th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Dependence graphs and compiler optimizations
POPL '81 Proceedings of the 8th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Semantics-directed machine architecture
POPL '82 Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A hierarchical basis for reordering transformations
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Optimizing supercompilers for supercomputers
Optimizing supercompilers for supercomputers
The implications of program dependencies for software testing, debugging, and maintenance
TAV3 Proceedings of the ACM SIGSOFT '89 third symposium on Software testing, analysis, and verification
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
Compact representations for control dependence
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
Program transformation in the presence of errors
POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A foundation for sequentializing parallel code
SPAA '90 Proceedings of the second annual ACM symposium on Parallel algorithms and architectures
Dependence flow graphs: an algebraic approach to program dependencies
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Program optimization and parallelization using idioms
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
IEEE Transactions on Software Engineering
The semantic approach to program slicing
PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
Efficiently computing static single assignment form and the control dependence graph
ACM Transactions on Programming Languages and Systems (TOPLAS)
Automated assistance for program restructuring
ACM Transactions on Software Engineering and Methodology (TOSEM)
Dependence-based program analysis
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
Direct update of data flow representations for a meaning-preserving program restructuring tool
SIGSOFT '93 Proceedings of the 1st ACM SIGSOFT symposium on Foundations of software engineering
Value dependence graphs: representation without taxation
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
A new model of program dependences for reverse engineering
SIGSOFT '94 Proceedings of the 2nd ACM SIGSOFT symposium on Foundations of software engineering
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Safe: a semantic technique for transforming programs in the presence of errors
ACM Transactions on Programming Languages and Systems (TOPLAS)
A simple graph-based intermediate representation
IR '95 Papers from the 1995 ACM SIGPLAN workshop on Intermediate representations
Sparse functional stores for imperative programs
IR '95 Papers from the 1995 ACM SIGPLAN workshop on Intermediate representations
Global code motion/global value numbering
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
Aspect: detecting bugs with abstract dependences
ACM Transactions on Software Engineering and Methodology (TOSEM)
Automatic parallelization of object-oriented programming languages using tuple space
CSC '95 Proceedings of the 1995 ACM 23rd annual conference on Computer science
Toward a complete transformational toolkit for compilers
ACM Transactions on Programming Languages and Systems (TOPLAS)
Correctness of monadic state: an imperative call-by-need calculus
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Compositionality in the puzzle of semantics
PEPM '02 Proceedings of the 2002 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
Equivalence of conservative, free, linear program schemas is decidable
Theoretical Computer Science
Non-Standard Semantics for Program Slicing
Higher-Order and Symbolic Computation
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)
Theoretical foundations of dynamic program slicing
Theoretical Computer Science
Formal specification of program slicing
ACM SIGPLAN Notices
Data dependencies and program slicing: from syntax to abstract semantics
PEPM '08 Proceedings of the 2008 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
A trajectory-based strict semantics for program slicing
Theoretical Computer Science
An operational semantics of program dependence graphs for unstructured programs
ASIAN'06 Proceedings of the 11th Asian computing science conference on Advances in computer science: secure software and related issues
Abstract dependences for alarm diagnosis
APLAS'05 Proceedings of the Third Asian conference on Programming Languages and Systems
Hi-index | 0.00 |
Optimizing and parallelizing compilers for procedural languages rely on various forms of program dependence graphs (pdgs) to express the essential control and data dependencies among atomic program operations. In this paper, we provide a semantic justification for this practice by deriving two different forms of program dependence graph — the output pdg and the def-order pdg—and their semantic definitions from non-strict generalizations of the denotational semantics of the programming language. In the process, we demonstrate that both the output pdg and the def-order pdg (with minor technical modifications) are conventional data-flow programs. In addition, we show that the semantics of the def-order pdg dominates the semantics of the output pdg and that both of these semantics dominate—rather than preserve—the semantics of sequential execution.