Data abstraction and the correctness of modular programming.

  • 367 Pages
  • 0.92 MB
  • 1701 Downloads
  • English
by
University of Edinburgh, Department of Computer Science , Edinburgh
SeriesThesis -- CST 42-87
ContributionsUniversity of Edinburgh. Department of Computer Science.
The Physical Object
Pagination367p.
ID Numbers
Open LibraryOL13934480M

Data Abstraction and the Correctness of Modular Programming O. Schoett. Abstract: A theory of data abstraction in modular programming is presented that explains why this technique leads to correct programs.

Data abstraction allows users and implementers to take different views of a specification: While users may depend on a specification as it is, implementers need not.

Conveniently, some of C's features, both in the language and the pre-processor, can be co-opted into providing Modula-like capabilities. These features, in conjunction with a set of conventions, make modular programming in C a practical and effective technique.

Modular programming.

Description Data abstraction and the correctness of modular programming. FB2

Programmers work with abstractions every day. Written by a world-renowned expert on programming methodology, this book shows how to build production-quality programs--programs that are reliable, easy to maintain, and quick to modify.

Its emphasis is on modular program construction: how to get the modules right and how to organize a program as a collection of modules. In software engineering and computer science, abstraction is. the process of removing physical, spatial, or temporal details or attributes in the study of objects or systems in order to focus attention on details of higher importance, it is also very similar in nature to the process of generalization;; the creation of abstract concept-objects which are created by mirroring.

Program Modules This part of the book focuses on abstraction mechanisms. It discusses procedures and exceptions, data abstraction, iteration abstraction, families of data abstractions, and polymorphic abstractions.

Three activities are emphasized in the discussion of by: Programming in the Large The latter part of Program Development in Java is concerned with how to design and implement large programs in a modular way.

It builds on the material about abstractions and specifications covered in the earlier part of the book. The material on programming in the large covers four main topics.3/5(13). Abstraction enables modular programming by hiding the details of implementations.

Specifications are a part of that kind of abstraction: they reveal certain information about the behavior of a module without disclosing all the details of the module's implementation. Locality is one of the benefits of abstraction by specification. A module can. Description The Third Edition of Data Abstraction and Problem Solving with Java: Walls and Mirrors employs the analogies of Walls (data abstraction) and Mirrors (recursion) to teach Java programming design solutions, in a way that beginning students find accessible.

The book has a student-friendly pedagogical approach that carefully accounts for the strengths and Format: On-line Supplement. On Understanding Data Abstraction, Revisited Although object-oriented programming and abstract data.

Proof of correctness of data : William R. Cook. Because each module in a program corresponds to an abstraction, such as a collection of documents or a routine to search the collection for documents of interest, the book first explains the kinds of abstractions most useful to programmers: procedures; iteration abstractions; and, most critically, data : Barbara Liskov.

Details Data abstraction and the correctness of modular programming. EPUB

Course Info. CS (formerly CS ) is the third programming course in the Computer Science curriculum, following CS / and CS The goal of the course is to help students become excellent programmers and software designers who can design and implement software that is elegant, efficient, and correct, and whose code can be maintained and reused.

The more recent proposal of Hoffman et al. [2] calls for an updated CS2—a freshman or sophomore course—to include traditional data structure material, such as lists, trees, graphs, and sorting, along with an emphasis on data abstraction, modularity, and correctness.

Modular programming also called as stepwise refinement or top-down design is a programming approach that breaks down program functions into modules. Modular programming definition Modular programming is a technique of developing software by separating the functionality of a program into independent, interchangeable modules that are combined together to get the.

Managed Data is a two-level approach to data abstraction in which programmers first define data description and manipulation mechanisms, and then use. Description. This book is based on the classic "Walls and Mirrors" approach used in the best-selling Data Abstraction and Problem Solving with C++, and is now updated to the Java programming uses the running theme of "Walls and Mirrors" to help make clear the challenging concepts of recursion (the mirrors) and data abstraction (the walls).Availability: This title is out of print.

