Tierra szimulációs rendszer

Template-ek

Template címzés

Architetúrális adottságok

A Tierra virtuális gépben nincs nincs numerikus művelet (ahol argomentumot adnánk). Ezért cím kalkuláció sem lehet ilyen alapon, vagyis nem lehet ugrási címet kalkulálni. Tom Ray azt "ajánlja" hogy az utasításkészlet a lehető legkisebb méretű legyen. A Tom Ray által definiált Istruction Set #0 32 utasításból áll.

Asszociáció

Hogyan lehet ilyen körülmények között ugró (ill. hívó) utasításokat megvalósítani? A válszhoz az ötlet a molekuláris gnetikából jön. Hogy "találják" meg egymást az összekapcsolódo molekulák? A kapcsolódó molekulák megtalálják az a "helyet" (egymáshoz illeszkedő formákat) ahol összekapcsolódhatnak. Ezek az un. template-ek.

Template-ek megvalósítása

Hogyan lehet megvalósítani a template-eket a Tierra programozási nyelvén? Az ötlet a következő: két különböző nop utasítás van, nop0 és nop1. Egyik nop sem csinál semmi "hasznosat", azoban egy template-et lehet belőlük csinálni. Íme egy template:

nop0 nop0 nop1 nop1 ; ez a template: 0011 mintájú ; ehhez a template-hez illeszkedő template, ; ennek az inverze, azaz: 1100, vagyis nop-okkal nop1 nop1 nop0 nop0 ; ez a template: 1100 mintájú

Hogy működik a jump ?

A jump a mögötte lévő template-hez egy adott írányban az első illeszkedő template-re ugrik. Tehát az illeszkedő template keresése (így az ugrás iránya) egy adott irányba (előre vagy hátra) történik. Ha meggondoljuk, akkor ebből következik, hogy jump magára nem ugorhat, ilyen fajta végtelen ciklust nem okozhatunk.