Generative communication in Linda
ACM Transactions on Programming Languages and Systems (TOPLAS)
Concurrent Prolog: A Progress Report
Computer
On the Reliability of the IBM MVS/XA Operating System
IEEE Transactions on Software Engineering
The family of concurrent logic programming languages
ACM Computing Surveys (CSUR)
Transactional memory: architectural support for lock-free data structures
ISCA '93 Proceedings of the 20th annual international symposium on computer architecture
Proceedings of the fourteenth annual ACM symposium on Principles of distributed computing
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
Parametric shape analysis via 3-valued logic
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Bandera: extracting finite-state models from Java source code
Proceedings of the 22nd international conference on Software engineering
Quickly detecting relevant program invariants
Proceedings of the 22nd international conference on Software engineering
A first order approximation to the optimum checkpoint interval
Communications of the ACM
JML (poster session): notations and tools supporting detailed design in Java
OOPSLA '00 Addendum to the 2000 proceedings of the conference on Object-oriented programming, systems, languages, and applications (Addendum)
SEDA: an architecture for well-conditioned, scalable internet services
SOSP '01 Proceedings of the eighteenth ACM symposium on Operating systems principles
POPL '75 Proceedings of the 2nd ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Transaction Processing: Concepts and Techniques
Transaction Processing: Concepts and Techniques
Computer
Modern Concurrency Abstractions for C#
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
JELIA '96 Proceedings of the European Workshop on Logics in Artificial Intelligence
Recovery blocks in action: A system supporting high reliability
ICSE '76 Proceedings of the 2nd international conference on Software engineering
Recursive Restartability: Turning the Reboot Sledgehammer into a Scalpel
HOTOS '01 Proceedings of the Eighth Workshop on Hot Topics in Operating Systems
ARGUS REFERENCE MANUAL
ACTORS AND CONTINUOUS FUNCTIONALS
ACTORS AND CONTINUOUS FUNCTIONALS
Recovery Oriented Computing (ROC): Motivation, Definition, Techniques,
Recovery Oriented Computing (ROC): Motivation, Definition, Techniques,
A foundation for actor computation
Journal of Functional Programming
Transactional Memory Coherence and Consistency
Proceedings of the 31st annual international symposium on Computer architecture
Advances in dataflow programming languages
ACM Computing Surveys (CSUR)
Unbounded Transactional Memory
HPCA '05 Proceedings of the 11th International Symposium on High-Performance Computer Architecture
Data structure repair using goal-directed reasoning
Proceedings of the 27th international conference on Software engineering
An overview of JML tools and applications
International Journal on Software Tools for Technology Transfer (STTT) - Special section on formal methods for industrial critical systems
User-level checkpoint and recovery for LAM/MPI
ACM SIGOPS Operating Systems Review
Proceedings of the eleventh ACM SIGPLAN symposium on Principles and practice of parallel programming
Exceptions and side-effects in atomic blocks
Science of Computer Programming - Special issue: Concurrency and synchronization in Java programs
Optimizing memory transactions
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
DieHard: probabilistic memory safety for unsafe languages
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
Inference and enforcement of data structure consistency specifications
Proceedings of the 2006 international symposium on Software testing and analysis
Probabilistic accuracy bounds for fault-tolerant computations that discard tasks
Proceedings of the 20th annual international conference on Supercomputing
Enhancing server availability and security through failure-oblivious computing
OSDI'04 Proceedings of the 6th conference on Symposium on Opearting Systems Design & Implementation - Volume 6
Libckpt: transparent checkpointing under Unix
TCON'95 Proceedings of the USENIX 1995 Technical Conference Proceedings
Modular typestate checking of aliased objects
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Rollback and Recovery Strategies for Computer Programs
IEEE Transactions on Computers
Internal and external token-based synchronization in object-oriented languages
JMLC'06 Proceedings of the 7th joint conference on Modular Programming Languages
Conflict detection and validation strategies for software transactional memory
DISC'06 Proceedings of the 20th international conference on Distributed Computing
VMCAI'06 Proceedings of the 7th international conference on Verification, Model Checking, and Abstract Interpretation
Repairing structurally complex data
SPIN'05 Proceedings of the 12th international conference on Model Checking Software
COORDINATION'06 Proceedings of the 8th international conference on Coordination Models and Languages
A domain-specific approach to architecturing error handling in pervasive computing
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
A systematic review of software robustness
Information and Software Technology
Hi-index | 0.00 |
We present Bristlecone, a programming language for robust software systems. Bristlecone applications have two components: a high-level organization description that specifies how the application's conceptual operations interact, and a low-level operational description that specifies the sequence of instructions that comprise an individual conceptual operation. Bristlecone uses the high-level organization description to recover the software system from an error to a consistent state and to reason how to safely continue the software system's execution after the error.We have implemented a compiler and runtime for Bristlecone.We have evaluated this implementation on three benchmark applications: a web crawler, a web server, and a multi-room chat server. We developed both a Bristlecone version and a Java version of each benchmark application. We used injected failures to evaluate the robustness of each version of the application. We found that the Bristlecone versions of the benchmark applications more successfully survived the injected failures.