Schoett, Data abstraction and the correctness of modular programming, Thesis CST (also ECS-LFCS), Department of Computer Science, University of Edinburgh (). ducted at the University of Edinburgh on studentships from the Studienstiftung des deutschen 'Volkes and the University of by: The Seventh Edition of Data Abstraction & Problem Solving with C++: Walls and Mirrors introduces fundamental computer science concepts related to the study of data structures.

The text Explores problem solving and the efficient access and manipulation of data and is intended for readers who already have a basic understanding of C++. Schoett O.

Data Abstraction and the Correctness of Modular Programming. Ph.D. thesis; Report CST–87, Dept. of Computer Science, Univ. of Edinburgh (). Google ScholarCited by: Finally, notwithstanding common claims that OOP and OOD have no relationship whatsoever to structured and modular programming, OOP and OOD are also outcomes of the motivations behind structured programming and structured design within a modularity that embraces abstraction and decomposition using data coupling amongst modules.

Data Abstraction and the Correctness of Modular Programming.

Download Data abstraction and the correctness of modular programming. PDF

PhD thesis, University of Edinburgh, PhD thesis, University of Edinburgh, Google ScholarCited by: 1. Chapter 7: Design and Development. Jonathan Valvano and Ramesh Yerraballi. In this chapter, we will begin by presenting a general approach to modular design. In specific, we will discuss how to organize software blocks in an effective manner.

The ultimate success of an embedded system project depends both on its software and hardware. Data Abstraction and Problem Solving with C++: Walls & Mirrors provides a firm foundation in data abstraction that emphasizes the distinction between specifications and implementation as the basis for an object-oriented approach.

Software engineering principles and concepts as well as UML diagrams are used to enhance student understanding. Chapter 1. Why Prove the Correctness of Programs.

1 Chapter 2. Formalizing Program Syntax 3 Concrete Syntax 3 Abstract Syntax 4 Structural Induction Principles 5 Decidable Theories 6 Simpli cation and Rewriting 8 Chapter 3. Data Abstraction 11 Algebraic Interfaces for Abstract Data Types 11 File Size: KB.

Program Modules This part of the book focuses on abstraction mechanisms. It discusses procedures and exceptions, data abstraction, iteration abstraction, families of data abstractions, and polymorphic abstractions.

Three activities are emphasized in the discussion of abstractions/5(18). Full text of "Data Abstraction & Problem Solving With C++" See other formats. The book shows how to implement a relational programming language in Scheme, or in any other functional language, and demonstrates the remarkable flexibility of the resulting relational programs.

As in the first edition, the pedagogical method is a series of questions and answers, which proceed with the characteristic humor that marked The. Modular Programming Versus Object Oriented Programming (The Good, The Bad and the Ugly) This term defines the fact that both the data, and the functionaly that could affect or display that data are both included under a unified name (the object name itself).

this essentially goes against all programming techniques. Abstraction is the. Because each module in a program corresponds to an abstraction, such as a collection of documents or a routine to search the collection for documents of interest, the book first explains the kinds of abstractions most useful to programmers: procedures; iteration abstractions; and, most critically, data abstractions.

Modular programming and modular verification go hand in hand, but most existing logics for concurrency ignore two crucial forms of modularity: *higher-order functions*, which are essential for building reusable components, and *granularity abstraction*, a key technique for hiding the intricacies of fine-grained concurrent data structures from their clients.

This talk will. COVID Resources. Reliable information about the coronavirus (COVID) is available from the World Health Organization (current situation, international travel).Numerous and frequently-updated resource results are available from this ’s WebJunction has pulled together information and resources to assist library staff as they consider how to handle.

Effect handlers provide an abstraction for modular effectful programming: a handler acts as an interpreter for a collection of commands whose interfaces are statically tracked by the type system.

However, Frank eliminates the need for an additional effect handling construct by generalising the basic mechanism of functional abstraction itself.Principles for good program design, especially the uses of data abstraction and modular program composition. Basic concepts in the specification and analysis of programs.

Students will also develop the study habits and the general resourcefulness required to solve programming problems that are substantially more complex than those encountered.This book presents the verified design of a code generator translating a prototypic real-time programming language to an actual microprocessor, the Inmos Transputer.

Unlike most other work on compiler verification, and with particular emphasis on modularity, it Brand: Springer-Verlag Berlin Heidelberg.