Light History of the Large and Small Languages

In the late '60's I attended an MIT symposium run by Doug Ross on his software concepts. From this experience I came up, in a couple weeks, with a demo block diagram language. The next decade, also motivated by the initial ladder diagram languages, I originated a number of different graphic process control language concepts, addressing different aspects of our application environment. One of these, developed at the time that the Sequential Function Chart was being developed in France, represented a more general flowchart like sequencing and logic diagram. And the general direction paralleled the later direction of the manufacturers of logic controllers. But with ICL, I shifted course, inventing a single language structure in which different elements, designed for specialized clarity of intent, covered the different application needs.

The Idiom was originated when I returned from a '75-'76 teaching year at LSU, and I discovered that I could no longer understand Greg Shinskey's designs as he "shifted from his feed forward period to his selector period". It dawned on me that, the visual block diagrams were not the crucial aspect of his designs, but unstated, underlying, higher level, intent concepts that I then called Idioms. A perverse demonstration of this situation occurred in one of his papers when he actually defined his Idioms, but in the last paragraph! A language based on Idioms and other intent specialized strategies would be much clearer than one based on the block diagrams needed to implement them.

We were then working on the initial stages of IA, and I started thinking about what ought to be the form of an up-to-date (Idiom based) control language. In my view it needed to include the Idiom continuous controls, but start up, shut down, batch, logic, etc. Interestingly, Idioms supported sequenced control structures. In my earlier language work, I had demonstrated experimentally that ladder logic was far simpler to implement and easier to understand for control than logic blocks, more closely representing the typical intent of the underlying control. Truth Tables had the same property, also allowing the user definition of his process related states.

The Brackets for representing different control structures evolved from normal program indentation practices, as a more general way, still structured, over Sequential Function Charts, of mixing sequence control with complex computation. The ICL needed clear separation of different aspects of the control configuration, with live sequencing and controls separated from their tuning parameters and the IO configuration. The concept of designing separate Pages for each configuration aspect supported this. Previous product efforts had shown that IO configuration worked especially well as tables of related variables under shared table headings, on a Definitions Page. Free form user defined tables allowed the mixing of analog and state defined logical variable attributes as convenient for any particular application. All of this was first demonstrated on an Apple II.

Later the industry started talking about smart sensors, that were never, in my mind, very smart. The Small System Language concept originated in talking to the marketing department. They had a whole family of boxes that they wanted built, that I felt needed to be collapsed into one smart box. But when I asked bounds to the function of that one box and their need, their answer effectively was a little bit of everything. So, the H with it, I needed a general purpose language. Since the smart sensor was basically a sensor, the existing free form ICL variable Definitions Page became the basis of such a language.

Footnotes allowed arbitrary calculations to be inserted into the table. States permitted general sequencing: a completely general purpose language. The table was conceived as a single long string of user defined SuperVariable attributes and Footnotes, which could be automatically pretty printed into a table according to any user repeated table line forms. From my point of view, the result was simple enough for the "islands of automation" appropriate to smart field devices, but powerful, and suitable to working in a larger system under the Large Language.