Functional Programming and Parallel Graph Rewriting


Book Description

This book introduces the techniques of functional programming, the associated computational models, and the implementation of functional programming languages on both sequential and parallel machines. The authors present the desciptive power and semantic elegance of functional programming languages using Miranda as an example language.




Term Graph Rewriting


Book Description

A comprehensive study and exposition on the benefits of graph and term rewriting. Contains such theoretical advances as a single pushout categorical model of graph rewriting, a new theory of transfinite term rewriting and an abstract interpretation for term graph rewriting. Includes a discussion of parallelism.




Conditional and Typed Rewriting Systems


Book Description

In recent years, extensions of rewriting techniques that go beyond the traditional untyped algebraic rewriting framework have been investigated and developed. Among these extensions, conditional and typed systems are particularly important, as are higher-order systems, graph rewriting systems, etc. The international CTRS (Conditional and Typed Rewriting Systems) workshops are intended to offer a forum for researchers on such extensions of rewriting techniques. This volume presents the proceedings of the second CTRS workshop, which contributed to discussion and evaluation of new directions of research. (The proceedings of the first CTRS workshop are in Lecture Notes in Computer Science, Vol. 308.) Several important directions for extensions of rewriting techniques were stressed, which are reflected in the organization of the chapters in this volume: - Theory of conditional and Horn clause systems, - Infinite terms, non-terminating systems, and termination, - Extension of Knuth-Bendix completion, - Combined systems, combined languages and modularity, - Architecture, compilers and parallel computation, - Basic frameworks for typed and order-sorted systems, - Extension of unification and narrowing techniques.




Advanced Functional Programming


Book Description

This volume presents the tutorials given during the First International Spring School on Advanced Functional Programming Techniques, held in Bastad, Sweden in May 1995. The last few years have seen important new developments in functional programming techniques: concepts, such as monads, type classes, and several new special purpose libraries of higher-order functions are new and powerful methods for structuring programs. This book brings programmers, software engineers and computer scientists up-to-date with the latest techniques. Most tutorial contributions contain exercises to familiarize the reader with the new concepts and techniques, and only basic knowledge in functional programming is assumed.




Implementation of Functional Languages


Book Description

This book constitutes the thoroughly refereed post-workshop proceedings of the 11th International Workshop on the Implementation of Functional Languages, IFL'99, held in Lochem, The Netherlands, in September 1999. The 11 revised full papers presented were carefully selected during two rounds of reviewing. The papers are organized in sections on applications, compilation techniques, language concepts, and parallelism.




Research Directions in Parallel Functional Programming


Book Description

Programming is hard. Building a large program is like constructing a steam locomotive through a hole the size of a postage stamp. An artefact that is the fruit of hundreds of person-years is only ever seen by anyone through a lOO-line window. In some ways it is astonishing that such large systems work at all. But parallel programming is much, much harder. There are so many more things to go wrong. Debugging is a nightmare. A bug that shows up on one run may never happen when you are looking for it - but unfailingly returns as soon as your attention moves elsewhere. A large fraction of the program's code can be made up of marshalling and coordination algorithms. The core application can easily be obscured by a maze of plumbing. Functional programming is a radical, elegant, high-level attack on the programming problem. Radical, because it dramatically eschews side-effects; elegant, because of its close connection with mathematics; high-level, be cause you can say a lot in one line. But functional programming is definitely not (yet) mainstream. That's the trouble with radical approaches: it's hard for them to break through and become mainstream. But that doesn't make functional programming any less fun, and it has turned out to be a won derful laboratory for rich type systems, automatic garbage collection, object models, and other stuff that has made the jump into the mainstream.




Introduction to Programming Languages


Book Description

In programming courses, using the different syntax of multiple languages, such as C++, Java, PHP, and Python, for the same abstraction often confuses students new to computer science. Introduction to Programming Languages separates programming language concepts from the restraints of multiple language syntax by discussing the concepts at an abstract level. Designed for a one-semester undergraduate course, this classroom-tested book teaches the principles of programming language design and implementation. It presents: Common features of programming languages at an abstract level rather than a comparative level The implementation model and behavior of programming paradigms at abstract levels so that students understand the power and limitations of programming paradigms Language constructs at a paradigm level A holistic view of programming language design and behavior To make the book self-contained, the author introduces the necessary concepts of data structures and discrete structures from the perspective of programming language theory. The text covers classical topics, such as syntax and semantics, imperative programming, program structures, information exchange between subprograms, object-oriented programming, logic programming, and functional programming. It also explores newer topics, including dependency analysis, communicating sequential processes, concurrent programming constructs, web and multimedia programming, event-based programming, agent-based programming, synchronous languages, high-productivity programming on massive parallel computers, models for mobile computing, and much more. Along with problems and further reading in each chapter, the book includes in-depth examples and case studies using various languages that help students understand syntax in practical contexts.




Programming Languages: Implementations, Logics and Programs


Book Description

This book constitutes the proceedings of the Seventh International Symposium on Programming Languages: Implementations, Logics and Programs, PLILP '95, held in Utrecht, The Netherlands, in September 1995. The book presents 26 refereed full papers selected from 84 submissions; they report research on declarative programming languages and provide insights in the relation between the logic of those languages, implementation techniques, and the use of these languages in constructing real programs. In addition there are abstracts or full presentations of three invited talks as well as eight posters and demonstrations.




Trends in Functional Programming


Book Description

This book constitutes the thoroughly refereed post-conference proceedings of the 12th International Symposium on Trends in Functional Programming, TFP 2011, held in Madrid, Spain, in May 2011. The 12 papers presented were carefully reviewed and selected from 21 submissions. They deal with all aspects of functional programming, taking a broad view of current and future trends in this area. The topical sections the papers are organized in are named as follows: types, compiling, paralelelism and distribution, data structures, and miscellaneous.




The Functional Approach to Programming


Book Description

A programming course should concentrate as much as possible on a program's logical structure and design rather than simply show how to write code. The Functional Approach to Programming achieves this aim because logical concepts are evident and programs are transparent so can be written quickly and cleanly. In this book the authors emphasise the notions of function and function application which relate programming to familiar concepts from mathematics and logic. They introduce functional programming via examples but also explain what programs compute and how to reason about them. They show how the ideas can be implemented in the Caml language, a dialect of the ML family, and give examples of how complex programs from a variety of areas (such as arithmetic, tree algorithms, graph algorithms, text parsing and geometry) can be developed in close agreement with their specifications. Many exercises and examples are included throughout the book; solutions are also available.