Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Typestate: A programming language concept for enhancing software reliability
IEEE Transactions on Software Engineering
An efficient general iterative algorithm for dataflow analysis
Acta Informatica
Cecil: A Sequencing Constraint Language for Automatic Static Analysis Generation
IEEE Transactions on Software Engineering
Properties of data flow frameworks: a unified model
Acta Informatica
Constant propagation with conditional branches
ACM Transactions on Programming Languages and Systems (TOPLAS)
Hermes: a language for distributed computing
Hermes: a language for distributed computing
Data Flow Analysis in Software Reliability
ACM Computing Surveys (CSUR)
A unified approach to global program optimization
POPL '73 Proceedings of the 1st annual ACM SIGACT-SIGPLAN symposium on Principles of programming languages
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Mechanisms for compile-time enforcement of security
POPL '83 Proceedings of the 10th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
NIL: An integrated language and system for distributed programming
Proceedings of the 1983 ACM SIGPLAN symposium on Programming language issues in software systems
Detecting software errors before execution
Detecting software errors before execution
Demand-driven computation of interprocedural data flow
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Protocol specifications and component adaptors
ACM Transactions on Programming Languages and Systems (TOPLAS)
A practical framework for demand-driven interprocedural data flow analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
Predicated array data-flow analysis for run-time parallelization
ICS '98 Proceedings of the 12th international conference on Supercomputing
A Development Environment for Complex Distributed Real-Time Applications
IEEE Transactions on Software Engineering
Evaluation of predicated array data-flow analysis for automatic parallelization
Proceedings of the seventh ACM SIGPLAN symposium on Principles and practice of parallel programming
Safety checking of machine code
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
Enforcing high-level protocols in low-level software
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
More dynamic object reclassification: Fickle∥
ACM Transactions on Programming Languages and Systems (TOPLAS)
Automatic extraction of object-oriented component interfaces
ISSTA '02 Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis
A Case for Combining Compile-Time and Run-Time Parallelization
LCR '98 Selected Papers from the 4th International Workshop on Languages, Compilers, and Run-Time Systems for Scalable Computers
ISSRE '00 Proceedings of the 11th International Symposium on Software Reliability Engineering
CASCON '92 Proceedings of the 1992 conference of the Centre for Advanced Studies on Collaborative research - Volume 2
PSE: explaining program failures via postmortem static analysis
Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
Using build-integrated static checking to preserve correctness invariants
Proceedings of the 11th ACM conference on Computer and communications security
Typestate verification: abstraction techniques and complexity results
Science of Computer Programming - Special issue: Static analysis symposium (SAS 2003)
The case for analysis preserving language transformation
Proceedings of the 2006 international symposium on Software testing and analysis
Combined static and dynamic analysis for inferring program dependencies using a pattern language
CASCON '06 Proceedings of the 2006 conference of the Center for Advanced Studies on Collaborative research
Combining compile-time and run-time parallelization[1]
Scientific Programming
Fusing a Transformation Language with an Open Compiler
Electronic Notes in Theoretical Computer Science (ENTCS)
Proceedings of the first ACM SIGPLAN symposium on Haskell
Synchronization as a Special Case of Access Control
Electronic Notes in Theoretical Computer Science (ENTCS)
Typestate verification: abstraction techniques and complexity results
SAS'03 Proceedings of the 10th international conference on Static analysis
Towards security testing with taint analysis and genetic algorithms
Proceedings of the 2010 ICSE Workshop on Software Engineering for Secure Systems
Implementing a Language with Flow-Sensitive and Structural Typing on the JVM
Electronic Notes in Theoretical Computer Science (ENTCS)
Memory leak analysis by contradiction
SAS'06 Proceedings of the 13th international conference on Static Analysis
Tracking linear and affine resources with JAVA(X)
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Information and Software Technology
Hi-index | 0.00 |
The authors present a practical extension to typestate checking, which is capable of proving programs free of uninitialized variable errors even when these programs contain conditionally initialized variables where the initialization of a variable depends upon the equality of one or more tag variables to a constant. The user need not predeclare the relationship between a conditionally initialized variable and its tags, and this relationship may change from one point in the program to another. The technique generalizes liveness analysis to conditional liveness analysis. Like typestate checking, this technique incorporates a dataflow analysis algorithm in which each point in a program is labeled with a lattice point describing statically tracked information, including the initialization of variables. The labeling is then used to check for programming errors such as referencing a variable which may be uninitialized.