The T.H.E. Mutiprogramming System Console Message Interpreter
We don't have any decent operating systems unfortunately, but I keep thinking about this device, because it is a cool toy. I once programmed something like it in Microsoft Basic, of all things. All it did was allow the program to open new windows on the screen with widgets of various kinds which it could configure by calling procedures. So there was a widget which could display a list of items and the widget handled the scrolling as each item was added. There was another which allowed input strings and the widget made the data available as the return result of another procedure. There was a status bar widget which showed various flags according to procedure calls etc. etc.
But we have much fancier displays in the form of web pages, so it occurs to me that you could make a system like this allowing programs to interact with local web servers, one for each app. These could be multiple different processes each serving http requests on a different port. Then one of them would be the console message interpreter which showed a page allowing the operator to choose which display to view and which virtual terminal to which input should be directed. Moreover, one could use this console message interpreter to orchestrate communications between processes, and of course there is no reason why they all need to be on the same physical machine. See Lindsey Kuper - Interpreters Everywhere.
You can write all this in Standard ML too using Mads Tofte's web server. You just need to add the following line (#27) to the mimetypes list:
(["js", "mjs", "cjs"], "text/javascript"),
I just read somewhere that for a while that the Danish ITU ran all their administrative systems using Standard ML software they wrote themselves, so it was a lot like The T.H.E. Multiprogramming System. It could have been fun. I hope it was!
See the introduction to The THE Multiprogramming System by Edsger W. Dijkstra Presented at an ACM Symposium on Operating System Principles, Gatlinburg, Tennessee, October 1-4, 1967.
We could use this to do a decent social media system where the programs on anyone's "desktops" can compute using the data on other people's desktops. What we would want to start with are the definitions of the languages we're using. See Stephanie Weirich on Functional / Logic Programming in Verse.
Comments
Post a Comment