A proposal for a machine language

Many people will be familiar with high level programming languages such as Basic, Java, C++ or Perl. These languages are designed to be understandable by humans, but they have to be translated into machine language before a computer can executed a program. There are programs which will do this translation, we call those compilers. In this post I will propose a machine language.

As most people will know, computers use ones and zeros. For most people it is a mystery how complex ideas such are represented by only ones and zeros. The main purpose of my proposal for a machine language, is to illustrate how this could be done.

A variable that is either one or zero, is called a bit (from binary digit). My proposal is to take two bits and call such unit a base. We have the following bases {00, 01, 10, 11}, for clarity I will assign each base a letter.

binary value assigned letter
00 A
01 C
10 G
11 T

Next I propose that all bases are grouped in units of three bases each, called triplets or codons. There are 4^3 = 2^6 = 64 different codons. As you might have noticed a codons consists of six bits, which is different from a byte which consists of eight bits. But that is just a convention, and I am proposing our own conventions.

I will not give a list of possible codons, except for four codons. Each codon represents an instruction. The four special codons are one start instruction (ATG) and three stop instructions (TAA, TAG and TGA). These codons tell the machine where to start and stop reading computer code. Every code not included between a start and stop codon is ignored, and we will call this junk code.

Though you might find these convention arbitrary and strange – and to some extent it is – you should consider that this language is actually in use around the world. In fact it is one of the oldest and most widespread machine languages in the world. And it is used to produce the most complex things we know.

Advertisements

3 responses

  1. Isn’t this just DNA?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: