Category Archives: Modularity

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 | 6 Comments

Code is Material

‘Code is data’ is a metaphor around which the Lisp communities (and REBOL, and others) have built programming languages. The metaphor is effective in these languages because code is presented and represented as a simple structure which may easily be … Continue reading

Posted in Distributed Programming, Language Design, Modularity, Open Systems Programming, UserInterface | 17 Comments

Embedded Literal Objects

When a PL is designed for a text editor, it is natural that text is the richest embedded literal. The text editor provides the visualization and update HCI. And text can certainly be useful; beyond modeling a subset of human … Continue reading

Posted in Language Design, Modularity, Types, User Interface, UserInterface | 5 Comments

ABC Linking with Provider Independent Security

As I’ve mentioned in other posts, Awelon Bytecode (ABC) has a non-conventional approach to code reuse. A valid sequence of bytecode can be given a deterministic, cryptographically unique name – e.g. a secure hash. In ABC, the code to invoke … Continue reading

Posted in Distributed Programming, Language Design, Modularity, Open Systems Programming, Security | Tagged , , , | 5 Comments

Compiling ABC/AO

I’ve spent most of this month developing a more sophisticated compiler for Awelon project, based on first translating the code into a dataflow graph, then translating to Haskell. This allows easy use of Haskell’s variables, and more effective use of … Continue reading

Posted in Language Design, Modularity, Open Systems Programming | Tagged , | Leave a comment

Awelon Virtual Machine

An ‘Awelon Virtual Machine’ (AVM) is a description of an RDP-based programming environment. This description includes types, partitions, and behavior primitives. It is a complete description, repeating even the ‘standard’ primitives like first and compose. Unlike a traditional VM, an … Continue reading

Posted in Grammars, Language Design, Modularity, Reactive Demand Programming, Types | Leave a comment

Multi Stack Environment in Awelon

Last post, I took things to an extreme. Which is a good thing. Extremism tells us where the limits are. After we know the limits, we can seek balance. There is a simple problem with the tree-zipper environment: It is … Continue reading

Posted in Concurrency, Language Design, Modularity, Types, UserInterface | 3 Comments