Transactional memory: architectural support for lock-free data structures
ISCA '93 Proceedings of the 20th annual international symposium on computer architecture
Eraser: a dynamic data race detector for multi-threaded programs
Proceedings of the sixteenth ACM symposium on Operating systems principles
Type-based race detection for Java
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
Time, clocks, and the ordering of events in a distributed system
Communications of the ACM
Typed memory management via static capabilities
ACM Transactions on Programming Languages and Systems (TOPLAS)
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Principles of Program Analysis
Principles of Program Analysis
CIL: Intermediate Language and Tools for Analysis and Transformation of C Programs
CC '02 Proceedings of the 11th International Conference on Compiler Construction
Static conflict analysis for multi-threaded object-oriented programs
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
Dymos: a dynamic modification system
Dymos: a dynamic modification system
RacerX: effective, static detection of race conditions and deadlocks
SOSP '03 Proceedings of the nineteenth ACM symposium on Operating systems principles
Language support for lightweight transactions
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Lazy modular upgrades in persistent object stores
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Understanding source code evolution using abstract syntax tree matching
MSR '05 Proceedings of the 2005 international workshop on Mining software repositories
Practical dynamic software updating for C
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
Effective static race detection for Java
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
LOCKSMITH: context-sensitive correlation analysis for race detection
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
Live updating operating systems using virtualization
Proceedings of the 2nd international conference on Virtual execution environments
Flow-insensitive type qualifiers
ACM Transactions on Programming Languages and Systems (TOPLAS)
Conditional must not aliasing for static race detection
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Open nesting in software transactional memory
Proceedings of the 12th ACM SIGPLAN symposium on Principles and practice of parallel programming
Providing dynamic update in an operating system
ATEC '05 Proceedings of the annual conference on USENIX Annual Technical Conference
POLUS: A POwerful Live Updating System
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Mutatis Mutandis: Safe and predictable dynamic software updating
ACM Transactions on Programming Languages and Systems (TOPLAS)
Dynamic and adaptive updates of non-quiescent subsystems in commodity operating system kernels
Proceedings of the 2nd ACM SIGOPS/EuroSys European Conference on Computer Systems 2007
Types and trace effects of higher order programs
Journal of Functional Programming
Reboots are for hardware: challenges and solutions to updating an operating system on the fly
ATC'07 2007 USENIX Annual Technical Conference on Proceedings of the USENIX Annual Technical Conference
Banshee: a scalable constraint-based analysis toolkit
SAS'05 Proceedings of the 12th international conference on Static Analysis
Formalizing Soundness of Contextual Effects
TPHOLs '08 Proceedings of the 21st International Conference on Theorem Proving in Higher Order Logics
A generic type-and-effect system
Proceedings of the 4th international workshop on Types in language design and implementation
Thread Safety through Partitions and Effect Agreements
Languages and Compilers for Parallel Computing
A language model for dynamic code updating
Proceedings of the 1st International Workshop on Hot Topics in Software Upgrades
Introspecting continuations in order to update active code
Proceedings of the 1st International Workshop on Hot Topics in Software Upgrades
Dynamic software updates: a VM-centric approach
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Safe and timely updates to multi-threaded programs
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Cooperative update: a new model for dependable live update
Proceedings of the 2nd International Workshop on Hot Topics in Software Upgrades
Migrating protocols in multi-threaded message-passing systems
Proceedings of the 2nd International Workshop on Hot Topics in Software Upgrades
Efficient systematic testing for dynamically updatable software
Proceedings of the 2nd International Workshop on Hot Topics in Software Upgrades
Dynamic updates for web and cloud applications
APLWACA '10 Proceedings of the 2010 Workshop on Analysis and Programming Languages for Web Applications and Cloud Applications
Immediate multi-threaded dynamic software updates using stack reconstruction
USENIX'09 Proceedings of the 2009 conference on USENIX Annual technical conference
A time-aware type system for data-race protection and guaranteed initialization
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
LOCKSMITH: Practical static race detection for C
ACM Transactions on Programming Languages and Systems (TOPLAS)
Safely updating running software: tranquility at the object level
Proceedings of the 7th Workshop on Reflection, AOP and Meta-Data for Software Evolution
Elastic executions from inelastic programs
Proceedings of the 6th International Symposium on Software Engineering for Adaptive and Self-Managing Systems
Dynamic software update for component-based distributed systems
Proceedings of the 16th international workshop on Component-oriented programming
Run-time phenomena in dynamic software updating: causes and effects
Proceedings of the 12th International Workshop on Principles of Software Evolution and the 7th annual ERCIM Workshop on Software Evolution
Version-consistent dynamic reconfiguration of component-based distributed systems
Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering
Using first-class contexts to realize dynamic software updates
Proceedings of the International Workshop on Smalltalk Technologies
A type and effect system for determinism in multithreaded programs
ESOP'12 Proceedings of the 21st European conference on Programming Languages and Systems
Local dynamic update for component-based distributed systems
Proceedings of the 15th ACM SIGSOFT symposium on Component Based Software Engineering
The sequential semantics of producer effect systems
POPL '13 Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Report on the fourth workshop on hot topics in software upgrades (HotSWUp 2012)
ACM SIGOPS Operating Systems Review
Back to the future: fault-tolerant live update with time-traveling state transfer
LISA'13 Proceedings of the 27th international conference on Large Installation System Administration
Hi-index | 0.00 |
This paper presents a generalization of standard effect systems that we call contextual effects. A traditional effect system computes the effect of an expression e. Our system additionally computes the effects of the computational context in which e occurs. More specifically, we computethe effect of the computation that has already occurred(the prior effect) and the effect of the computation yet to take place (the future effect). Contextual effects are useful when the past or future computation of the program is relevant at various program points. We present two substantial examples. First, we show how prior and future effects can be used to enforce transactional version consistency(TVC), a novel correctness property for dynamic software updates. TV Censures that programmer-designated transactional code blocks appear to execute entirely at the same code version, even if a dynamic update occurs in the middle of the block. Second, we show how future effects can be used in the analysis of multi-threaded programs to find thread-shared locations. This is an essential step in applications such as data race detection.