Richard Harter's World
Site map
Computer Science
September 2010
Email

A question of names

FBP raised the nomenclature issue. What do we call the mini-programs (components in FBP) and their executable instantiations (processes in FBP)? FBP lists a number of different terms before settling on component and process. The problem with these terms and the alternatives is that they are generic terms that have different meanings in different contexts.

I have coined the neologism auton which stands for, approximately, autonomous program element. One advantage the term has is that "auton" doesn't appear to be used in comp sci jargon except for a couple of Dr. Who episodes. This means that we get to set the meaning. The disadvantages are that people won't recognize the term, and, to be honest, it is an odd name. Still, there it is, a virgin term available for use. Here is a shot at specification:

First of all, the auton concept presupposes that a program (application) consists of a network of autons connected by data channels, and a data flow engine that schedules and administers the flow of data between autons. Each auton has indefinite duration, i.e., it continues to exist until it is terminated. During its lifetime an auton can either be active or dormant. The network may reside in a single thread, in multiple threads on one machine, or in multiple threads on multiple machines.

Think of an auton as a mini virtual machine. The code associated with the auton defines the program that runs on the machine.

Autons are independent of each other, i.e., they do not share state or storage. Moreover an auton need not know where their input comes from, where it goes, or what will be done with it.

Autons have input ports and output ports. Data is read/received in input ports and is emitted/sent/witten in output ports. All data flow between autons is done in the form of structured packets (information packets in FBP). In FBP the data in an information packet has a single unique location at any one time. My view on this that a packet can have either of two kinds of information - documents and transient data. Documents are like FBP information packets; they can be transferred using shallow copying. Documents must be explicitly created and disposed. Transient data exists within the auton creating it; the transient data within an information packet is a deep copy of emitted transient data.


This page was last updated August 21, 2010.

Richard Harter's World
Site map
Computer Science
September 2010
Email