Heb ik je wat termen gegeven
Waarmee je zelf zou kunnen zien
In welke taal deze cache is geschreven.
Allereerst is er de taal Chef genaamd
Waarin ik schreef het pepernotenrecept
Dat, mits geïnterpreteerd zoals betaamd
Als uitvoer van “Piet” en “Codel” rept.
Piet is namelijk ook een taal
Die niet met leesbare code maar plaatjes werkt
Met gekleurde pixels, in plaats van verbaal,
En die worden als codels aangemerkt.
Waren het bij Chef de ingrediënten
Waarvan hoeveelheden als waardes fungeren,
Bij Piet zijn het juist kleurcoëfficiënten
Die als getallen functioneren.
Althans, het gaat om het aantal blokjes,
Aangrenzend, van dezelfde tint.
En tel daarvan het aantal hokjes
Opdat je een getalswaarde vindt.
En in Chef zijn de uitgevoerde operaties
(plus, min, sla op, print uit, voer in)
Weergegeven door elke chronologisch
Uitgevoerde koks-handeling.
Maar in taal Piet is immers daarentegen
Dat wat je met de getallen doen moet
Evenwel juist daar in gelegen
In elke pixelsgroepjes’ tint en gloed.
En de Piet code? Die zie je staan
Als plaatje in de cache beschrijving:
Die vier Pieten met blije kleuren aan
Blijken de cache codering.
Piet-code begint altijd links boven
En wordt dan naar rechts toe uitgevoerd,
Per effen vlak wordt er geschoven
Tot de rechterrand wordt aangeroerd.
Dan draait de code uitvoer
Rechtsom en nu dus omlaag
Tot ook daar ons keert een contour
En het linkswaarts vervolgt gestaag.
Aldus gaat het alsmaar door
Soms links, soms rechts aanhoudend,
Wat gestuurd wordt door een semafoor
Die de uitgevoerde code herkent.
Het geheugen dat in Piet wordt bijgehouden
heet een stapel ofwel de stack.
Alles wat moet worden onthouden
krijgt met push bovenop een plek.
En van bovenaf worden waardes gepakt:
Stel de bovenste twee tel je op.
Dan wordt het resultaat teruggeplakt
Bovenaan de stack op de top.
Er zijn diverse pagina’s op internet
Die je haarfijn kunnen vertellen
Hoe je Piet handmatig interpret
Je hoeft haast alleen maar te kunnen tellen.
| licht rood |
licht geel |
light groen |
light cyaan |
light blauw |
light magenta |
| rood | geel | groen | cyaan | blauw | magenta |
| donker rood |
donker geel |
donker groen |
donker cyaan |
donker blauw |
donker magenta |
| wit | zwart | ||||
| Verandering van helderheid | |||
|---|---|---|---|
| Verandering van tint | gelijk | 1 donkerder (of 2 lichter) | 1 lichter (of 2 donkerder) |
| gelijk | plaats op stapel | haal van stapel | |
| 1 stap | optellen | aftrekken | vermenigvuldigen |
| 2 stappen | delen | modulo | niet |
| 3 stappen | groter dan | uitvoer-richting | links/rechts aanhouden |
| 4 stappen | kopieer stapel | roteer stapel | in(waarde) |
| 5 stappen | in(letter) | uit(waarde) | uit(letter) |