Michael B. Gale

dblp:202/8339 · DBLP profile ↗
← Back
6ranked-venue papers
0as first author
4since 2021 · last 2024
0000-0001-7711-6763ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 5 · 4 since 2021Artificial intelligence and machine learning · 1
YearPublicationVenuePosition
2024 Functional Reactive Programming, Rearranged
abstract
At present, the most efficient implementations of Arrowized Functional Reactive Programming (AFRP), such as Scalable FRP (SFRP), do not support the loop combinator. This prevents us from expressing fundamental programs in such implementations, which limits AFRP’s use in domains where both performance and expressivity are required. We introduce Oxbow, which extends SFRP with support for the loop combinator by leveraging an improved variant of the rearrange technique. In benchmarks, Oxbow performs at least 2.2x better than Yampa, an AFRP implementation that supports the loop combinator.
Finnbar Keating, Michael B. Gale
Haskell2
2023 This Is Driving Me Loopy: Efficient Loops in Arrowized Functional Reactive Programs
abstract
Arrowized Functional Reactive Programming (AFRP) is one approach to writing reactive programs declaratively, based on the arrows abstraction in Haskell. While AFRP elegantly expresses the relationships between inputs and outputs of a reactive system, na'ive implementations suffer from poor performance. In particular, the loop combinator depends on lazy semantics: this inflicts the overheads of lazy evaluation and simultaneously prevents existing optimisation techniques from being applied to it.
Finnbar Keating, Michael B. Gale
Haskell2
2021 Chesskell: a two-player game at the type level
abstract
Extensions to Haskell's type system, as implemented in GHC, have given developers more tools to express the domain-specific rules and invariants of their programs in types. For these extensions to see mainstream adoption, their use in complex applications has to be practical. We present Chesskell, an EDSL for describing Chess games where a type-level model of the full FIDE ruleset prevents us from expressing games with invalid moves. Our work highlights current limitations when using GHC to express such complex rules due to the resulting memory usage and compile times, which we report on. We further present some approaches for working around those limitations.
Toby Bailey, Michael B. Gale
Haskell2
2021 Graded monads and type-level programming for dependence analysis
abstract
Programmers make assumptions about the order of memory operations, which are not captured in the operations' types and therefore cannot be enforced statically by a compiler. This can lead programmers to accidentally violate those assumptions if they are not careful. To address this issue, we encode the memory locations that are accessed by a given computation using a graded monad. We use the data flow dependencies which arise from this to construct a type-level graph that we analyse to automatically order the computations so that no dependencies are violated. This also allows for computations which have no dependencies on each other to be run concurrently.
Finnbar Keating, Michael B. Gale
Haskell2
2017 The Functional Dendritic Cell Algorithm: A formal specification with Haskell
abstract
The Dendritic Cell Algorithm (DCA) has been described in a number of different ways, sometimes resulting in incorrect implementations. We believe this is due to previous, imprecise attempts to describe the algorithm. The main contribution of this paper is to remove this imprecision through a new approach inspired by purely functional programming. We use new specification to implement the deterministic DCA in Haskell - the hDCA. This functional variant will also serve to introduce the DCA to a new audience within computer science. We hope that our functional specification will help improve the quality of future DCA related research and to help others understand further its algorithmic properties.
Julie Greensmith, Michael B. Gale
CEC2
2017 Well-typed music does not sound wrong (experience report)
abstract
Music description and generation are popular use cases for Haskell, ranging from live coding libraries to automatic harmonisation systems. Some approaches use probabilistic methods, others build on the theory of Western music composition, but there has been little work done on checking the correctness of musical pieces in terms of voice leading, harmony, and structure. Haskell's recent additions to the type-system now enable us to perform such analysis statically.
Dmitrij Szamozvancev, Michael B. Gale
Haskell2