; Hand this in to: ece849-staff+hw@ece.cmu.edu ; Required Reading @article{goodenough75_exception_handling, author = "J. Goodenough", title = "Exception Handling: Issues and Proposed Notation", year = "1975", volume = "18", number = "12", pages = "683--696", abstract = "This paper defines exception conditions, discusses the requirements exception handling language features must satisfy, and proposes some new language features for dealing with exceptions in an orderly and reliable way. The proposed language featrues serve to highlight exception handling issues by showing how deficiencies in current approaches can be remedied.", url = "http://portal.acm.org/citation.cfm?doid=361227.361230", studentname = "", summary = "", contribution1 ="", contribution2 ="", contribution3 ="", contribution4 ="", contribution5 ="", weakness1 = "", weakness2 = "", weakness3 = "", weakness4 = "", weakness5 = "", interesting = "high/med/low", opinions = "", } @misc{ vo97xept, author = "Vo, Kiem-Pheng; Wang, Yi-Min; Chung, P.Emerald; Huang, Yennun", title = "Xept: a software instrumentation method for exception handling", year = "1997", abstract = "Modern software systems are often built from existing library components. A common problem is how to fix bugs when source code is not available. Xept is an instrumentation language and tool that can be used to add to object code the ability to detect, mask, recover and propagate exceptions from library functions. This helps to alleviate or avoid a large class of errors resulting from function misuses. Examples will be given to show applications of Xept in actual software systems. 1...", url = "http://ieeexplore.ieee.org/iel3/4993/13710/00630848.pdf", studentname = "", summary = "", contribution1 ="", contribution2 ="", contribution3 ="", contribution4 ="", contribution5 ="", weakness1 = "", weakness2 = "", weakness3 = "", weakness4 = "", weakness5 = "", interesting = "high/med/low", opinions = "", } @misc{romanovsky00_n_version_exception_handling, author = "A. Romanovsky", title = "An Exception Handling Framework for N-Version Programming in Object-Oriented Systems", booktitle = {Object-Oriented Real-Time Distributed Computing: ISORC}, pages = {226--233}, year = {2000}, abstract = "An approach to introducing exception handling into object-oriented N-version programming (NVP) is proposed. General principles of structuring systems with diversity are outlined. The importance of using exceptions while applying diversely developed software is shown. Internal and external exceptions are clearly separated in our framework: each version has its own internal exceptions but the external exceptions of all versions have to be the same and identical to the interface exceptions of the diversely designed class.This scheme requires an adjudicator of a special kind to allow signaling interface exceptions when a majority of versions have signaled the same exception. These ideas are demonstrated using a general class diversity framework developed recently. An Ada implementation is outlined.", url = "http://ieeexplore.ieee.org/iel5/6774/18130/00839534.pdf", studentname = "", summary = "", contribution1 ="", contribution2 ="", contribution3 ="", contribution4 ="", contribution5 ="", weakness1 = "", weakness2 = "", weakness3 = "", weakness4 = "", weakness5 = "", interesting = "high/med/low", opinions = "", } ; Supplemental Reading @Article{ buhr00_advanced_exception_handling, author = {Buhr, P.A. and Mok, W.Y.R.}, title = {Advanced exception handling mechanisms}, journal = {{IEEE} Transactions on Software Engineering}, year = {2000}, volume = {26}, number = {9}, pages = {820-836}, month = {September}, abstract = "It is no longer possible to consider exception handling as a secondary issue in language design, or even worse, a mechanism added after the fact via a library approach. Exception handling is a primary feature in language design and must be integrated with other major features, including advanced control flow, objects, coroutines, concurrency, real-time, and polymorphism. Integration is crucial as there are both obvious and subtle interactions between exception handling and other language features. Unfortunately, many exception handling mechanisms work only with a subset of the features and in the sequential domain. A framework for a comprehensive, easy to use, and extensible exception handling mechanism is presented for a concurrent, object-oriented environment. The environment includes language constructs with separate execution stacks, e.g. coroutines and tasks, so the exception environment is significantly more complex than the normal single-stack situation. The pros and cons of various exception features are examined, along with feature interaction with other language mechanisms. Both exception termination and resumption models are examined in this environment, and previous criticisms of the resumption model, a feature commonly missing in modern languages, are addressed", url = "http://ieeexplore.ieee.org/iel5/32/19000/00877844.pdf", studentname = "", summary = "", contribution1 ="", contribution2 ="", contribution3 ="", contribution4 ="", contribution5 ="", weakness1 = "", weakness2 = "", weakness3 = "", weakness4 = "", weakness5 = "", interesting = "high/med/low", opinions = "", } @Article{ xu00_distributed_concurrent_exceptions, author = {Jie Xu; Romanovsky, A.; Randell, B.}, title = {Concurrent exception handling and resolution in distributed object systems}, journal = {IEEE Trans. Parallel and Distributed Systems}, year = {2000}, volume = {11}, number = {10}, pages = {1019--1032}, month = {Oct.}, url = "http://ieeexplore.ieee.org/iel5/71/19225/00888642.pdf", studentname = "", summary = "", contribution1 ="", contribution2 ="", contribution3 ="", contribution4 ="", contribution5 ="", weakness1 = "", weakness2 = "", weakness3 = "", weakness4 = "", weakness5 = "", interesting = "high/med/low", opinions = "", } @techreport{ cristian87exception, author = "F. Cristian", title = "Exception Handling", number = "RJ5724 (57703)", year = "1987", url = "http://citeseer.ist.psu.edu/cristian89exception.html", studentname = "", summary = "", contribution1 ="", contribution2 ="", contribution3 ="", contribution4 ="", contribution5 ="", weakness1 = "", weakness2 = "", weakness3 = "", weakness4 = "", weakness5 = "", interesting = "high/med/low", opinions = "", } @InProceedings{cristian80_exception_swft, author = {Flaviu Cristian}, title = {Exception Handling and Software Fault Tolerance}, booktitle = {FTCS-25: Highlights from Twenty-Five Years.}, pages = {120}, year = {1995}, url = "http://ieeexplore-beta.ieee.org//iel3/3846/11214/00532622.pdf", studentname = "", summary = "", contribution1 ="", contribution2 ="", contribution3 ="", contribution4 ="", contribution5 ="", weakness1 = "", weakness2 = "", weakness3 = "", weakness4 = "", weakness5 = "", interesting = "high/med/low", opinions = "", } @misc{ romanovsky97exception, author = "A. Romanovsky and J. Xu and B. Randell", title = "Exception Handling in Object-Oriented Real-Time Distributed Systems", year = "1997", abstract = "Exception handling in a complex concurrent and distributed system (e.g. one involving cooperating rather than just competing activities) is often a necessary, but a very difficult, task. No widely accepted models or approaches exist in this area. The object-oriented paradigm, for all its structuring benefits, and real-time requirements each add further difficulties to the design and implementation of exception handling in such systems. In this paper, we develop a general structuring framework...", url = "http://ieeexplore.ieee.org/iel4/5419/14648/00666766.pdf", studentname = "", summary = "", contribution1 ="", contribution2 ="", contribution3 ="", contribution4 ="", contribution5 ="", weakness1 = "", weakness2 = "", weakness3 = "", weakness4 = "", weakness5 = "", interesting = "high/med/low", opinions = "", }