Channels – Asynchronous Services
I came across the Axum programming language today while researching asynchronous programming languages.
The idea behind asynchronous system services is that it allows a high degree of liveness in the system. The interesting aspect of the Axum language is the definition of channels to pass messages between agents. Nothing new until you realize that a new instance of a channel is created and multiple ports per channels are defined, with the ability to define rules to be enforced on the order in which those ports must be used.
It then becomes possible to define the communication mechanisms in the channel itself ensuring that both parties communicating thru the channels are fulfilling the contract requirements and the defined protocol.
Further, in this channel protocol definition the concepts of “States” and “Transitions” is defined which brings the ideas of petri nets in perspective.
This may be an interesting idea for implementing all system services, as channels could be created and closed as required; this would allow to remove or upgrade a system component without having to modify references to external function entry points (extern/global pointers).
The language defined in Axum would probably have to be relaxed to maintain the philosophy of Unununium; mainly by allowing a process to reference any other part of the memory. As such, I believe we may want to borrow the concepts of channels, ports and protocols only.
Interesting idea none the less, more to come on this subject!