Scientists predicted, based on a vestigial organ in the human body, that the human genome should contain a broken version of a particular reptile gene.  This predicted gene has now been discovered, in the hidden 'comment' lines of the human genetic code.



Thank you to Science Spot for letting me write a guest journal.  Over the next few days there wil be four of these posts, broken down as follows:

Part 1 - the code of computers

Part 2 - the code of life

Part 3 - why they're similar

Part 4 - and why that's significant


The Code of Computers

(Comment Lines)

Line 1 : Print "Hello World"
Line 2 : Print "Testing"
Line 3 : /*
Line 4 : Print "Testing"
Line 5 : Print "1"
Line 6 : Print "2"
Line 7 : */
Line 8 : Print "3"
Line 9 : Print "Done."

If you run this computer program, it prints on your screen:

Hello World

The reason it does this, is because the thing that reads in the program line by line and decides what to do with the lines (called an "interpreter") knows that it must ignore anything that appears inside the /* and the */

The ignored lines are called "comments" and if you look at a big computer program which has been changed by many different programmers over several years, because their bosses keep changing the requirements of what the program should do, you can use these to trace back the history of the program, from its current working form, to deduce how it started out as a much smaller simpler program, and the path it took with bits being added or commented out, to achieve the present state.




Reverse Engineering

Sometimes, when a program is very successful and the company charges a lot for it, a rival company will create a copy by a process known as "reverse-engineering".  They can't see the source code, but they can see the program in action.  So they set one team to write down a design document, which says precisely what the current version of the program does in practice.  Then they give that design document to a new 'clean' team, who write a new program to exactly match that specification.

Occasionally the original company will sue the rival, claiming that they sent in a mole to steal their source code, and the issue goes to court.  The judge compares the source code of the original to the source code of the rival, and tries to decide if the latter was stolen, or was produced properly by reverse-engineering.  It turns out that this is quite easy for the judge to do because, while the functionality of the programs is identical, when you're able to see the source code, you can look for comments.  The original has a whole baggage of code that used to be functional but is now commented out, while a proper reverse-engineered copy is much cleaner. 

The reverse-engineered copy of our example program at the top would likely be:

Line 1 : Print "Hello World"
Line 2 : Print "Testing"
Line 3 : Print "3"
Line 4 : Print "Done."




Bit Rot

Computer programs are subject to entropy.  People make mistakes when editing them and change bits at random.  If the part that gets changed is vital to the smooth running of the application, then the end users notice, report it as a bug, and it gets fixed (hopefully!).  But if the part that gets changed is in a comment, the error is likely to remain in the code, until such time as the boss says she wants that piece of functionality again, the lines are uncommented, and the poor programmer in charge discovers that they've suffered "bit rot" - they no longer work, and contain errors that were not previously there when he first commented them out.  While individual errors are introduced randomly, the average rate is fairly constant, so if a large enough piece of code was commented out, you can actually make a pretty good estimate of how long ago it was since the code was last in use, by what percentage of the lines now have errors in them.

So, for instance, after being commented out for a few years, the program might look like:

Line 1 : Print "Hello World"
Line 2 : Print "Testing"
Line 3 : /*
Line 4 : Printeger "Tewasp sting"
Line 5 : Printeger "1"
Line 6 : Printeger "2"
Line 7 : */
Line 8 : Print "3"
Line 9 : Print "Done."

It would no longer do what it was intended to do, but if you have a working copy available, you can see how one derived from the other.  You could establish ancestry.


Clairwil (guest journalist)


Continue on to part two.....



A huge thanks to Clairwil for this special series that will walk us through using human genetics to establish ancestry of our species.  For more from Clairwil, or discussion on the topic of evolution, see her new group Debate Evolution vs Creationsim.  It's not just for debate - by reading, you'll learn alot about evolution, genetics and what's new in our scientific understanding of where we came from.

Add A Comment


Jul. 20, 2011 at 7:26 PM

The above journal entry was originally published by science_spot

I have archived it here, in case CafeMom's changes to journals make the original inaccessible.

Message Friend Invite (Original Poster)

Jul. 20, 2011 at 7:29 PM

You can read about how Compaq reverse-engineered IBM's personal computer, opening the way to competition and the cheap computers we have today at:

Message Friend Invite (Original Poster)

Jul. 20, 2011 at 7:29 PM

From the hacker dictionary:

bit decay /n./

See bit rot. People with a physics background tend to prefer this variant for the analogy with particle decay. See also computron, quantum bogodynamics.

bit rot /n./

Also bit decay. Hypothetical disease the existence of which has been deduced from the observation that unused programs or features will often stop working after sufficient time has passed, even if `nothing has changed'. The theory explains that bits decay as if they were radioactive. As time passes, the contents of a file or the code in a program will become increasingly garbled.

There actually are physical processes that produce such effects (alpha particles generated by trace radionuclides in ceramic chip packages, for example, can change the contents of a computer memory unpredictably, and various kinds of subtle media failures can corrupt files in mass storage), but they are quite rare (and computers are built with error-detecting circuitry to compensate for them). The notion long favored among hackers that cosmic rays are among the causes of such events turns out to be a myth; see the cosmic rays entry for details.

The term software rot is almost synonymous. Software rot is the effect, bit rot the notional cause.

WikiPedia mentioned various ways that bit rot can actually happen in practice and a google will reveal many interesting war stories of programmers who have come across this: (example) (example).

Message Friend Invite (Original Poster)

Want to leave a comment and join the discussion?

Sign up for CafeMom!

Already a member? Click here to log in

close Join now to connect to
other members!
Connect with Facebook or Sign Up Using Email

Already Joined? LOG IN