The Tortuous Path of Early Programming.

In the perpetual darkness more than two miles below the surface of the North Atlantic, a submersible sled slowly traced the alpine contours of the ocean bottom in the summer of 1985. Named the Argo after the ship in which the legendary Greek Hero Jason sought the Golden Fleece, the 16-foot-long craft resembled a section of scaffolding flung on its side and stuffed with equipment, Powerful lights, sonar, Video cameras. Far above, arrayed in front of a video screen in the control room of the U.S. Navy research vessel Knorr, Members of a joint French-American scientific expedition intently watched the images transmitted by the submersible as it was towed above a desolate landscape of canyons and mud slides.

After 16 days of patient search, A scattering of metallic debris appeared on the screen, followed by the unmistakable outline of a ship\'s boiler. A jubilant cry arose from the scientists. The ocean liner Titanic sunk 73 years earlier with more than 1,500 of its 2,200 passengers on board had finally been found.

The quest for the remains of the Titanic in the crushing depths of the sea was a remarkable application of computer technology, as exotic in its means as in its venue. Not least of the keys to the successful outcome was the agility of modern computer programming.

Argos\'s ensemble of sonar, lights and cameras was orchestrated by an array of computers that each programmed in a different computer language. The computer on the unmanned Argo itself was programmed in FORTH, a concise but versatile language originally designed to regulate movement of telescopes and also used to control devices and processes ranging from heart monitors to special-effects video cameras. The computer on the Knorr was programmed in C, a powerful but rather cryptic language capable of precisely specifying computer operations. The telemetry System at either end of the finger thick Co-ax cable connecting the vessels, which in effect enabled their computers to talk to each other, was programmed in a third, rudimentary tongue known as assembly language.

Programming languages are the carefully and Ingeniously conceived sequences of words, letters, numerals and abbreviated mnemonics used by people to communicate with their computers. Without them, computers and their allied equipment would be useless hardware. Its own grammar and syntax regulate each language. A programming language that approximates human language and can generate more than one instruction with a single statement is deemed to be high-level. But computer languages tend to be much more sober and precise than human languages. They do not indulge in multiple meanings, inflections or twists of iron. Like computers themselves, computer languages have no sense of humour.

Today there are several hundred such languages, considerably more than a thousand if their variations, called Dialects, are counted. They enable their users to achieve a multitude of purposes, from solving complex mathematical problems and manipulating (or crunching) business statistics to creating musical scores and computer graphics. No existing Language is perfect for every situation. One or more of three factors usually determines the choice among them: The language is convenient to the programmer; it is useable on the available computer; it is well suited to the problem at hand. The multiple tongues employed on the Titanic expedition are a case in point. For the computers aboard the surface ship Knorr, C was the preferred language because it provided more direct control of the computerised hardware. FORTH was the only high-level language that could be used on the submersible Argo\'s computer. And the precise timing required timing required of the signals passed by cable between the two vessels was best accomplished by rigid assembly language.

As varied languages have become the all build on a common base. At their most fundamental level, Computers respond to only a single language, The high and low of electric voltages representing the ones and zeros of binary code. Depending on how these signals are fed into a computer\'s memory. Another might be a piece of data yet to be processed.

Yet another collection of binary digits, or bits, might command the machine to perform a certain action, such as adding to numbers. The circuitry of each type of computer is designed to respond to a specific and finite set of these binary encoded machines, which may be combined and recombined