[HN Gopher] Multi-phase computation as an applicative functor [v...
___________________________________________________________________
Multi-phase computation as an applicative functor [video]
Author : matt_d
Score : 8 points
Date : 2023-11-30 21:31 UTC (1 hours ago)
(HTM) web link (www.youtube.com)
(TXT) w3m dump (www.youtube.com)
| matt_d wrote:
| Abstract:
|
| > It is 50 years since Tony Hoare observed "certain close
| analogies between the methods used for structuring data and the
| methods for structuring a program which processes that data". But
| programs have both static structure (following the data) and
| dynamic structure (execution), and these need not coincide. For
| example, breadth-first tree traversal should be executed across
| the grain of the tree structure. I will present a technique for
| resolving the tension between these conflicting forces: the
| static structure specifies a multi-phase computation, whose
| dynamic execution structure might be entirely different. The
| appropriate abstraction turns out to be an applicative functor -
| similar to but different from the free applicative.
|
| > This is joint work with Oisin Kidney, Tom Schrijvers, and
| Nicolas Wu.
|
| Related paper:
|
| Phases in Software Architecture (architectural pearl) - The First
| ACM SIGPLAN Workshop on Functional Software Architecture - FP in
| the Large -
| http://www.cs.ox.ac.uk/jeremy.gibbons/publications/phases.pd... -
| https://icfp23.sigplan.org/details/funarch-2023/5/Phases-in-...
|
| > The large-scale structure of executing a computation can often
| be thought of as being separated into distinct phases. But the
| most natural form in which to specify that computation may well
| have a different and conflicting structure. For example, the
| computation might consist of gathering data from some locations,
| processing it, then distributing the results back to the same
| locations; it may be executed in three phases--gather, process,
| distribute--but mostly conveniently specified orthogonally--by
| location. We have recently shown that this multi-phase structure
| can be expressed as a novel applicative functor (also known as an
| idiom, or lax monoidal functor). Here we summarize the idea from
| the perspective of software architecture. At the end, we
| speculate about applications to choreography and multi-tier
| architecture.
___________________________________________________________________
(page generated 2023-11-30 23:01 UTC)