A Practical Theory of Programming

A Practical Theory of Programming PDF

Author: Eric C.R. Hehner

Publisher: Springer Science & Business Media

Published: 2012-09-08

Total Pages: 257

ISBN-13: 1441985964

DOWNLOAD EBOOK →

There are several theories of programming. The first usable theory, often called "Hoare's Logic", is still probably the most widely known. In it, a specification is a pair of predicates: a precondition and postcondition (these and all technical terms will be defined in due course). Another popular and closely related theory by Dijkstra uses the weakest precondition predicate transformer, which is a function from programs and postconditions to preconditions. lones's Vienna Development Method has been used to advantage in some industries; in it, a specification is a pair of predicates (as in Hoare's Logic), but the second predicate is a relation. Temporal Logic is yet another formalism that introduces some special operators and quantifiers to describe some aspects of computation. The theory in this book is simpler than any of those just mentioned. In it, a specification is just a boolean expression. Refinement is just ordinary implication. This theory is also more general than those just mentioned, applying to both terminating and nonterminating computation, to both sequential and parallel computation, to both stand-alone and interactive computation. And it includes time bounds, both for algorithm classification and for tightly constrained real-time applications.

Practical Foundations for Programming Languages

Practical Foundations for Programming Languages PDF

Author: Robert Harper

Publisher: Cambridge University Press

Published: 2016-04-04

Total Pages: 513

ISBN-13: 1107150302

DOWNLOAD EBOOK →

This book unifies a broad range of programming language concepts under the framework of type systems and structural operational semantics.

Elements of Programming

Elements of Programming PDF

Author: Alexander Stepanov

Publisher: Lulu.com

Published: 2019-06-27

Total Pages: 282

ISBN-13: 0578222140

DOWNLOAD EBOOK →

Elements of Programming provides a different understanding of programming than is presented elsewhere. Its major premise is that practical programming, like other areas of science and engineering, must be based on a solid mathematical foundation. The book shows that algorithms implemented in a real programming language, such as C++, can operate in the most general mathematical setting. For example, the fast exponentiation algorithm is defined to work with any associative operation. Using abstract algorithms leads to efficient, reliable, secure, and economical software.

Drawing Programs: The Theory and Practice of Schematic Functional Programming

Drawing Programs: The Theory and Practice of Schematic Functional Programming PDF

Author: Tom Addis

Publisher: Springer Science & Business Media

Published: 2009-10-30

Total Pages: 401

ISBN-13: 1848826184

DOWNLOAD EBOOK →

Drawing Programs: The Theory and Practice of Schematic Functional Programming describes a diagrammatic (schematic) approach to programming. It introduces a sophisticated tool for programmers who would rather work with diagrams than with text. The language is a complete functional language that has evolved into a representation scheme that is unique. The result is a simple coherent description of the process of modelling with the computer. The experience of using this tool is introduced gradually with examples, small projects and exercises. The new computational theory behind the tool is interspersed between these practical descriptions so that the reasons for the activity can be understood and the activity, in turn, illustrates some elements of the theory Access to the tool, its source code and a set of examples that range from the simple to the complex is free (see www.springer.com/978-1-84882-617-5). A description of the tool’s construction and how it may be extended is also given. The authors’ experience with undergraduates and graduates who have the understanding and skill of a functional language learnt through using schema have also shown an enhanced ability to program in other computer languages. Readers are provided with a set of concepts that will ensure a good robust program design and, what is more important, a path to error free programming.

Distributed Programming

Distributed Programming PDF

Author: A. Udaya Shankar

Publisher: Springer Science & Business Media

Published: 2012-09-15

Total Pages: 386

ISBN-13: 1461448816

DOWNLOAD EBOOK →

Distributed Programming: Theory and Practice presents a practical and rigorous method to develop distributed programs that correctly implement their specifications. The method also covers how to write specifications and how to use them. Numerous examples such as bounded buffers, distributed locks, message-passing services, and distributed termination detection illustrate the method. Larger examples include data transfer protocols, distributed shared memory, and TCP network sockets. Distributed Programming: Theory and Practice bridges the gap between books that focus on specific concurrent programming languages and books that focus on distributed algorithms. Programs are written in a "real-life" programming notation, along the lines of Java and Python with explicit instantiation of threads and programs. Students and programmers will see these as programs and not "merely" algorithms in pseudo-code. The programs implement interesting algorithms and solve problems that are large enough to serve as projects in programming classes and software engineering classes. Exercises and examples are included at the end of each chapter with on-line access to the solutions. Distributed Programming: Theory and Practice is designed as an advanced-level text book for students in computer science and electrical engineering. Programmers, software engineers and researchers working in this field will also find this book useful.

