AIDA—a dynamic data flow anomaly detection system for Pascal programs
Software—Practice & Experience
Elimination algorithms for data flow analysis
ACM Computing Surveys (CSUR)
Interprocedural side-effect analysis in linear time
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
The preparation of guidelines for portable programming in high-level languages
The Computer Journal
Analysis of pointers and structures
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
The C programming language
Properties of data flow frameworks: a unified model
Acta Informatica
The C++ programming language (2nd ed.)
The C++ programming language (2nd ed.)
Object-oriented type inference
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
Control-flow analysis of higher-order languages of taming lambda
Control-flow analysis of higher-order languages of taming lambda
A safe approximate algorithm for interprocedural aliasing
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
Programming-in-the-large: past, present, and future
ICSE '92 Proceedings of the 14th international conference on Software engineering
Interprocedural modification side effect analysis with pointer aliasing
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
Extensions to the C programming language for enhanced fault detection
Software—Practice & Experience
Pointer-induced aliasing: a clarification
ACM SIGPLAN Notices
A general data dependence test for dynamic, pointer-based data structures
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
Interprocedural may-alias analysis for pointers: beyond k-limiting
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
Context-sensitive interprocedural points-to analysis in the presence of function pointers
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
Efficient context-sensitive pointer analysis for C programs
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
Fast static analysis of C++ virtual function calls
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Is it a tree, a DAG, or a cyclic graph? A shape analysis for heap-directed pointers in C
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Strategic directions in software quality
ACM Computing Surveys (CSUR) - Special ACM 50th-anniversary issue: strategic directions in computing research
Perspectives on program analysis
ACM Computing Surveys (CSUR) - Special issue: position statements on strategic directions in computing research
The future of program analysis
ACM Computing Surveys (CSUR) - Special issue: position statements on strategic directions in computing research
How do we improve software quality and how do we show that it matters?
ACM Computing Surveys (CSUR) - Special issue: position statements on strategic directions in computing research
Call graph construction in object-oriented languages
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Dynamic class loading in the Java virtual machine
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Parametric shape analysis via 3-valued logic
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Software—Practice & Experience
Analyzing aliases of reference formal parameters
POPL '85 Proceedings of the 12th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Data Flow Analysis for Procedural Languages
Journal of the ACM (JACM)
Fast Algorithms for Solving Path Problems
Journal of the ACM (JACM)
ACM Transactions on Mathematical Software (TOMS)
A framework for interprocedural optimization in the presence of dynamic class loading
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
Scalable propagation-based call graph construction algorithms
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
ACM Transactions on Mathematical Software (TOMS)
Data Flow Analysis in Software Reliability
ACM Computing Surveys (CSUR)
A program data flow analysis procedure
Communications of the ACM
On the criteria to be used in decomposing systems into modules
Communications of the ACM
Pointer analysis: haven't we solved this problem yet?
PASTE '01 Proceedings of the 2001 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
A schema for interprocedural modification side-effect analysis with pointer aliasing
ACM Transactions on Programming Languages and Systems (TOPLAS)
Efficient computation of flow insensitive interprocedural summary information
SIGPLAN '84 Proceedings of the 1984 SIGPLAN symposium on Compiler construction
Points-to analysis for Java using annotated constraints
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A framework for call graph construction algorithms
ACM Transactions on Programming Languages and Systems (TOPLAS)
Extended static checking for Java
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
A unified approach to global program optimization
POPL '73 Proceedings of the 1st annual ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Analysis of a simple algorithm for global data flow problems
POPL '73 Proceedings of the 1st annual ACM SIGACT-SIGPLAN symposium on Principles of programming languages
An interprocedural data flow analysis algorithm
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Even simple programs are hard to analyze
POPL '75 Proceedings of the 2nd ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Flow Analysis of Computer Programs
Flow Analysis of Computer Programs
Parameterized object sensitivity for points-to and side-effect analyses for Java
ISSTA '02 Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis
POPL '80 Proceedings of the 7th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A precise inter-procedural data flow algorithm
POPL '81 Proceedings of the 8th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
An efficient way to find the side effects of procedure calls and the aliases of variables
POPL '79 Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
POPL '82 Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Optimization of Object-Oriented Programs Using Static Class Hierarchy Analysis
ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming
The Cartesian Product Algorithm: Simple and Precise Type Inference Of Parametric Polymorphism
ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming
Data-Flow-Based Virtual Function Resolution
SAS '96 Proceedings of the Third International Symposium on Static Analysis
Checking and inferring local non-aliasing
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
An algebra for data flow anomaly detection
ICSE '84 Proceedings of the 7th international conference on Software engineering
ICSE '79 Proceedings of the 4th international conference on Software engineering
Pragmatic techniques for program analysis and verification
ICSE '79 Proceedings of the 4th international conference on Software engineering
UNIXTM as an environment for producing numerical software
Proceedings of the SIGNUM Conference on the Programming Environment for Development of Numerical Software
Design principles of the PORT library
Proceedings of the SIGNUM Conference on the Programming Environment for Development of Numerical Software
SIGPLAN '79 Proceedings of the 1979 SIGPLAN symposium on Compiler construction
Programming with abstract data types
Proceedings of the ACM SIGPLAN symposium on Very high level languages
The detection of anomalous interprocedural data flow
ICSE '76 Proceedings of the 2nd international conference on Software engineering
Programming-in-the large versus programming-in-the-small
Proceedings of the international conference on Reliable software
Precise Call Graph Construction in the Presence of Function Pointers
SCAM '02 Proceedings of the Second IEEE International Workshop on Source Code Analysis and Manipulation
Hints on programming language design.
Hints on programming language design.
Experience with extensible, portable Fortran extensions
ACM SIGPLAN Notices
PORT: a portable subroutine library
ACM SIGNUM Newsletter
The impact of software engineering research on modern progamming languages
ACM Transactions on Software Engineering and Methodology (TOSEM)
Structured programming
Automating and evaluating assume-guarantee reasoning
Automating and evaluating assume-guarantee reasoning
Constructing the Call Graph of a Program
IEEE Transactions on Software Engineering
A few billion lines of code later: using static analysis to find bugs in the real world
Communications of the ACM
Improved optimization of FORTRAN object programs
IBM Journal of Research and Development
Data flow analysis in the presence of procedure calls
IBM Journal of Research and Development
Dimensions of precision in reference analysis of object-oriented programming languages
CC'03 Proceedings of the 12th international conference on Compiler construction
Scaling Java points-to analysis using SPARK
CC'03 Proceedings of the 12th international conference on Compiler construction
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
Pick your contexts well: understanding object-sensitivity
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
APLAS'05 Proceedings of the Third Asian conference on Programming Languages and Systems
Context-Sensitive points-to analysis: is it worth it?
CC'06 Proceedings of the 15th international conference on Compiler Construction
Hard-to-use evaluation criteria for software engineering
Journal of Systems and Software
Hi-index | 0.00 |
There is tension between programming language design for modularity and flexibility of programming and the amenability of the resulting programs to static analysis. At the start of Software Practice and Experience in 1971, most languages in commercial use were procedural (e.g., FORTRAN, ALGOL, PL/I) and on the whole were easier to analyze than languages of today such as JavaScript and Python. Modern languages include dynamic features, which enhance prototyping of approaches, often resulting in programs that are difficult for software tools or humans to understand. Starting with this perspective, we explore the relationship between language features and the ability of static analysis to precisely determine control flow and data flow in programs, thus enabling program optimization, transformation and understanding.