Path: utzoo!news-server.csri.toronto.edu!rutgers!aramis.rutgers.edu!athos.rutgers.edu!nanotech From: forbis@milton.u.washington.edu (Gary Forbis) Newsgroups: sci.nanotech Subject: Re: Is this stuff for real? Keywords: reality nanotech questions Message-ID: Date: 12 Mar 91 23:16:25 GMT Sender: nanotech@athos.rutgers.edu Organization: University of Washington, Seattle Lines: 89 Approved: nanotech@aramis.rutgers.edu The moderator writes: >[Again: You are talking about two distinct phenomena: > (a) [shades of blue] a machine with a specific, designed, function, > performs that function on something slightly different than intended; > (b) [gray goo] due to an error in copying, a plan for a ten-thousand > part machine which does one specific function and runs on one specific > fuel, becomes a plan for a 100 million part machine, able to perform > hundreds of functions, recognize the circumstances under which each > should be performed, run on a wide variety of naturally occuring > energy sources, and survive the chemical attacks of the natural, > highly adaptable microorganisms it will compete with. I'm not sure I see that much difference between the two cases. Be that as it may, I have deleted most of the following paragraph so I can focus on the specific assertions which cause me trouble. > Almost all the copying errors in > a cell are detrimental, i.e. they make it work less well. I'm not so sure about this. I seem to remember that from parent to child there is usually a cross-over error on at least one chromosome. I don't remember how many transcription errors exist. I doubt there would be any life if these errors were that detrimental. Cells get around this problem by redundant code and huge portions of garbage code. The garbage code is probably created by ill-placed cross-overs. > A tiny fraction > improve, or simply change, its function. Almost all of even that > tiny fraction, in a mechanical design, would simply cause it not > to work at all. This may be true with today's designs when thought of at some levels but is not necessarily true. One of the niffty ideas of the 19th century was the mass-produced replaceable part. This was accomplished by tolerance specifications. We are allowed to have slop during the manufacturing process as long as it is kept within limits. Some replacement car parts will work in several places (becuase their design takes advantage of tolerances) where the originals are not interchangable. > Try changing a bubblesort program into a heapsort, > one character at a time, with the constraint that each intermediate > form not only sorts correctly but does so at least as well as bubblesort. This is easy provided comment lines are indicated by a single character. Simply grow the replacement procedure after the existing procedure and a coment prior to the existing procedure which will cause a branch when activated then activate the branch. There are other ways of doing this but this is the easiest. Burroughs B300 assembler has labels which can be addressed by relative position, that is, +a will take you to the next a label and -a will take you to the last a label. I wouldn't be surprised to learn more recent languages have this feature. I have had many programs malfunction in wonderous ways yet be syntatically correct. I leave it to you to see how a single bit error or card misread could cause this problem. Machine language is usually quit densely coded. A single bit error might turn the IBM PC machine code for jmp into jnz or mov c,d into mov d,d. The MS-DOS loader does not contain error detection/correction. It is not clear to me that any particular bit error will even be executed let alone cause a hard failure. I am a systems analyst/applications programmer. On occassion I will encounter program bugs in production programs which have existed for a decade or more. Some system changes will cause existing programs to malfunction because the data values and abstractions move beyond the original scope. As systems age they become more complex and their behavior becomes harder to predict. I would hate to be the person who has to claim any specific system cannot mutate through random processes. I hope it is clear that I am not a comfortable as you are on this issue. > --JoSH] --gary forbis [Far be it from me to comfort you against your will... I'll just point out a couple of things: the human genome is in fact full of "comments" in which errors can occur and have no effect, and it is also quite redundant. It is easy to design our nanobots without either feature. The other observation is that "evolving" a whole new sorting program under cover of comment and "switching" to it at the last minute has no feedback to guide the evolutionary process--which means that it has the same chance of happening as the program changing wholesale, in a single random event, to the given end state. If this were the way evolution actually worked, I would be a fundamentalist. --JoSH]