📝 Original Info
- Title: The genome is software and evolution is a software developer
- ArXiv ID: 1003.0575
- Date: 2010-03-03
- Authors: Researchers from original ArXiv paper
📝 Abstract
The genome is software because it a set of verbal instructions for a programmable computer, the ribosome. The theory of evolution now reads: evolution is the software developer responsible for the existence of the genome. We claim that this setting, whose official name is genetic programming, is necessary and sufficient to discuss all important questions about evolution. A great effort has been made to pass from wording to science, i.e., from naive theories to robust models to predictions to testing for falsification.
💡 Deep Analysis
Deep Dive into The genome is software and evolution is a software developer.
The genome is software because it a set of verbal instructions for a programmable computer, the ribosome. The theory of evolution now reads: evolution is the software developer responsible for the existence of the genome. We claim that this setting, whose official name is genetic programming, is necessary and sufficient to discuss all important questions about evolution. A great effort has been made to pass from wording to science, i.e., from naive theories to robust models to predictions to testing for falsification.
📄 Full Content
arXiv:1003.0575v1 [q-bio.OT] 2 Mar 2010
The genome is software and evolution is a
software developer
Jos´e del Carmen Rodr´ıguez Santamar´ıa
The genome is software because it a set of verbal instructions for a pro-
grammable computer, the ribosome. The theory of evolution now reads: evolution
is the software developer responsible for the existence of the genome. We claim
that this setting, whose official name is genetic programming, is necessary and
sufficient to discuss all important questions about evolution. A great effort has
been made to pass from wording to science, i.e., from naive theories to robust
models to predictions to testing for falsification.
1
Basic concepts
We, human beings, use languages to communicate one with another. A language
is composed of verbal instructions, a code of interpretation and a semantic content.
A verbal instruction is a string of sounds or letters that belong in an alphabet.
Verbal instructions must be deciphered according to a code of interpretation,
which appears, say, in a dictionary. The deciphered verbal instructions convey
information about the world or about actions that must be undertaken and it is in
this way that they acquire semantic content.
A computer is a devise that has the potential ability of executing verbal in-
structions. A program is a set of verbal instruction, written in a specific pro-
gramming language that can be interpreted and executed by a computer. Code is
a set of instructions that eventually contain correctly written programs. Software
is a set of programs to execute a task.
Hardware is the wiring that converts
programs into specific actions. The core of the hardware is the microprocessor
that contains the central processing unit, which can understand verbal instructions
that are written in machine language, which is composed of words whose alphabet
is just {0,1}. An operating system is a set of programs specifically targeted to
1
serve the needs of communication between human users and the hardware: it con-
tains the know-how of operating the computer to execute a verbal instruction that
commands to, say, print a letter on the console; it also produces feedback from
the hardware, say, it could communicate that there is no network connected to the
computer. Simple microprocessors are not enabled to admit operating systems
apart than the one contained in its machine language. A robot is a machine that is
operated by a computer that has been programmed to have certain independence.
A designer is a person that is committed to the design of software with a
specific function, which is defined before beginning but that might be modified
along the process.
Let us define SOFT as the problem of designing software. Soft has a prelude:
if one works in a company and the program must be done for a client, he or she
must say what function the program must fulfill. If this is officially done, the
function is transcribed to a document that is called spec.
More specifically, spec contains the requirements that a system must fulfill:
on this input, and under given parameters, the system must answer like this but
with this other input the system must be answer like that. For instance, if the user
types the name of a client, the system must display desired information such as
photo, telephone number and address but the type of music he or she prefers must
be displayed only if that is asked in advance. All this might be encoded as a huge
table that assigns binary strings to binary strings. The task for the developer is
to find an algorithm or procedure that reproduces the correct assignations and to
encode it into a convenient programming language.
A bug is any error against a goal in programming. It is absolutely sure that the
first trial of a code is inviable. But if one manages to produce a viable code, most
surely it will not do what one was so eagerly expecting. The process of adjusting
the code to the predefined purpose is called debugging.
From the linguistic stand, spec is no more than an extended proposition, whose
overall form is do this but not that. The sentence do this plays the role of a verb
and represents elementary executing actions, while the sentence but not that plays
the role of an adverb and represents all the possible regulations that actions may
include.
In contrast to a software designer, which is a person with a goal, we also have
the concept of software developer, which is any process or entity that produces
software. The point to be consider in this article is that the genome is software and
2
that evolution is a software developer whose possibilities are worth being studied
both to explain the genome and to be used in industrial software design.
We highlight the fact that the concept of bug has a meaning in software design
but in principle it lacks any meaning in software developing. The reason is that
a bug is a fault against a goal, a project, a predefined function, while software
developing may run without predefined goals by mere diffusion. N
…(Full text truncated)…
📸 Image Gallery
Reference
This content is AI-processed based on ArXiv data.