From Mathematics to Generic Programming

From Mathematics to Generic Programming PDF Author: Alexander A. Stepanov
Publisher: Addison-Wesley Professional
ISBN: 0133491781
Category : Computers
Languages : en
Pages : 311

Get Book

Book Description
In this substantive yet accessible book, pioneering software designer Alexander Stepanov and his colleague Daniel Rose illuminate the principles of generic programming and the mathematical concept of abstraction on which it is based, helping you write code that is both simpler and more powerful. If you’re a reasonably proficient programmer who can think logically, you have all the background you’ll need. Stepanov and Rose introduce the relevant abstract algebra and number theory with exceptional clarity. They carefully explain the problems mathematicians first needed to solve, and then show how these mathematical solutions translate to generic programming and the creation of more effective and elegant code. To demonstrate the crucial role these mathematical principles play in many modern applications, the authors show how to use these results and generalized algorithms to implement a real-world public-key cryptosystem. As you read this book, you’ll master the thought processes necessary for effective programming and learn how to generalize narrowly conceived algorithms to widen their usefulness without losing efficiency. You’ll also gain deep insight into the value of mathematics to programming—insight that will prove invaluable no matter what programming languages and paradigms you use. You will learn about How to generalize a four thousand-year-old algorithm, demonstrating indispensable lessons about clarity and efficiency Ancient paradoxes, beautiful theorems, and the productive tension between continuous and discrete A simple algorithm for finding greatest common divisor (GCD) and modern abstractions that build on it Powerful mathematical approaches to abstraction How abstract algebra provides the idea at the heart of generic programming Axioms, proofs, theories, and models: using mathematical techniques to organize knowledge about your algorithms and data structures Surprising subtleties of simple programming tasks and what you can learn from them How practical implementations can exploit theoretical knowledge

From Mathematics to Generic Programming

From Mathematics to Generic Programming PDF Author: Alexander A. Stepanov
Publisher: Addison-Wesley Professional
ISBN: 0133491781
Category : Computers
Languages : en
Pages : 311

Get Book

Book Description
In this substantive yet accessible book, pioneering software designer Alexander Stepanov and his colleague Daniel Rose illuminate the principles of generic programming and the mathematical concept of abstraction on which it is based, helping you write code that is both simpler and more powerful. If you’re a reasonably proficient programmer who can think logically, you have all the background you’ll need. Stepanov and Rose introduce the relevant abstract algebra and number theory with exceptional clarity. They carefully explain the problems mathematicians first needed to solve, and then show how these mathematical solutions translate to generic programming and the creation of more effective and elegant code. To demonstrate the crucial role these mathematical principles play in many modern applications, the authors show how to use these results and generalized algorithms to implement a real-world public-key cryptosystem. As you read this book, you’ll master the thought processes necessary for effective programming and learn how to generalize narrowly conceived algorithms to widen their usefulness without losing efficiency. You’ll also gain deep insight into the value of mathematics to programming—insight that will prove invaluable no matter what programming languages and paradigms you use. You will learn about How to generalize a four thousand-year-old algorithm, demonstrating indispensable lessons about clarity and efficiency Ancient paradoxes, beautiful theorems, and the productive tension between continuous and discrete A simple algorithm for finding greatest common divisor (GCD) and modern abstractions that build on it Powerful mathematical approaches to abstraction How abstract algebra provides the idea at the heart of generic programming Axioms, proofs, theories, and models: using mathematical techniques to organize knowledge about your algorithms and data structures Surprising subtleties of simple programming tasks and what you can learn from them How practical implementations can exploit theoretical knowledge

Modern C++ Design

Modern C++ Design PDF Author: Andrei Alexandrescu
Publisher: Addison-Wesley Professional
ISBN: 9780201704310
Category : Computers
Languages : en
Pages : 352

Get Book

Book Description
This title documents a convergence of programming techniques - generic programming, template metaprogramming, object-oriented programming and design patterns. It describes the C++ techniques used in generic programming and implements a number of industrial strength components.

Datatype-Generic Programming

Datatype-Generic Programming PDF Author: Roland Backhouse
Publisher: Springer Science & Business Media
ISBN: 3540767851
Category : Computers
Languages : en
Pages : 379

Get Book

Book Description
This tutorial book presents six carefully revised lectures given at the Spring School on Datatype-Generic Programming, SSDGP 2006. This was held in Nottingham, UK, in April 2006. It was colocated with the Symposium on Trends in Functional Programming (TFP 2006), and the Conference of the Types Project (TYPES 2006). All the lectures have been subjected to thorough internal review by the editors and contributors, supported by independent external reviews.

Generic Programming and the STL

Generic Programming and the STL PDF Author: Matthew H. Austern
Publisher: Addison-Wesley Professional
ISBN:
Category : Computers
Languages : en
Pages : 584

Get Book

Book Description
Introduces programmers to the generic programming paradigm and to the C++ Standard Template Library and its use as an extensible framework for generic and interoperable components. Explains ideas underlying generic programming and shows how to create algorithms decoupled from the types and data structures they operate on, and how to write more efficient code that can be used and reused across platforms. Assumes familiarity with C++ and algorithms. Annotation copyrighted by Book News, Inc., Portland, OR

Elements of Programming

Elements of Programming PDF Author: Alexander Stepanov
Publisher: Lulu.com
ISBN: 0578222140
Category : Computers
Languages : en
Pages : 282

Get Book

Book Description
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.

Datatype-Generic Programming

