A Functional Pattern System for Object-Oriented Design

A Functional Pattern System for Object-Oriented Design

Promotes the idea that concepts from the world of functional programming can be captured with design pattern descriptions. These can then be used to benefit from functional programming concepts with ordinary object-oriented languages.

Publication date: 01 Aug 1999

ISBN-10: 3860647709

ISBN-13: n/a

Paperback: 328 pages

Views: 20,483

Type: N/A

Publisher: Verlag Dr. Kovac

License: n/a

Post time: 01 Nov 2006 03:52:57

A Functional Pattern System for Object-Oriented Design

A Functional Pattern System for Object-Oriented Design Promotes the idea that concepts from the world of functional programming can be captured with design pattern descriptions. These can then be used to benefit from functional programming concepts with ordinary object-oriented languages.
Tag(s): Functional Programming
Publication date: 01 Aug 1999
ISBN-10: 3860647709
ISBN-13: n/a
Paperback: 328 pages
Views: 20,483
Document Type: N/A
Publisher: Verlag Dr. Kovac
License: n/a
Post time: 01 Nov 2006 03:52:57
Terms and Conditions:
Thomas Kühne wrote:I have obtained permission from the publisher to distribute the book electronically free of charge. Download a copy of the pdf file without the copyrighted pictures by M. C. Escher. You may still be able to get a printed copy with the pictures. The Portland Pattern Repository features some pages written by others about this work.

Book Excerpts:

This book integrates the vital areas of object-orientation, functional programming, design patterns, and language design. The most important concepts from functional programming are captured with six design patterns:

- Function Objects (Black-box behaviour parameterisation)
- Lazy Objects (Evaluation-by-need semantics)
- Value Objects (Immutable values)
- Void Objects (Abandoning null references)
- Transfold (Combining internal & external iteration)
- Translator (Homomorphic mapping with generic functions)

These patterns can be used with any object-oriented language to advance software design. The patterns form a system, i.e., a collaborating set of patterns. In their "Related Patterns" sections the patterns refer to each other and to many other published design patterns. The first part of the book introduces each of the relevant areas (object-orientation, functional programming, design patterns). This part also compares the functional and object-oriented paradigms both in terms of concepts and on a calculus level.

The second part presents the functional pattern system. This system should be beneficial to software practitioners since it integrates the functional paradigm into object-oriented software design. Hence, advantages which have been primarily available in functional languages can be used in object-oriented languages as well. Even when some functional concepts have been partially established in object-oriented software already, they can now be understood as specialised uses of more general function patterns.

This practical aspect is complemented by a theoretical account of multi-paradigm language design. In the third part, an evaluation of the pattern system for its implications on language design is concluded by proposing a new distribution of responsibilities between languages and their environments.

The book uses the Eiffel programming language to illustrate the patterns with running sample code. It includes a critical review of the Eiffel language in terms of its suitability as a functional pattern implementation language.
 




About The Author(s)


Since November 2007 Thomas has been an Associate Professor at the Victoria University of Wellington. His research interests include object-technology, programming languages, component architectures, (multi- / meta-) modelling, and model-driven development.

Thomas Kühne

Since November 2007 Thomas has been an Associate Professor at the Victoria University of Wellington. His research interests include object-technology, programming languages, component architectures, (multi- / meta-) modelling, and model-driven development.


Book Categories