-
Recent Posts
- Modular Manipulation of the Link-Time Environment
- Why Not FFI
- Declarative State Machines
- Ad-Hoc External State Models
- Progress Report: Loops and Restarts in Sirea
- Objects as Dependently Typed Functions
- Anticipation in RDP Reduced
- Exponential Decay of History, Improved
- Sirea RDP Progress Update: Demand Monitors are Working
- Stateless Sound
Categories
Blogroll
- Lambda the Ultimate
- Duncan Cragg's What not How
- Portland Pattern Repository
- Manuel Simoni's Axis of Eval
- Haskell Reddit
- Rocketnia's Pipe Dreams
- Gilad Bracha's Room 101
- Bret Victor's Worrydream
- Roly Perera's Dynamic Aspects
- Gerold Meisinger's Lambdor Devblog
- Patai Gergely's Just _|_
- Dataspace Project
Meta
Author Archives: dmbarbour
Modular Manipulation of the Link-Time Environment
I’m in the process of hammering out a concrete design for Awelon, and my design efforts have taken me to some interesting places. My current application model looks like this: An Awelon application consists of a set of anonymous modules. … Continue reading
Posted in Language Design, Modularity, Open Systems Programming, Security, State
3 Comments
Why Not FFI
FFI – foreign function interface – is a common way for new languages to integrate with existing systems. But FFI is problematic in many ways. FFI represents ambient authority (the ability to ‘import’ authority to ad-hoc resources without a specific … Continue reading
Posted in Language Design, Modularity, Open Systems Programming, Security
3 Comments
Declarative State Machines
Lately, I’ve been wondering what state-machines would look like if specified for declarative systems. Traditional state machines are specified to receive a stream of events as input. Each event may shift the machine into a new state. The transitions are … Continue reading
Posted in Concurrency, Open Systems Programming, State
Leave a comment
Ad-Hoc External State Models
Encapsulation, Accessibility, Security One of the main reasons we encapsulate state is to gain more control over how it updates. For example, take your traditional, imperative, mutable state variables that respond to get and put actions. We might use one … Continue reading
Progress Report: Loops and Restarts in Sirea
I’ve been working on Sirea quite a bit in the last few months, albeit making less progress than I had hoped. Mostly, I’ve been running in circles. In Reactive Demand Programming, all loops are indirect, via a shared external resource … Continue reading
Objects as Dependently Typed Functions
One issue I have with objects is that I cannot compose them like functions (i.e. `f . g . h`). The reason for this is the method-set associated with each object – it requires a lot of wiring to compose … Continue reading
Anticipation in RDP Reduced
Some time ago, I described anticipation in RDP. In that article, I envisioned a behavior intially called `anticipate`, that I eventually shortened to `bpeek`. For discrete-varying signals, it might be specialized to `bpeekL`. — observe a specific distance into a … Continue reading
Posted in Reactive Demand Programming, State
Leave a comment
Exponential Decay of History, Improved
In an earlier article, I described exponential decay of history as an alternative to ring buffers. In this article, I’ll provide a full recap and an improved design. Exponential decay of history is a pattern that competes with ring-buffers, least-recently-used … Continue reading
Posted in Language Design
5 Comments
Sirea RDP Progress Update: Demand Monitors are Working
My implementation of Reactive Demand Programming (RDP), Sirea, is gradually approaching a usable state. After vacation, I sat down and in just a couple programming sessions I got demand monitors into a working order. The implementation of demand monitors further … Continue reading
Stateless Sound
Most audio abstractions involve relative start and some finite bound (end time). That is, we might play(sound) starting at some given instant, and we expect the sound to continue playing until finished. The representation of sound may be stateless (e.g. … Continue reading
Posted in Stability, State, UserInterface
Leave a comment