Download or read book Automated and Algorithmic Debugging written by Peter A. Fritzson and published by Springer Science & Business Media. This book was released on 1993-11-10 with total page 392 pages. Available in PDF, EPUB and Kindle. Book excerpt: Debugging has always been a costly part of software development, and many attempts have been made to provide automatic computer support for this task.Automated debugging has seen major develoments over the last decade. Onesuccessful development is algorithmic debugging, which originated in logic programming but was later generalized to concurrent, imperative, and lazy functional languages. Important advances have also been made in knowledge-based program debugging, and in approaches to automated debugging based on static and dynamic program slicing based on dataflow and dependence analysis technology. This is the first collected volume of papers on automated debugging and presents latest developments, tutorial papers, and surveys.
Download or read book Automated and Algorithmic Debugging written by Peter A. Fritzson and published by . This book was released on 2014-09-01 with total page 388 pages. Available in PDF, EPUB and Kindle. Book excerpt:
Download or read book Generalized Algorithmic Debugging written by N. Shahmehri and published by . This book was released on 1991 with total page 189 pages. Available in PDF, EPUB and Kindle. Book excerpt: Abstract: "This thesis presents a novel method for semi-automatic program debugging -- the Generalized Algorithmic Debugging Technique, GADT. The notion of declarative algorithmic debugging was first introduced for logic programming. However, this is the first algorithmic debugging method based on the principle of declarative debugging which can handle the debugging of programs written in an imperative language including loops and side-effects. In order to localize a bug, the debugging algorithm incrementally acquires knowledge about the debugged program. The knowledge is supplied by the user. The algorithm terminates when the bug has been localized to within the body of a procedure or an explicit loop. The generalized algorithmic debugging method uses program transformation and program flow analysis techniques to transform the subject program to a largely side-effect-free internal form which is used for bug localization. Thus, this algorithm defines two views of a program: (1) The user view which is the original program with side-effects and (2) the transformed view which is the transformed side-effect-free version of the original program. Transparent program debugging is supported by maintaining a mapping between these two views. The bug localization algorithm works on the transformed version, whereas user interactions are defined in terms of the user view. We have presented a general technique which it [sic] is not based on any ad-hoc assumptions about the subject program. The flexibility of this method has made it possible to further improve the bug localization algorithm by employing a number of other techniques, i.e. program slicing and test database lookup, thus increasing the degree of automation provided by GADT. These extensions are topics for ongoing research projects and future work. A survey and evaluation of a number of automated debugging systems and the techniques behind these systems are also presented. We have introduced several criteria for comparing these techniques with GADT. A prototype implementation of the generalized algorithmic debugging technique has been carried out to verify its feasibility, and to provide feedback for further refinement of the method. This has already resulted in a more efficient set of transformations, described in the thesis, compared to the initial prototype."
Download or read book Automated and Algorithmic Debugging written by and published by . This book was released on 1995 with total page 30 pages. Available in PDF, EPUB and Kindle. Book excerpt:
Download or read book Automated and algorithmic debugging written by Peter A. Fritzson and published by . This book was released on 1993 with total page 367 pages. Available in PDF, EPUB and Kindle. Book excerpt:
Download or read book Algorithmic Program Debugging written by Ehud Y. Shapiro and published by MIT Press (MA). This book was released on 2004-07-01 with total page 231 pages. Available in PDF, EPUB and Kindle. Book excerpt: Shapiro productively combines elements of programming languages, environments, logic, and inductive inference to produce effective debugging aids. The author's use of the PROLOG language provides an efficient implementation of the debugging algorithms.
Download or read book AADEBUG written by Mireille Ducasse and published by . This book was released on 1995 with total page 250 pages. Available in PDF, EPUB and Kindle. Book excerpt:
Download or read book Program Reliability Through Algorithmic Design and Analysis written by Roopsha Samanta and published by . This book was released on 2013 with total page 562 pages. Available in PDF, EPUB and Kindle. Book excerpt: Software systems are ubiquitous in today's world and yet, remain vulnerable to the fallibility of human programmers as well as the unpredictability of their operating environments. The overarching goal of this dissertation is to develop algorithms to enable automated and efficient design and analysis of reliable programs. In the first and second parts of this dissertation, we focus on the development of programs that are free from programming errors. The intent is not to eliminate the human programmer, but instead to complement his or her expertise, with sound and efficient computational techniques, when possible. To this end, we make contributions in two specific domains. Program debugging --- the process of fault localization and error elimination from a program found to be incorrect --- typically relies on expert human intuition and experience, and is often a lengthy, expensive part of the program development cycle. In the first part of the dissertation, we target automated debugging of sequential programs. A broad and informal statement of the (automated) program debugging problem is to suitably modify an erroneous program, say P, to obtain a correct program, say P'. This problem is undecidable in general; it is hard to formalize; moreover, it is particularly challenging to assimilate and mechanize the customized, expert programmer intuition involved in the choices made in manual program debugging. Our first contribution in this domain is a methodical formalization of the program debugging problem, that enables automation, while incorporating expert programmer intuition and intent. Our second contribution is a solution framework that can debug infinite-state, imperative, sequential programs written in higher-level programming languages such as C. Boolean programs, which are smaller, finite-state abstractions of infinite-state or large, finite-state programs, have been found to be tractable for program verification. In this dissertation, we utilize Boolean programs for program debugging. Our solution framework involves two main steps: (a) automated debugging of a Boolean program, corresponding to an erroneous program P, and (b) translation of the corrected Boolean program into a correct program P'. Shared-memory concurrent programs are notoriously difficult to write, verify and debug; this makes them excellent targets for automated program completion, in particular, for synthesis of synchronization code. Extant work in this domain has focused on either propositional temporal logic specifications with simplistic models of concurrent programs, or more refined program models with the specifications limited to just safety properties. Moreover, there has been limited effort in developing adaptable and fully-automatic synthesis frameworks that are capable of generating synchronization at different levels of abstraction and granularity. In the second part of this dissertation, we present a framework for synthesis of synchronization for shared-memory concurrent programs with respect to temporal logic specifications. In particular, given a concurrent program composed of synchronization-free processes, and a temporal logic specification describing their expected concurrent behaviour, we generate synchronized processes such that the resulting concurrent program satisfies the specification. We provide the ability to synthesize readily-implementable synchronization code based on lower-level primitives such as locks and condition variables. We enable synchronization synthesis of finite-state concurrent programs composed of processes that may have local and shared variables, may be straight-line or branching programs, may be ongoing or terminating, and may have program-initialized or user-initialized variables. We also facilitate expression of safety and liveness properties over both control and data variables by proposing an extension of propositional computation tree logic. Most program analyses, verification, debugging and synthesis methodologies target traditional correctness properties such as safety and liveness. These techniques typically do not provide a quantitative measure of the sensitivity of a computational system's behaviour to unpredictability in the operating environment. We propose that the core property of interest in reasoning in the presence of such uncertainty is robustness --- small perturbations to the operating environment do not change the system's observable behavior substantially. In well-established areas such as control theory, robustness has always been a fundamental concern; however, the techniques and results therein are not directly applicable to computational systems with large amounts of discretized, discontinuous behavior. Hence, robustness analysis of software programs used in heterogeneous settings necessitates development of new theoretical frameworks and algorithms. In the third part of this dissertation, we target robustness analysis of two important classes of discrete systems --- string transducers and networked systems of Mealy machines. For each system, we formally define robustness of the system with respect to a specific source of uncertainty. In particular, we analyze the behaviour of transducers in the presence of input perturbations, and the behaviour of networked systems in the presence of channel perturbations. Our overall approach is automata-theoretic, and necessitates the use of specialized distance-tracking automata for tracking various distance metrics between two strings. We present constructions for such automata and use them to develop decision procedures based on reducing the problem of robustness verification of our systems to the problem of checking the emptiness of certain automata. Thus, the system under consideration is robust if and only if the languages of particular automata are empty.
Download or read book Using Assertions in Declarative and Operational Models for Automated Debugging written by Linkoeping University. Dept. of Computer and Information Science and published by . This book was released on 1993 with total page 12 pages. Available in PDF, EPUB and Kindle. Book excerpt: Abstract: "The paper presents an improved method for semi- automatic bug localization, by extending the Generalized Algorithmic Debugging Technique, GADT [Fritzson, et.al-91], which uses declarative assertions about program units such as procedures, with operational assertions about program behavior. For example, functional properties are best expressed through declarative assertions about procedure units, whereas order-dependent properties such as race conditions in parallel processing, or sequencing constraints in general, are more easily expressed using operational semantics. A powerful assertion language, called FORMAN, has been developed to this end. Such assertions can be collected into assertion-libraries, which can greatly increase the degree of automation in bug localization. The long-range goal of this work is a semi-automatic debugging and testing system which can be used during large- scale program development of non-trivial programs. The need for such automated debugging support will increase as applications on parallel architectures become more prevalent, since such programs are both harder to write and to debug, partly because of non-sequential execution semantics. Our previously developed GADT method was the first declarative algorithmic debugging technique for procedural imperative languages with side-effects. GADT is generally applicable to procedural languages, and is not dependent on any ad hoc assumptions regarding the subject program. The original form of algorithmic debugging, introduced by Shapiro [Shapiro-82], is however limited to small Prolog programs without side-effects. Another drawback of the original method is the large number of interactions with the user during bug localization. To our knowledge, the extended GADT presented here is the first method which uses powerful operational assertions in algorithmic debugging. In addition to providing support for local-level bug localization within procedures (which is not handled well by basic algorithmic debugging), the operational assertions reduce the number of irrelevant questions to the programmer during bug localization, thus further improving bug localization. Previously, we have enhanced the bug localization properties of GADT, using lookup in a category partition testing database. In addition, we use program slicing, a data flow analysis technique, to dynamically compute which parts of the program are relevant for the search. A prototype of the GADT has been implemented in Pascal, supporting debugging in a subset of Pascal. An interpreter of FORMAN assertions has also been implemented in Pascal. During bug localization, both types of assertions are evaluated on execution traces."
Download or read book Why Programs Fail written by Andreas Zeller and published by Morgan Kaufmann. This book was released on 2009-06-12 with total page 425 pages. Available in PDF, EPUB and Kindle. Book excerpt: An award-winning guide to faster and easier debugging is now updated with the latest tools and techniques. It demystifies one of the toughest aspects of software programming, showing clearly how to discover what caused software failures, and fix them with minimal muss and fuss.
Download or read book Debugging at the Electronic System Level written by Frank Rogin and published by Springer Science & Business Media. This book was released on 2010-06-17 with total page 172 pages. Available in PDF, EPUB and Kindle. Book excerpt: Debugging becomes more and more the bottleneck to chip design productivity, especially while developing modern complex integrated circuits and systems at the Electronic System Level (ESL). Today, debugging is still an unsystematic and lengthy process. Here, a simple reporting of a failure is not enough, anymore. Rather, it becomes more and more important not only to find many errors early during development but also to provide efficient methods for their isolation. In Debugging at the Electronic System Level the state-of-the-art of modeling and verification of ESL designs is reviewed. There, a particular focus is taken onto SystemC. Then, a reasoning hierarchy is introduced. The hierarchy combines well-known debugging techniques with whole new techniques to improve the verification efficiency at ESL. The proposed systematic debugging approach is supported amongst others by static code analysis, debug patterns, dynamic program slicing, design visualization, property generation, and automatic failure isolation. All techniques were empirically evaluated using real-world industrial designs. Summarized, the introduced approach enables a systematic search for errors in ESL designs. Here, the debugging techniques improve and accelerate error detection, observation, and isolation as well as design understanding.
Download or read book Debug Automation from Pre Silicon to Post Silicon written by Mehdi Dehbashi and published by . This book was released on 2014-10-31 with total page 188 pages. Available in PDF, EPUB and Kindle. Book excerpt:
Download or read book Debug Automation from Pre Silicon to Post Silicon written by Mehdi Dehbashi and published by Springer. This book was released on 2014-09-25 with total page 180 pages. Available in PDF, EPUB and Kindle. Book excerpt: This book describes automated debugging approaches for the bugs and the faults which appear in different abstraction levels of a hardware system. The authors employ a transaction-based debug approach to systems at the transaction-level, asserting the correct relation of transactions. The automated debug approach for design bugs finds the potential fault candidates at RTL and gate-level of a circuit. Debug techniques for logic bugs and synchronization bugs are demonstrated, enabling readers to localize the most difficult bugs. Debug automation for electrical faults (delay faults)finds the potentially failing speedpaths in a circuit at gate-level. The various debug approaches described achieve high diagnosis accuracy and reduce the debugging time, shortening the IC development cycle and increasing the productivity of designers. Describes a unified framework for debug automation used at both pre-silicon and post-silicon stages; Provides approaches for debug automation of a hardware system at different levels of abstraction, i.e., chip, gate-level, RTL and transaction level; Includes techniques for debug automation of design bugs and electrical faults, as well as an infrastructure to debug NoC-based multiprocessor SoCs.
Download or read book How Debuggers Work written by Jonathan B. Rosenberg and published by Wiley. This book was released on 1996 with total page 276 pages. Available in PDF, EPUB and Kindle. Book excerpt: A total guide to debuggers: what they do, how they work, and how to use them to produce better programs "Debuggers are the magnifying glass, the microscope, the logic analyzer, the profiler, and the browser with which a program can be examined."-Jonathan B. Rosenberg Debuggers are an indispensable tool in the development process. In fact, during the course of the average software project, more hours are spent debugging software than in compiling code. Yet, not many programmers really know how to constructively interpret the results they get back from debuggers. And even fewer know what makes these complex suites of algorithms and data structures tick. Now in this extremely accessible guide, Jonathan B. Rosenberg demystifies debuggers for programmers and shows them how to make better use of debuggers in their next projects. Taking a hands-on, problem-solving approach to a complex subject, Rosenberg explains how debuggers work and why programmers use them. Most importantly, he provides practical discussions of debugger algorithms and procedures for their use, accompanied by many practical examples. The author also discusses a wide variety of systems applications, from Microsoft's Win32 debug API to a large parallel architecture. Visit our Web site at: http://www.wiley.com/compbooks/
Download or read book Encyclopedia of Software Engineering Three Volume Set Print written by Phillip A. Laplante and published by CRC Press. This book was released on 2010-11-22 with total page 1872 pages. Available in PDF, EPUB and Kindle. Book excerpt: Software engineering requires specialized knowledge of a broad spectrum of topics, including the construction of software and the platforms, applications, and environments in which the software operates as well as an understanding of the people who build and use the software. Offering an authoritative perspective, the two volumes of the Encyclopedia of Software Engineering cover the entire multidisciplinary scope of this important field. More than 200 expert contributors and reviewers from industry and academia across 21 countries provide easy-to-read entries that cover software requirements, design, construction, testing, maintenance, configuration management, quality control, and software engineering management tools and methods. Editor Phillip A. Laplante uses the most universally recognized definition of the areas of relevance to software engineering, the Software Engineering Body of Knowledge (SWEBOK®), as a template for organizing the material. Also available in an electronic format, this encyclopedia supplies software engineering students, IT professionals, researchers, managers, and scholars with unrivaled coverage of the topics that encompass this ever-changing field. Also Available Online This Taylor & Francis encyclopedia is also available through online subscription, offering a variety of extra benefits for researchers, students, and librarians, including: Citation tracking and alerts Active reference linking Saved searches and marked lists HTML and PDF format options Contact Taylor and Francis for more information or to inquire about subscription options and print/online combination packages. US: (Tel) 1.888.318.2367; (E-mail) [email protected] International: (Tel) +44 (0) 20 7017 6062; (E-mail) [email protected]
Download or read book Pillars of Computer Science written by Arnon Avron and published by Springer Science & Business Media. This book was released on 2008-02-08 with total page 699 pages. Available in PDF, EPUB and Kindle. Book excerpt: The Person 1 Boris Abramovich Trakhtenbrot ( ) - his Hebrew given name is Boaz ( ) - is universally admired as a founding - ther and long-standing pillar of the discipline of computer science. He is the ?eld's preeminent distinguished researcher and a most illustrious trailblazer and disseminator. He is unmatched in combining farsighted vision, unfaltering c- mitment, masterful command of the ?eld, technical virtuosity, aesthetic expr- sion, eloquent clarity, and creative vigor with humility and devotion to students and colleagues. For over half a century, Trakhtenbrot has been making seminal contributions to virtually all of the central aspects of theoretical computer science, inaugur- ing numerous new areas of investigation. He has displayed an almost prophetic ability to foresee directions that are destined to take center stage, a decade or morebeforeanyoneelsetakesnotice.Hehasneverbeentempted toslowdownor limithisresearchtoareasofendeavorinwhichhehasalreadyearnedrecognition and honor. Rather, he continues to probe the limits and position himself at the vanguard of a rapidly developing ?eld, while remaining, as always, unassuming and open-minded.
Download or read book Automated Software Engineering A Deep Learning Based Approach written by Suresh Chandra Satapathy and published by Springer Nature. This book was released on 2020-01-07 with total page 118 pages. Available in PDF, EPUB and Kindle. Book excerpt: This book discusses various open issues in software engineering, such as the efficiency of automated testing techniques, predictions for cost estimation, data processing, and automatic code generation. Many traditional techniques are available for addressing these problems. But, with the rapid changes in software development, they often prove to be outdated or incapable of handling the software’s complexity. Hence, many previously used methods are proving insufficient to solve the problems now arising in software development. The book highlights a number of unique problems and effective solutions that reflect the state-of-the-art in software engineering. Deep learning is the latest computing technique, and is now gaining popularity in various fields of software engineering. This book explores new trends and experiments that have yielded promising solutions to current challenges in software engineering. As such, it offers a valuable reference guide for a broad audience including systems analysts, software engineers, researchers, graduate students and professors engaged in teaching software engineering.