8 research outputs found

    Discovering faults in idiom-based exception handling.

    Get PDF
    ABSTRACT In this paper, we analyse the exception handling mechanism of a state-of-the-art industrial embedded software system. Like many systems implemented in classic programming languages, our subject system uses the popular return-code idiom for dealing with exceptions. Our goal is to evaluate the fault-proneness of this idiom, and we therefore present a characterisation of the idiom, a fault model accompanied by an analysis tool, and empirical data. Our findings show that the idiom is indeed fault prone, but that a simple solution can lead to significant improvements

    Proceedings of VVSS2007 - verification and validation of software systems, 23rd March 2007, Eindhoven, The Netherlands

    Get PDF

    Proceedings of VVSS2007 - verification and validation of software systems, 23rd March 2007, Eindhoven, The Netherlands

    Get PDF

    A linguagem de programação Cm

    Get PDF
    Orientador: Rogerio Drummond Burnier Pessoa de Mello FilhoDissertação (mestrado) - Universidade Estadual de Campinas, Instituto de Matematica, Estatistica e Ciencia da ComputaçãoResumo: Cm é uma linguagem de programação em evolução. Ela surgiu em 1985, no DCCUnicamp, e vem se desenvolvendo desde então. Atualmente, Cm apresenta características comparáveis com de C++ para programação orientada a objetos e caminha para além disso, incorporando facilidades para programação concorrente e distribuída. Esta tese de mestrado descreve o estágio atual da linguagem de programação Cm e seu compilador, ressaltando as contribuições do autor em ambos. Inicialmente a tese incorporava o manual de referência da linguagem, mas, devido ao volume final, este foi removido e publicado em separado. Para uma referência completa de Cm, o leitor deve consultar também seu manual de referência (vi de referências na própria tese). Descrevendo brevemente, Cm é uma extensão de C com facilidades para programação modular e orientada a objetos. Ela preserva a flexibilidade e estrutura de comandos de C, adicionando uniformidade e verificação forte de tipos, encapsulamento de dados, polimorfismo paramétrico, herança múltipla, sobrecarga de operadores e funções e tratamento de exceções. As características de Cm são comparáveis às de C++, mas seus recursos inovadores foram introduzidos de forma mais clara e coerente, evitando ainda diversas inconveniências oriundas de C. Seu compilador analisa automaticamente as relações de dependência entre módulos necessárias ao processo de make, gerenciando projetos complexos sem necessidade de intervenção do programadorAbstract: Since its first definition (1985, Computer Science Department of Unicamp) the Cm programming language has experienced continuous evolution. Cm compares favorably with C++ about object-oriented features; it is also about to support concurrent and distributed programming. This thesis describes the current state of the Cm programming language and its compiler emphasizing the author's contribution on both. For a complete language understanding please refer to the Cm Reference Manual, inc1uded in the first edition os this work but now published separately due to its bulk. Cm is briefly described as an extension of C supporting modular and object-oriented programming. Cm preserves its ancestor's flexibility and command structure while adding uniformity and strong type checking, data encapsulation, parametric polymorphism, multiple inheritance, operator/function overloading and exception handling. Although somewhat similar to C++, Cm combines new features in a c1earer and more coherent approach while avoiding several C inconsistencies. Also, the Cm compiler automatically analyzes modules in a complex project, so the programmer does not need to study dependency relations or write a make fileMestradoMestre em Ciência da Computaçã

    Advanced Concepts in Asynchronous Exception Handling

    Get PDF
    Asynchronous exception handling is a useful and sometimes necessary alternative form of communication among threads. This thesis examines and classifies general concepts related to asynchrony, asynchronous propagation control, and how asynchronous exception handling affects control flow. The work covers four advanced topics affecting asynchronous exception-handling in a multi-threaded environment. The first topic is concerned with the non-determinism that asynchronous exceptions introduce into a program's control-flow because exceptions can be propagated at virtually any point during execution. The concept of asynchronous propagation control, which restricts the set of exceptions that can be propagated, is examined in depth. Combining it with a restriction of asynchrony that permits propagation of asynchronous exceptions only at certain well-defined (poll) points can re-establish sufficient determinism to verify a program's correctness, but introduces overhead, as well as a delay between the delivery of an asynchronous exception and its propagation. It also disturbs a programmer's intuition about asynchronous propagation in the program, and requires the use of programming idioms to avoid errors. The second topic demonstrates how a combined model of full and restricted asynchrony can be safely employed, and thus, allow for a more intuitive use of asynchronous propagation control, as well as potentially improve performance. The third topic focuses on the delay of propagation that is introduced when a thread is blocked, i.e., on concurrency constructs that provide mutual exclusion or synchronization. An approach is presented to transparently unblock threads so propagation of asynchronous termination and resumption exceptions can begin immediately. The approach does not require additional syntax, simplifies certain programming situations, and can improve performance. The fourth topic explores usability issues affecting the understanding of (asynchronous) exception handling as a language feature. To overcome these issues, tools and language features are presented that help in understanding exception handling code by providing additional run-time information, as well as assist in testing. For all topics, the necessary extensions to the syntax/semantics of the language are discussed; where applicable, a prototypical implementation is presented, with examples that demonstrate the benefits of the new approaches

    SOFTWARE—PRACTICE AND EXPERIENCE. VOL. 22(10), 827–848 (OCTOBER 1992) Exceptional C or C with Exceptions

    No full text
    C does not have exception handling facilities. Errors are handled by examining the value returned by each function and signals (conditions reported to the program) are handled by using library functions. These approaches lead to ad hoc error-handling techniques and can make programs hard to understand. Exceptional C, a superset of C, provides exception handling facilities. Exceptional C integrates the two techniques used by C programmers (i.e., status values and signals) to handle errors into one unified exception handling mechanism. In this paper, I review exception handling models, specify the criteria used for designing the exception handling facilities in Exceptional C, and then describe these facilities. I also illustrate the use of the exception handling facilities with examples. KEY WORDS Exception handling Error handling Fault toleranc
    corecore