[SIGCIS-Members] What does "programmable" mean?

Brian Randell brian.randell at newcastle.ac.uk
Sun Feb 1 14:56:36 PST 2015


Hi Thomas:

I was recalling both an earlier discussion on firsts on Sigcis, and thinking of Atanasoff, and so worrying about incurring the wrath of Sigcis, not just that of the Iowans and Bulgarians! :-)

I’m still fairly happy with the description I gave at Los Alamos in 1976 (source of 1980 Metropolis et al volume A History of Computing in the Twentieth Century), but I have seen somewhere recently the claim that in a sense the Colossus was more general than several later machines because it performed logical operations rather than mere arithmetic ones!

I’ve not had anything to do with the Wikipedia page, but I am a little unhappy with the way it describes Colossus as "being designed for a specific cryptanalytic task involving counting and Boolean operations”. It may have been *intended* by Newman for a specific task (Lorenz wheel “setting” - identifying the initial positions of some of the rotors) but Flowers *designed* and made a much more general/flexible machine than was initially suggested to him. Thus Colossus proved capable of the very different task of wheel “breaking” (determining how the “binary” cams on each wheel had been set up - semi-automatically in the Mk 1 Colossus, fully automated in the Mk 2). Moreover it appears that it was capable - though not in any practical way - of actually decoding and typing out decoded Lorenz messages, and of performing multiplication. (It would be very interesting to know what the two machines that survived the war were used for at GCHQ!)

I don’t have any answer to your question "has anyone defined the minimum degree of configurability necessary to make something ‘programmable'” - but I think it will be necessary to distinguish between “practical” and “theoretical” programmability, the latter completely ignoring mere issues of speed and capacity. 

Cheers

Brian


On 1 Feb 2015, at 18:27, Thomas Haigh <thaigh at computer.org> wrote:

> Hello Brian,
>  
> I understand that omitting the word “programmable” would incur the wrath of Iowans and Bulgarians by slighting Atanasoff and his ABC. Thus both would be electronic, but only Colossus qualifies as programmable. But can you help those of us struggling to follow the proper assignments of firsts to understand what it means to say that Colossus was “programmable.” Particularly in the light of newer information, the reconstruction, etc.
>  
> Any use of the term for older computers is somewhat problematic, as the idea that “programming” a computer meant the activity of configuring it to carry out a sequence of operations does not seem to surface before 1945, after the new ideas in the First Draft had begun to circulate. Within the ENIAC project the term “setting up” had been used consistently for this activity in 1943-44. It took a while for the new usage to standardize – Goldstine and von Neumann themselves called the activity the “planning and coding of problems” in their famous reports.
>  
> Your groundbreaking paper on Colossus back in the 1980 Metropolis et al volume A History of Computing in the Twentieth Century called at least Mark II Colossus programmable, in as much as there was some way to set up logic conditions and to change the sequence of operations performed with pugboards and switches. You called it a “special-purpose program-controlled electronic digital computer.”
>  
> That definition seems basically to have stuck. Checking its rather detailed Wikipedia page I see that it is described as follows:
> Colossus was the first of the electronic digital machines with programmability, albeit limited by modern standards.[34]
> ·         It had no internally stored programs. To set it up for a new task, the operator had to set up plugs and switches to alter the wiring.
> ·         Colossus was not a general-purpose machine, being designed for a specific cryptanalytic task involving counting and Boolean operations.
> A Colossus computer was thus not a fully general Turing complete machine. However, Professor Benjamin Wells of the Departments of Computer Science and Mathematics, University of San Francisco, has shown [35] that a Universal Turing Machine could have been run on the set of ten Colossus computers. This means that Colossus satisfies the definition of Turing completeness
> Many devices could be configured, for example the plugboards used with traditional IBM punched card machines like sorters or tabulators. So this idea of “limited programmability” seems potentially slippery. (Not to mention the idea that a computer “satisfies the definition of Turing Completeness” if it could be used to construct a ‘Universal’ Turing machine – one could say much the same about a huge pile of Lego or Meccano).
>  
> So my question is: has anyone defined the minimum degree of configurability necessary to make something “programmable” in this sense? It’s clear that a computer can be called programmable if it could be configured to carry out an arbitrary sequence of operations. So traditionally the paper-tape driven machines like the early Harvard or Zuse computers would be seen as programmable (without branching), as was ENIAC (with branching), and of course any EDVAC-type computer. “Special purpose” seems to denote some rather severe constraints, but I don’t have a clear sense of what Colossus could and couldn’t be configured to do. Likewise I understand that ABC, though not regarded as programmable, had some kinds of jumpers and switches, which presumably configured its operations in some way that falls short of “programmability.”
>  
> Of course, Colossus worked well enough to solve problems and the ABC didn’t. That is perhaps a more instructive basis on which to separate their places in history than the concept of “limited programmability.”
>  
> Best wishes,
>  
> Tom
>  
>  
>  
>  
> From: members-bounces at sigcis.org [mailto:members-bounces at sigcis.org] On Behalf Of Brian Randell
> Sent: Sunday, February 01, 2015 4:43 AM
> To: Sigcis
> Subject: [SIGCIS-Members] Royal Mail Postage Stamp commemorating Colossus
> Importance: High
>  
> Hi:
>  
> The Royal Mail has at last revealed details of their plans for a commemorative postage stamp featuring Colossus. I have known of this plan for some time as I was commissioned (in confidence) last year to write a section on Tommy Flowers for the chapter in the next Royal Mail Year Book about the new stamp series. (A rather brief press release by Royal Mail itself indicates that "each of the eight special stamps depict key inventions created by British inventors over the last century: Colossus, World Wide Web, Catseyes, Fibre Optics, Stainless Steel, Carbon Fibre, DNA Sequencing, i-limb" - see http://www.royalmail.com/personal/stamps-collectibles-gifts/look-forward-into-2015.)
>  
> The attached picture and text in fact comes from a scanned copy of the February 2015 British Philatelic Bulletin, rather than directly from the Royal Mail., which I received today. I had not seen the design of the stamp before, so only now - to my annoyance - do I find that it describes Colossus as “the first electronic digital computer” - my own text takes care to use the phrase “the first programmable electronic digital computer”.
>  
> I have pointed out this problem to the Royal Mail, but have been told that it is too late for it to be corrected - the stamps are to be issued next month. (I have learned that the Royal Mail were given some rather poor advice, so I don’t blame them.)
>  
> However I am nevertheless delighted that Colossus is being commemorated by the Royal Mail, and by the growing public recognition especially here in the UK of Tommy Flowers’ great contribution.
>  
> Cheers
>  
> Brian Randell
>  
> <image001.jpg>


--
School of Computing Science, Newcastle University, Newcastle upon Tyne,
NE1 7RU, UK
EMAIL = Brian.Randell at ncl.ac.uk   PHONE = +44 191 208 7923
FAX = +44 191 208 8232  URL = http://www.cs.ncl.ac.uk/people/brian.randell







More information about the Members mailing list