by Gautam Shah ➔
A set of commands to control a series of actions by a human is a very intelligent and natural action. But to translate, that for a machine, is the primary programming language. Here the predictable sequences are linked in such a way that follow-up actions are dependent on the preceding process. First programmed tools were watches, animated clocks, toys and music players. These mostly worked on sprocket wheels, where an odd teeth initiated an action. The programmed tools worked on mechanically powered sprockets, so were mostly fixed time apparatus. There was no human intervention in its operations except for powering the movement.
First programming languages were process oriented languages, consisting of commands to control a machine. The commands were executed by pressing levers, marked buttons or switches. Such processes were often chained to one another for sequential activation, a rudimentary form of automation.
In the process languages such as Kashmir carpet weavers’ manuals, the commands were recite-able names in ordinary language. Often strings of words were used to not only name the command but also its purpose. However, in Jacquard looms, piano playing scrolls and cuckoo clocks, the commands were punched holes or slots. These were machine-readable languages, and used a very small vocabulary. The dash-dot language of earlier wireless communication is an example of such an economical expression. Later binary, hex and many other types of number formats were used.
Artisans who weave the carpets use a unique code language called ‘Talim’ devised by early Kashmiri for the pattern of knotting handmade carpets. The language was coded with abstract signs.
Command triggering which was initially automated through sequencing and looping also had time delay mechanisms. The time delay mechanisms were made first by mechanical actions, and later through electric and electronics devices. Internally generated or supplied information of feedback, feed forward and other parametric definitions provided the specific conditions for initiation, continuation and termination of the process.
As the processes became long and complex it was recognised that certain independent sub-processes could be handled in a parallel mode. For linear processes the command structure -algorithms are easy to implement, but for non-linear processes (branched, looped), the commands are interdependent, requiring many complicated control-check systems.
- Algorithms: A machine works on two basic inputs: the raw materials (or data) and instructions or activation commands (to initiate or terminate a process). An algorithm is an exact formulation of method for accomplishing a task. However, not all statements or documents of instructions have such logical order that can be seen as an algorithm. Algorithms are a must for machine processing of information. An algorithm is an aid or process analysis that ultimately is transformed through coding into a machine-language.
- The key idea behind Jacquard’s loom was to control the action of the weaving process by interfacing the behaviour of the loom to an encoding of the pattern to be reproduced. In order to do this Jacquard arranged for the pattern to be depicted as a group of holes `punched’ into a sequence of pasteboard card. Each card contained the same number of rows and columns, and the presence or absence of a hole was detected mechanically and used to determine the actions of the loom. By combining a `tape’ of cards together the Jacquard loom was able to weave (and reproduce) patterns of great complexity, e.g. a surviving example is a black and white silk portrait of Jacquard woven under the control of a 10,000 card `programme’.