28 April 2009

What is a code ?

It is necessary to define precisely the code in order to build on this definition. Here is how I define the code in the context of a theory of Memetics.

Simply put, a code can be described as a series of commands of actions, and this regardless of the nature of the code or actions. As an example of code we have:
The genes in the biological world that control the production of molecules, the programs in the computer world that control computers, the sentences in the cultural world that control behaviour, etc..

However, considering the code alone is not enough. We will see that it is part of a system. 

It should be noted that a code is never alone. To be carried or decrypted, the code needs to be written somewhere, it needs a medium. Also, a code is intended to be read, otherwise it is useless, it therefore needs a reader. Finally, a code must be expressed in a particular language, otherwise it cannot be understood. We notice that if one of the above conditions is missing, then the code is lost, it is no longer a code, it ceases to exist. 

So, the code is part of a necessary group of four elements and cannot work without this group. This group contains: 

1 The code itself (of course). 
2 The medium that contains the code. 
3 The reader which turns the code into action. 
4 The language which must be respected by the code. 

The medium: 
The medium carries the code and the code does not exist without the medium. If you erase the ink on the paper, the text disappears. The medium allows two things: the storage of the code, of course, but also its transportation. Note: the same code can be written to different media. 
Examples of media: DNA for the genetic code, ink for the words or phrases, magnetic or optical discs for computer programs. 

The reader: 
By "reader" one must understand "a mechanism that transforms the code into actions." That is to say that for any code read by the reader, an action is performed. To qualify as a reader, this reader must be able to read at least two separate codes and must be able to operate in at least two distinct ways according to these codes. Otherwise it is not a reader. 
Note: The same code can have different meanings for different readers because readers define their own language (cf. language)
Examples of readers: computers, human brain, cells containing DNA.

The language: 
Among all codes readable by a reader, there are irreducible codes, i.e. codes that, if they are deprived of any of their parts, are no longer executable by the reader. Those irreducible codes are called the terms of the language.
The language of a reader is defined as being the group of all the terms of this reader.
Examples of a language: All possible genes, all words and letters of the English language, all the basic codes of a computer language.

The code: 
The code gets its meaning from the language. The code is a subset of terms of the language, i.e. that the code consists of a set of terms derived solely from all the original terms of the language, just like a sentence is made of words from the dictionary.
Example code: Gene that makes eyes blue, the word "hello", a line of computer code.

Examples of coding groups for illustration:

Code      Phrases  Genes           010101 
Medium    Sounds   DNA             CD-rom 
language  French   Extended genome C + + 
Reader    Brain    Cells           Computer 
Actions   Thought  Organisms       Calculations

The code is something intangible. For example, the ink laid on paper that forms words is not the code, it's only its medium. The code is in the particular arrangement of this ink, more precisely in the geometric shapes of the letters. These geometric shapes are abstract objects. For the same reason, human language is also something intangible. The same goes for DNA. The code of genes is not the molecules themselves, but their arrangement, their sequence. This sequence, again, is an abstract object; DNA is only its medium, its expression. Again, the same goes for computers. Whether programs are written in the form of numbers or letters or bytes, on silicon or plastic, they are still abstract objects, special arrangements of matter.

This is to say that we cannot "see" the code itself, we can never see more than the effects on their media. You can see a sequence of nucleotides and can see the ink on paper but without its medium, a code is invisible, inaudible, and untouchable.

Finally, to identify and decipher a code, we not only need to find its medium but also its readers as well as the languages associated with these readers. Without this, the code remains indecipherable and therefore inaccessible. We can only "see" the code if the other three elements, medium, language and reader, have been identified. If you see a text in Arabic, but you do not know the language, the meaning of the text, its code, will remain inaccessible.

Time and space. 
Implicitly, the concept of code requires the existence of at least one dimension of space and at least one dimension of time. In order to make the difference between the medium and the reader, it is necessary to distinguish them in space. Finally, for a code to be read and then executed it is necessary to separate these elements in time and that time must have a constant direction (the arrow of time) so that the reading always precedes the action. 
Finally, space must be discontinuous and transformable, so that different states can be distinguished and actions can take place.

We put that every action is a transformation of space generated by a reader when reading a code.

To study the codes we will consider only worlds in which transformation of space requires an exchange of energy and respect the first law of thermodynamics: the conservation of energy. Thus, any action requires an exchange of energy.

The actions performed by the codes respect the second law of thermodynamics, but they can have two types of effects on the entropy of a system. Either they participate of its increase (for example, simple heat dissipation), or they participate of its distribution (e.g. formation of crystals). Indeed, some codes may execute a transfer of entropy, thus reducing the entropy of a part of the system while increasing the rest. This is particularly true of replicators. Any replicant system tends to reduce the entropy of its local universe while increasing that of the rest of its world.

The concept of code is a grid, an interpretation of the universe. In analyzing the world as a set of codes, languages, media and readers, we observe the universe in a new light revealing some of its mechanisms. The codes of particular interest to us are the replicating codes.