Design Patterns as Higher−Order Datatype−Generic Programs

The aim of this tutorial is to draw together ideas from the Design Patterns community (the Gang of Four: Gamma, Helm, Johnson, Vlissides) and the Functional Programming world (eg Bird, Meertens, Hughes). In particular, the thesis is that whereas design patterns must be expressed extra-linguistically...

Ամբողջական նկարագրություն

Մատենագիտական մանրամասներ
Հիմնական հեղինակ: Gibbons, J
Ձևաչափ: Conference item
Հրապարակվել է: Glasgow 2005
_version_ 1826298745741901824
author Gibbons, J
author_facet Gibbons, J
author_sort Gibbons, J
collection OXFORD
description The aim of this tutorial is to draw together ideas from the Design Patterns community (the Gang of Four: Gamma, Helm, Johnson, Vlissides) and the Functional Programming world (eg Bird, Meertens, Hughes). In particular, the thesis is that whereas design patterns must be expressed extra-linguistically (as prose, diagrams, examples) in object-oriented languages, they may be captured directly as abstractions using higher-order operators in functional programming languages. Therefore, they may be reasoned about, type-checked, applied and reused, just as any other abstractions may be. We argue this case by developing the idea of higher-order operators, specifically for capturing patterns of computation in programs. We then bring this around to show how the intentions behind a number of the Gang of Four patterns—such as Composite, Visitor, Iterator, and Builder—have higher-order operators as their analogues in functional languages.
first_indexed 2024-03-07T04:51:30Z
format Conference item
id oxford-uuid:d51f7d43-a922-44a7-9398-18d6af894b21
institution University of Oxford
last_indexed 2024-03-07T04:51:30Z
publishDate 2005
publisher Glasgow
record_format dspace
spelling oxford-uuid:d51f7d43-a922-44a7-9398-18d6af894b212022-03-27T08:23:42ZDesign Patterns as Higher−Order Datatype−Generic ProgramsConference itemhttp://purl.org/coar/resource_type/c_5794uuid:d51f7d43-a922-44a7-9398-18d6af894b21Department of Computer ScienceGlasgow2005Gibbons, JThe aim of this tutorial is to draw together ideas from the Design Patterns community (the Gang of Four: Gamma, Helm, Johnson, Vlissides) and the Functional Programming world (eg Bird, Meertens, Hughes). In particular, the thesis is that whereas design patterns must be expressed extra-linguistically (as prose, diagrams, examples) in object-oriented languages, they may be captured directly as abstractions using higher-order operators in functional programming languages. Therefore, they may be reasoned about, type-checked, applied and reused, just as any other abstractions may be. We argue this case by developing the idea of higher-order operators, specifically for capturing patterns of computation in programs. We then bring this around to show how the intentions behind a number of the Gang of Four patterns—such as Composite, Visitor, Iterator, and Builder—have higher-order operators as their analogues in functional languages.
spellingShingle Gibbons, J
Design Patterns as Higher−Order Datatype−Generic Programs
title Design Patterns as Higher−Order Datatype−Generic Programs
title_full Design Patterns as Higher−Order Datatype−Generic Programs
title_fullStr Design Patterns as Higher−Order Datatype−Generic Programs
title_full_unstemmed Design Patterns as Higher−Order Datatype−Generic Programs
title_short Design Patterns as Higher−Order Datatype−Generic Programs
title_sort design patterns as higher order datatype generic programs
work_keys_str_mv AT gibbonsj designpatternsashigherorderdatatypegenericprograms