Hands on Programming with Python

Hands on Programming with Python PDF

Author: Jose María Alvarez Rodríguez

Publisher:

Published: 2020-07

Total Pages: 436

ISBN-13:

DOWNLOAD EBOOK →

In this book, programming concepts are theoretically introduced and explained. Then, their application is presented in the context of a programming language (Python) to finally introduce examples of use. The learning methodology is based on a four-stage method (problem statement, concept, Python implementation and examples of use) helping to solve the 5 W's + How questions when learning a new programming language from scratch. In terms of learning methodology, the first ten chapters corresponds to the theoretical concepts that are complemented with more than 200 examples and exercises in the Lab-x chapters. Furthermore, all contents are also publicly available as Jupyter notebooks and other complementary materials such as Kahoot! Quizzes have also been designed to establish an active learning methodology encouraging a blended and self-paced learning process.

Theories of Programming Languages

Theories of Programming Languages PDF

Author: John C. Reynolds

Publisher: Cambridge University Press

Published: 1998-10-13

Total Pages: 514

ISBN-13: 1139936255

DOWNLOAD EBOOK →

First published in 1998, this textbook is a broad but rigourous survey of the theoretical basis for the design, definition and implementation of programming languages and of systems for specifying and proving programme behaviour. Both imperative and functional programming are covered, as well as the ways of integrating these aspects into more general languages. Recognising a unity of technique beneath the diversity of research in programming languages, the author presents an integrated treatment of the basic principles of the subject. He identifies the relatively small number of concepts, such as compositional semantics, binding structure, domains, transition systems and inference rules, that serve as the foundation of the field. Assuming only knowledge of elementary programming and mathematics, this text is perfect for advanced undergraduate and beginning graduate courses in programming language theory and also will appeal to researchers and professionals in designing or implementing computer languages.

Modern Programming Languages

Modern Programming Languages PDF

Author: Adam Brooks Webber

Publisher: Franklin Beedle & Associates

Published: 2003

Total Pages: 0

ISBN-13: 9781887902762

DOWNLOAD EBOOK →

Typical undergraduate CS/CE majors have a practical orientation: they study computing because they like programming and are good at it. This book has strong appeal to this core student group. There is more than enough material for a semester-long course. The challenge for a course in programming language concepts is to help practical ......

Practical Parallel Programming

Practical Parallel Programming PDF

Author: Gregory V. Wilson

Publisher: Cambridge, Mass. : MIT Press

Published: 1995-01

Total Pages: 564

ISBN-13: 9780262231862

DOWNLOAD EBOOK →

Parallel computers have become widely available in recent years. Many scientists are now using them to investigate the grand challenges of science, such as modeling global climate change, determining the masses of elementary particles from first principles, or sequencing the human genome. However, software for parallel computers has developed far more slowly than the hardware. Many incompatible programming systems exist, and many useful programming techniques are not widely known. Practical Parallel Programming provides scientists and engineers with a detailed, informative, and often critical introduction to parallel programming techniques. Following a review of the fundamentals of parallel computer theory and architecture, it describes four of the most popular parallel programming models in use today—data parallelism, shared variables, message passing, and Linda—and shows how each can be used to solve various scientific and numerical problems. Examples, coded in various dialects of Fortran, are drawn from such domains as the solution of partial differential equations, solution of linear equations, the simulation of cellular automata, studies of rock fracturing, and image processing. Practical Parallel Programming will be particularly helpful for scientists and engineers who use high-performance computers to solve numerical problems and do physical simulations but who have little experience of networking or concurrency. The book can also be used by advanced undergraduate and graduate students in computer science in conjunction with material covering parallel architectures and algorithms in more detail. Computer science students will gain a critical appraisal of the current state of the art in parallel programming. Scientific and Engineering Computation series