Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84; site ucsfcgl.UUCP Path: utzoo!watmath!clyde!cbosgd!ihnp4!mhuxn!mhuxb!mhuxr!ulysses!allegra!mit-eddie!godot!harvard!talcott!panda!genrad!decvax!ucbvax!ucsfcgl!arnold From: arnold@ucsfcgl.UUCP (Ken Arnold%CGL) Newsgroups: net.lang Subject: Re: Turing the first? Message-ID: <436@ucsfcgl.UUCP> Date: Sat, 2-Feb-85 23:45:25 EST Article-I.D.: ucsfcgl.436 Posted: Sat Feb 2 23:45:25 1985 Date-Received: Wed, 6-Feb-85 04:41:46 EST References: <8900018@uiucdcsb.UUCP> <18218@lanl.ARPA> <428@ucsfcgl.UUCP> <870@pucc-i> Reply-To: arnold@ucsfcgl.UUCP (PUT YOUR NAME HERE) Organization: UCSF Computer Graphics Lab Lines: 46 Summary: In article <870@pucc-i> ags@pucc-i (Dave Seaman) writes: >Turing was not the first to think of self-modifying code. Charles Babbage, >the inventor of the Analytical Engine, wrote about this concept in the >1840s. His term for it was "the Engine eating its own tail." > >Babbage's colleague Ada Augusta, the Countess of Lovelace (for whom the >Ada programming language is named) even anticipated the possibility of >machine translation of symbolic programs (i.e. compilers). >-- >Dave Seaman ..!pur-ee!pucc-i:ags I admit not to having read Babbage's original paper on this, but my understanding was that he used the phrase "eating its own tail" to refer to conditional branches based on its own calculated values. I was talking about code which modified itself. Below is a quote from a 1950's history of computing (I don't have the reference here at home, but will be happy to provide it upon request) which describes Babbage's concept: Babbage clearly understood the restrictions imposed by the inability of a machine to make decisions for itself. He was able to take the next step and to suggest how to endow a machine with the minimum amount if "intelligence" which it needs. As he expressed it, he made the machine "bite its own tail". ... If a machine is to perform the functions of a human computer [used here in the old sense, i.e., "one who computes" --KA], it must possess -- (a) An arithmetic unit ... (b) A memory ... (c) A built-in power of judgement, which will enable the machine to choose, according to prescribed criteria, the course which the computation has to take. (d) An input-ouput mechanism ... This kind of decision is solely conditional branching; it is choosing of alternatives. Turing's concept was of the creation and modification of programs themselves according, thus it is "self-modifying", as distinct from Babbage's "self-controlling". -- Ken Arnold ================================================================= Of COURSE we can implement your algorithm. We've got this Turing machine emulator...