Category Archives: State

KPNs as an Effects Model

In this article, I motivate a variant of Kahn Process Networks (KPNs) with bounded channels as a better – more efficient, scalable, composable, securable, serializable, comprehensible, and debuggable – approach to modeling effectful application behavior. Especially in context of purely … Continue reading

Posted in Concurrency, Language Design, Modularity, Open Systems Programming, State | Tagged , , , | 8 Comments

Wikilon Dictionary Applications

A repeating cycle of simplification and refinement has fine-tuned Wikilon since I introduced it over a year ago. One area where Wikilon has changed significantly is its application model, that is: how I expect to host server-side applications and debugging. … Continue reading

Posted in Language Design, Live Programming, Modularity, State, User Interface | 2 Comments

Abstract Awelon Virtual Machines

I’m still working towards Wikilon, a wiki-based development environment and initial software platform for the Awelon project. The design is still fluid, and has taken me in some interesting and unconventional directions on the ‘development environment’ side. On the ‘software … Continue reading

Posted in Concurrency, Modularity, Open Systems Programming, Security, State | 10 Comments

VCache, an Acid-State Killer

Haskell has a convenient package called acid-state, which enables a Haskell value to be utilized as a database, essentially via the command pattern: updates are logged, and programmers can perform the occasional checkpoint; on restart, the checkpoint is loaded and … Continue reading

Posted in Concurrency, Modularity, State | 8 Comments

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

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 | 1 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

Posted in Concurrency, Language Design, Modularity, Open Systems Programming, Reactive Demand Programming, State, Types | 1 Comment

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

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

Posted in Concurrency, Open Systems Programming, Reactive Demand Programming, State | 1 Comment

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