Brian's Projects

Slate Programming Language

Slate is a programming language whose design philosophy accumulated from my research for Arrow. It represents a hybridization of the object-oriented models of Self with the patterns of BETA, as well as employing the abstract-syntax tree form and closure-based semantics of Lisp and the multi-dispatch semantics of its object system. This allows for some surprising results in unifying programming paradigms. However, not only is Slate a language, it is also an entire programming system philosophy, complete with a graphical direct-manipulation mode and a reflection system. We are currently bootstraping an implementation based on the code resources of Squeak, but with a totally novel run-time system, based on some concepts from Self and Strongtalk.

The TUNES Project

This project is very far-thinking, and has been a constant source of inspiration since I first discovered it in 1995. However, the goal is only just now visible on the horizon of the state of the art. My Slate and Arrow projects are two different kinds of attempts to further the progress along. I wrote a draft for a new website home page for it some time ago, explaining in the way I could what it meant and what was required to make it happen. If you're curious about it, there is a mailing list and an irc channel #tunes on irc.freenode.net.

I have currently (2003) committed myself to developing the TUNES Project in various ways. My first act was to undertake the deployment and use of a TUNES CLiki to create a more useful environment for accumulating and discussing useful background and explanatory information for the project. This was completed in early 2003, although much work remains.

My second and most current focus has been the development of the main site docuementation and description up to the point of providing some attempts at formal specification separate from the main TUNES site. This consists of a technical specification document and some prototype code illustrating the ideas in Maude.

I am generally taking on the role of coordinator there, and my general intent is to bring the project to a point of maturity and demonstrability that will attract some funding or volunteers suitably skilled to bring its target goals to fruition. If you are interested, please contact me; I have a preliminary business license, plan, and proposal that I am developing to contract work for projects such as these, entitled LOGOS Research and Development.

Arrow Information Theory

The purpose of the arrow project is to design and build the support for a system of handling information in a 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. In the last 30 years, the world has seen the rise of the use of internets: a robust unified way to encode the layout and behavior of computer networks that allows all of them to communicate in a standard way. The arrow system does a similar thing for programming languages: it supports a new unified system of understanding computations, data, and formal linguistic expressions as arrows, which can be regarded as fundamental distinctions between things. These distinctions have no intrinsic semantics, and so can be applied to use in many differing cases both of semantics and syntax. 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.

Recently, I am deferring work on this project into my work on TUNES noted above. The conceptual overlap between the ideas is extensive, so there is no potential loss of progress.

The ◊ Language System

Basically, a language (or language system, rather) designed to support the arrow information environment in speech. The intent is to act as a language and concept translation and generation scheme.

So far, no formal documents are yet online, but I will say that the tense system is integrated with a phonetic alphabet, unifies all sorts of inflections, and provides 4096 reference points for inflection of the central grammatical type. The system allows for any speaker to dynamically create new tense systems and meanings. In fact, the goal is to allow anyone to re-rcreate any part of the language, given that it has some meaningful semantic link to an existing form. To facilitate this, speakers would agree on standard forms and parts of forms of the language, and publish them on publicly accessible places like the internet and its future derivatives. This would facilitate sharing of knowledge and specialized terms in a constructive way, which would ease automated translation while allowing each group of specialists to use their own most conveniently chosen forms freely.


Brian Rice
Last modified: Sat Dec 13 15:41:12 PST 2003