Datatype-Generic Programming


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.




Programming C# 5.0


Book Description

After a dozen years of incremental changes, C# has become one of the most versatile programming languages available. With this comprehensive guide, you’ll learn just how powerful the combination of C# 5.0 and .NET 4.5 can be. Author Ian Griffiths guides you through C# 5.0 fundamentals and teaches you techniques for building web and desktop applications, including Windows 8-style apps. Completely rewritten for experienced programmers, this book provides many code examples to help you work with the nuts and bolts of C# code, such as generics, dynamic typing, and the new asynchronous programming features. You’ll also get up to speed on XAML, ASP.NET, LINQ, and other .NET tools. Discover how C# supports fundamental coding features such as classes, other custom types, collections, and error handling Understand the differences between dynamic and static typing in C# Query and process diverse data sources such as in-memory object models, databases, and XML documents with LINQ Use .NET’s multithreading features to exploit your computer’s parallel processing capabilities Learn how the new asynchronous language features can help improve application responsiveness and scalability Use XAML to create Windows 8-style, phone, and classic desktop applications




Programming C# 8.0


Book Description

C# is undeniably one of the most versatile programming languages available to engineers today. With this comprehensive guide, you’ll learn just how powerful the combination of C# and .NET can be. Author Ian Griffiths guides you through C# 8.0 fundamentals and techniques for building cloud, web, and desktop applications. Designed for experienced programmers, this book provides many code examples to help you work with the nuts and bolts of C#, such as generics, LINQ, and asynchronous programming features. You’ll get up to speed on .NET Core and the latest C# 8.0 additions, including asynchronous streams, nullable references, pattern matching, default interface implementation, ranges and new indexing syntax, and changes in the .NET tool chain. Discover how C# supports fundamental coding features, such as classes, other custom types, collections, and error handling Learn how to write high-performance memory-efficient code with .NET Core’s Span and Memory types Query and process diverse data sources, such as in-memory object models, databases, data streams, and XML documents with LINQ Use .NET’s multithreading features to exploit your computer’s parallel processing capabilities Learn how asynchronous language features can help improve application responsiveness and scalability




Java in a Nutshell


Book Description

Java in a Nutshell, Deluxe Editionis a Java programmer's dream come true in one small package. The heart of this Deluxe Edition is the Java Reference Library on CD-ROM, which brings together five volumes for Java developers and programmers, linking related info across books. It includes:Exploring Java, 2nd Edition,Java Language Reference, 2nd Edition,Java Fundamental Classes Reference,Java AWT Reference, andJava in a Nutshell, 2nd Edition, included both on the CD-ROM and in a companion desktop edition.Java in a Nutshell, Deluxe Editionis an indispensable resource for anyone doing serious programming with Java 1.1. The Java Reference Library alone is also available by subscription on the World Wide Web. Please seehttp://online-books.oreilly.com/books/​javaref/for details. The electronic text on the Web and on the CD is fully searchable and includes a complete index to all five volumes. It also includes the sample code found in the printed volumes. Exploring Java, 2nd Editionintroduces the basics of Java 1.1 and offers a clear, systematic overview of the language. It covers the essentials of hot topics like Beans and RMI, as well as writing applets and other applications, such as networking programs, content and protocol handlers, and security managers. TheJava Language Reference, 2nd Editionis a complete reference that describes all aspects of the Java language, including syntax, object-oriented programming, exception handling, multithreaded programming, and differences between Java and C/C++. The second edition covers the new language features that have been added in Java 1.1, such as inner classes, class literals, and instance initializers. TheJava Fundamental Classes Referenceprovides complete reference documentation on the core Java 1.1 classes that comprise thejava.lang,java.io,java.net,java.util,java.text,java.math,java.lang.reflect, andjava.util.zippackages. These classes provide general-purpose functionality that is fundamental to every Java application. TheJava AWT Referenceprovides complete reference documentation on the Abstract Window Toolkit (AWT), a large collection of classes for building graphical user interfaces in Java. Java in a Nutshell, 2nd Edition, the bestselling book on Java and the one most often recommended on the Internet, is a complete quick-reference guide to Java, containing descriptions of all of the classes in the Java 1.1 core API, with a definitive listing of all methods and variables, with the exception of the still-evolving Enterprise APIs. These APIs will be covered in a future volume. Highlights of the library include: History and principles of Java How to integrate applets into the World Wide Web A detailed look into Java's style of object-oriented programming Detailed coverage of all the essential classes injava.lang,java.io,java.util,java.net,java.awt Using threads Network programming Content and protocol handling A detailed explanation of Java's image processing mechanisms Material on graphics primitives and rendering techniques Writing a security manager System requirements: The CD-ROM is readable on all Windows and UNIX platforms. Current implementations of the Java Virtual Machine for the Mac platform do not support the Java search applet in this CD-ROM. Mac users can purchase the World Wide Web version (seehttp://online-books.oreilly.com/books/​javaref/for more information). A Web browser that supports HTML 3.2, Java, and JavaScript, such as Netscape 3.0 or Internet Explorer 3.0, is required.




