Download free course A Functional Pattern System for Object-Oriented Design, pdf file on 346 pages by by Thomas Ku?hne.
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. Each of the relevant areas (object-orientation, functional programming, design patterns) is introduced in the first part of the book. 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. An evaluation of the pattern system for its implications on language design in the third part 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.
In their "Related Patterns" sections the patterns refer to each other and to many other published design patterns. Each of the relevant areas (object-orientation, functional programming, design patterns) is introduced in the first part of the book. 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. An evaluation of the pattern system for its implications on language design in the third part 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.
Table of contents
-
Foundation
-
Functional programming
-
Object-orientation
-
Calculus comparison
-
Conflict & Cohabitance
-
Design Patterns
-
Pattern System
-
Catalog
-
Function Object
-
Lazy Object
-
Value Object
-
Transfold
-
Void Value
-
Translator
-
Collaboration
-
Language design
-
Pattern Driven Language Design
Pages : | 346 |
Size : | 2.2 MB |
Downloads: | 70 |
Created: | 2022-02-01 |
License: | Open Publication License |
Author(s): | by Thomas Ku?hne |
Warning: Trying to access array offset on false in /home/tutovnfz/public_html/amp/article-amp.php on line 263