Datatype-Generic Programming PDF Author: Roland Backhouse
Publisher: Springer
ISBN: 354076786X
Category : Computers
Languages : en
Pages : 372

Get Book

Book Description
This tutorial book presents six carefully revised lectures given at the Spring School on Datatype-Generic Programming, SSDGP 2006. This was held in Nottingham, UK, in April 2006. It was colocated with the Symposium on Trends in Functional Programming (TFP 2006), and the Conference of the Types Project (TYPES 2006). All the lectures have been subjected to thorough internal review by the editors and contributors, supported by independent external reviews.

Generic Programming

Generic Programming PDF Author: Jeremy Gibbons
Publisher: Springer
ISBN: 038735672X
Category : Computers
Languages : en
Pages : 246

Get Book

Book Description
Generic programming is about making programs more adaptable by making them more general. Generic programs often embody non-traditional kinds of polymorphism; ordinary programs are obtained from them by suitably instantiating their parameters. In contrast with normal programs, the parameters of a generic program are often quite rich in structure; for example, they may be other programs, types or type constructors, class hierarchies, or even programming paradigms. Generic programming techniques have always been of interest, both to practitioners and to theoreticians, but only recently have generic programming techniques become a specific focus of research in the functional and object-oriented programming language communities. Generic Programming comprises the edited proceedings of the Working Conference on Generic Programming, which was sponsored by the International Federation for Information Processing (IFIP) and held in Dagstuhl, Germany in July 2002. With contributions from leading researchers around the world, this volume captures the state of the art in this important emerging area.

Boost Graph Library

Boost Graph Library PDF Author: Jeremy G. Siek
Publisher: Pearson Education
ISBN: 0321601610
Category : Computers
Languages : en
Pages : 464

Get Book

Book Description
The Boost Graph Library (BGL) is the first C++ library to apply the principles of generic programming to the construction of the advanced data structures and algorithms used in graph computations. Problems in such diverse areas as Internet packet routing, molecular biology, scientific computing, and telephone network design can be solved by using graph theory. This book presents an in-depth description of the BGL and provides working examples designed to illustrate the application of BGL to these real-world problems. Written by the BGL developers, The Boost Graph Library: User Guide and Reference Manual gives you all the information you need to take advantage of this powerful new library. Part I is a complete user guide that begins by introducing graph concepts, terminology, and generic graph algorithms. This guide also takes the reader on a tour through the major features of the BGL; all motivated with example problems. Part II is a comprehensive reference manual that provides complete documentation of all BGL concepts, algorithms, and classes. Readers will find coverage of: Graph terminology and concepts Generic programming techniques in C++ Shortest-path algorithms for Internet routing Network planning problems using the minimum-spanning tree algorithms BGL algorithms with implicitly defined graphs BGL Interfaces to other graph libraries BGL concepts and algorithms BGL classes–graph, auxiliary, and adaptor Groundbreaking in its scope, this book offers the key to unlocking the power of the BGL for the C++ programmer looking to extend the reach of generic programming beyond the Standard Template Library.

Programming with Types

Programming with Types PDF Author: Vlad Riscutia
Publisher: Simon and Schuster
ISBN: 1638350264
Category : Computers
Languages : en
Pages : 531

Get Book

Book Description
Summary Programming with Types teaches you to design safe, resilient, correct software that’s easy to maintain and understand by taking advantage of the power of strong type systems. Designed to provide practical, instantly useful techniques for working developers, this clearly written tutorial introduces you to using type systems to support everyday programming tasks. About the technology Common bugs often result from mismatched data types. By precisely naming and controlling which data are allowable in a calculation, a strong type system can eliminate whole classes of errors and ensure data integrity throughout an application. As a developer, skillfully using types in your everyday practice leads to better code and saves time tracking down tricky data-related errors. About the book Programming with Types teaches type-based techniques for writing software that’s safe, correct, easy to maintain, and practically self-documenting. Designed for working developers, this clearly written tutorial sticks with the practical benefits of type systems for everyday programming tasks. Following real-world examples coded in TypeScript, you’ll build your skills from primitive types up to more-advanced concepts like functors and monads. What's inside Building data structures with primitive types, arrays, and references How types affect functions, inheritance, and composition Object-oriented programming with types Applying generics and higher-kinded types About the reader You’ll need experience with a mainstream programming language like TypeScript, Java, JavaScript, C#, or C++. About the author Vlad Riscutia is a principal software engineer at Microsoft. He has headed up several major software projects and mentors up-and-coming software engineers.

Generic and Indexed Programming

Generic and Indexed Programming PDF Author: Jeremy Gibbons
Publisher: Springer
ISBN: 3642322026
Category : Computers
Languages : en
Pages : 259

Get Book

Book Description
Generic programming is about making programs more widely applicable via exotic kinds of parametrization---not just along the dimensions of values or of types, but also of things such as the shape of data, algebraic structures, strategies, computational paradigms, and so on. Indexed programming is a lightweight form of dependently typed programming, constraining flexibility by allowing one to state and check relationships between parameters: that the shapes of two arguments agree, that an encoded value matches some type, that values transmitted along a channel conform to the stated protocol, and so on. The two forces of genericity and indexing balance each other nicely, simultaneously promoting and controlling generality. The 5 lectures included in this book stem from the Spring School on Generic and Indexed Programming, held in Oxford, UK, in March 2010 as a closing activity of the generic and indexed programming project at Oxford which took place in the years 2006-2010.