The simple essence of automatic differentiation
C Elliott - Proceedings of the ACM on Programming Languages, 2018 - dl.acm.org
Automatic differentiation (AD) in reverse mode (RAD) is a central component of deep
learning and other uses of large-scale optimization. Commonly used RAD algorithms such …
learning and other uses of large-scale optimization. Commonly used RAD algorithms such …
Optimising purely functional GPU programs
Purely functional, embedded array programs are a good match for SIMD hardware, such as
GPUs. However, the naive compilation of such programs quickly leads to both code …
GPUs. However, the naive compilation of such programs quickly leads to both code …
Feat: functional enumeration of algebraic types
In mathematics, an enumeration of a set S is a bijective function from (an initial segment of)
the natural numbers to S. We define" functional enumerations" as efficiently computable …
the natural numbers to S. We define" functional enumerations" as efficiently computable …
Type-safe observable sharing in Haskell
A Gill - Proceedings of the 2nd ACM SIGPLAN symposium on …, 2009 - dl.acm.org
Haskell is a great language for writing and supporting embedded Domain Specific
Languages (DSLs). Some form of observable sharing is often a critical capability for allowing …
Languages (DSLs). Some form of observable sharing is often a critical capability for allowing …
Observable sharing for functional circuit description
Pure functional programming languages have been proposed as a vehicle to describe,
simulate and manipulate circuit specifications. We propose an extension to Haskell to solve …
simulate and manipulate circuit specifications. We propose an extension to Haskell to solve …
Everything old is new again: quoted domain-specific languages
We describe a new approach to implementing Domain-Specific Languages (DSLs), called
Quoted DSLs (QDSLs), that is inspired by two old ideas: quasi-quotation, from McCarthy's …
Quoted DSLs (QDSLs), that is inspired by two old ideas: quasi-quotation, from McCarthy's …
Semantic encapsulation using linking types
Interoperability pervades nearly all mainstream language implementations, as most systems
leverage subcomponents written in different languages. And yet, such linking can expose a …
leverage subcomponents written in different languages. And yet, such linking can expose a …
Calling hell from heaven and heaven from hell
S Finne, D Leijen, E Meijer… - Proceedings of the fourth …, 1999 - dl.acm.org
The increasing popularity of component-based programming tools offer a big opportunity to
designers of advanced programming languages, such as Haskell. If we can package our …
designers of advanced programming languages, such as Haskell. If we can package our …
Practical principled FRP: forget the past, change the future, FRPNow!
We present a new interface for practical Functional Reactive Programming (FRP) that (1) is
close in spirit to the original FRP ideas,(2) does not have the original space-leak problems …
close in spirit to the original FRP ideas,(2) does not have the original space-leak problems …
FranTk-a declarative GUI language for Haskell
M Sage - ACM SIGPLAN Notices, 2000 - dl.acm.org
FranTk is a new high level library for programming Graphical User Interfaces (GUIs) in
Haskell. It is based on Fran (Functional Reactive Animation), and uses the notions of …
Haskell. It is based on Fran (Functional Reactive Animation), and uses the notions of …