Generic Programming


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.




Advanced Functional Programming


Book Description

This tutorial book presents seven carefully revised lectures given at the 6th International School on Functional Programming, AFP 2008, in Heijen, The Netherlands in May 2008. The book presents the following seven, carefully cross-reviewed chapters, written by leading authorities in the field: Self-adjusting: Computation with Delta ML, spider spinning for dummies, from reduction-based to reduction-free normalization, libraries for generic programming in Haskell, dependently typed programming in agda, parallel and concurrent programming in Haskell and an iTask case study: a conference management system.




Certified Programming with Dependent Types


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.




Haskell Design Patterns


Book Description

Take your Haskell and functional programming skills to the next level by exploring new idioms and design patterns About This Book Explore Haskell on a higher level through idioms and patterns Get an in-depth look into the three strongholds of Haskell: higher-order functions, the Type system, and Lazy evaluation Expand your understanding of Haskell and functional programming, one line of executable code at a time Who This Book Is For If you're a Haskell programmer with a firm grasp of the basics and ready to move more deeply into modern idiomatic Haskell programming, then this book is for you. What You Will Learn Understand the relationship between the “Gang of Four” OOP Design Patterns and Haskell Try out three ways of Streaming I/O: imperative, Lazy, and Iteratee based Explore the pervasive pattern of Composition: from function composition through to high-level composition with Lenses Synthesize Functor, Applicative, Arrow and Monad in a single conceptual framework Follow the grand arc of Fold and Map on lists all the way to their culmination in Lenses and Generic Programming Get a taste of Type-level programming in Haskell and how this relates to dependently-typed programming Retrace the evolution, one key language extension at a time, of the Haskell Type and Kind systems Place the elements of modern Haskell in a historical framework In Detail Design patterns and idioms can widen our perspective by showing us where to look, what to look at, and ultimately how to see what we are looking at. At their best, patterns are a shorthand method of communicating better ways to code (writing less, more maintainable, and more efficient code). This book starts with Haskell 98 and through the lens of patterns and idioms investigates the key advances and programming styles that together make "modern Haskell". Your journey begins with the three pillars of Haskell. Then you'll experience the problem with Lazy I/O, together with a solution. You'll also trace the hierarchy formed by Functor, Applicative, Arrow, and Monad. Next you'll explore how Fold and Map are generalized by Foldable and Traversable, which in turn is unified in a broader context by functional Lenses. You'll delve more deeply into the Type system, which will prepare you for an overview of Generic programming. In conclusion you go to the edge of Haskell by investigating the Kind system and how this relates to Dependently-typed programming. Style and approach Using short pieces of executable code, this guide gradually explores the broad pattern landscape of modern Haskell. Ideas are presented in their historical context and arrived at through intuitive derivations, always with a focus on the problems they solve.




Generic Programming and the STL


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




Advanced R


Book Description

An Essential Reference for Intermediate and Advanced R Programmers Advanced R presents useful tools and techniques for attacking many types of R programming problems, helping you avoid mistakes and dead ends. With more than ten years of experience programming in R, the author illustrates the elegance, beauty, and flexibility at the heart of R. The book develops the necessary skills to produce quality code that can be used in a variety of circumstances. You will learn: The fundamentals of R, including standard data types and functions Functional programming as a useful framework for solving wide classes of problems The positives and negatives of metaprogramming How to write fast, memory-efficient code This book not only helps current R users become R programmers but also shows existing programmers what’s special about R. Intermediate R programmers can dive deeper into R and learn new strategies for solving diverse problems while programmers from other languages can learn the details of R and understand why R works the way it does.