Generic and Indexed Programming

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

Get Book Here

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.

Generic and Indexed Programming

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

Get Book Here

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.

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 Here

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

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 Here

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.

Modern C++ Design

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

Get Book Here

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.

Mathematics of Program Construction

Mathematics of Program Construction PDF Author: Tarmo Uustalu
Publisher: Springer Science & Business Media
ISBN: 3540356312
Category : Computers
Languages : en
Pages : 464

Get Book Here

Book Description
This volume contains the proceedings of the 8th International Conference on Mathematics of ProgramConstruction, MPC 2006,held at Kuressaare, Estonia, July 3-5, 2006, colocated with the 11th International Conference on Algebraic Methodology and Software Technology, AMAST 2006, July 5-8, 2006. TheMPCconferencesaimtopromotethedevelopmentofmathematicalpr- ciples and techniques that are demonstrably useful and usable in the process of constructing computer programs. Topics of interest range from algorithmics to support for program construction in programming languages and systems. The previous MPCs were held at Twente, The Netherlands (1989, LNCS 375), Oxford, UK (1992, LNCS 669), Kloster Irsee, Germany (1995,LNCS 947), Marstrand, Sweden (1998, LNCS 1422), Ponte de Lima, Portugal (2000, LNCS 1837), Dagstuhl, Germany (2002, LNCS 2386) and Stirling, UK (2004, LNCS 3125, colocated with AMAST 2004). MPC 2006 received 45 submissions. Each submission was reviewed by four Programme Committee members or additional referees. The committee decided to accept 22 papers. In addition, the programme included three invited talks by Robin Cockett (University of Calgary, Canada), Olivier Danvy (Aarhus Univ- sitet, Denmark) and Oege de Moor (University of Oxford, UK). The review process and compilation of the proceedings were greatly helped by Andrei Voronkov's EasyChair system that I can only recommend to every programme chair. MPC 2006 had one satellite workshop, the Workshop on Mathematically Structured Functional Programming, MSFP 2006, organized as a "small" wo- shop of the FP6 IST coordination action TYPES. This took place July 2, 2006.

Datatype-Generic Programming

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

Get Book Here

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.

Elements of Programming

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

Get Book Here

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. This 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.

Programming with Specifications

Programming with Specifications PDF Author: David Luckham
Publisher: Springer Science & Business Media
ISBN: 1461396859
Category : Computers
Languages : en
Pages : 433

Get Book Here

Book Description
Topics • what this book is about, • its intended audience, • what the reader ought to know, • how the book is organized, • acknowledgements. Specifications express information about a program that is not normally part of the program, and often cannot be expressed in a programming lan guage. In the past, the word "specification" has sometimes been used to refer to somewhat vague documentation written in English. But today it indicates a precise statement, written in a machine processable language, about the purpose and behavior of a program. Specifications are written in languages that are just as precise as programming languages, but have additional capabilities that increase their power of expression. The termi nology formal specification is sometimes used to emphasize the modern meaning. For us, all specifications are formal. The use of specifications as an integral part of a program opens up a whole new area of programming - progmmming with specifications. This book describes how to use specifications in the process of building programs, debugging them, and interfacing them with other programs. It deals with a new trend in programming - the evolution of specification languages from the current generation of programming languages. And it describes new strategies and styles of programming that utilize specifications. The trend is just beginning, and the reader, having finished this book, will viii Preface certainly see that there is much yet to be done and to be discovered about programming with specifications.

Mathematics of Program Construction

Mathematics of Program Construction PDF Author: Eerke A. Boiten
Publisher: Springer
ISBN: 354045442X
Category : Computers
Languages : en
Pages : 273

Get Book Here

Book Description
This book constitutes the refereed proceedings of the 6th International Conference on Mathematics of Program Construction, MPC 2002, held in Dagstuhl Castle, Germany, in July 2002. The 11 revised full papers presented were carefully reviewed and selected for inclusion in the book; also presented are one invited paper and the abstracts of two invited talks. Among the topics covered are programming methodology, program specification, program transformation, programming paradigms, programming calculi, and programming language semantics.

Certified Programming with Dependent Types

Certified Programming with Dependent Types PDF Author: Adam Chlipala
Publisher: MIT Press
ISBN: 0262317885
Category : Computers
Languages : en
Pages : 437

Get Book Here

Book Description
A handbook to the Coq software for writing and checking mathematical proofs, with a practical engineering focus. The technology of mechanized program verification can play a supporting role in many kinds of research projects in computer science, and related tools for formal proof-checking are seeing increasing adoption in mathematics and engineering. This book provides an introduction to the Coq software for writing and checking mathematical proofs. It takes a practical engineering focus throughout, emphasizing techniques that will help users to build, understand, and maintain large Coq developments and minimize the cost of code change over time. Two topics, rarely discussed elsewhere, are covered in detail: effective dependently typed programming (making productive use of a feature at the heart of the Coq system) and construction of domain-specific proof tactics. Almost every subject covered is also relevant to interactive computer theorem proving in general, not just program verification, demonstrated through examples of verified programs applied in many different sorts of formalizations. The book develops a unique automated proof style and applies it throughout; even experienced Coq users may benefit from reading about basic Coq concepts from this novel perspective. The book also offers a library of tactics, or programs that find proofs, designed for use with examples in the book. Readers will acquire the necessary skills to reimplement these tactics in other settings by the end of the book. All of the code appearing in the book is freely available online.