The Arrow Project


This project is built on two major concepts:

  1. That information apart from having signalling and algorithmic aspects, also has a referential structural aspect which can be minimally expressed by the notion of a directed link between two things. In particular, this is without regard to algorithmic constructibility or existence within a state-space (as, say, numbers or symbols). By using such a formulation, numbers and symbols and grammar and algorithmics may be expressed within a uniform framework.
  2. By being able to express with the afformentioned atoms the structural content of a complex system and capture its relation to its context, a large system of information processing may be built wherein information transforms (encodings, splits, merges, and renderings) can be shown to preserve information according to a specifiction. Furthermore, if one step can be validated, then a network can be built of such pieces with guaranteed safety from end-to-end.

The purpose of the arrow project is to design and build a system of handling every-day formal and informal information in this significantly novel way. Modern computer science research has yielded hundreds of meaningful distinctions of possible programming semantics and syntax. These include procedural, functional, object-oriented, declarative, and a range of languages that solve higher-order terms in the most abstract sense. The arrow system would perform a networking task for formal languages: it supports a new unified system of understanding computations, data, and formal linguistic expressions in terms of arrow atoms. These atoms have no intrinsic semantics, and so can be applied to use in many differing cases both of semantics (interpretation by others) and syntax (shape and form). However, there are many difficult design considerations when attempting this, particularly keeping the relation of the arrow construct to the various semantics formally understandable and easy to manipulate as needed.


I have made available a paper describing the philosophy of the system as well as one outlining the technical strategy for implementing it, using formal terms.


Some prototype code runs on the Squeak system (see the installation instructions for details) and demonstrates a lot of the fundamental concepts.