Piet | ||||
---|---|---|---|---|
![]() | ||||
Paradigma | esoterisch | |||
Verschenen | 1993 | |||
Ontwerper | David Morgan-Mar | |||
Website | http://www.dangermouse.net/esoteric/piet.html | |||
|
Piet is een door David Morgan-Mar ontwikkelde, esoterische programmeertaal waarin computerprogramma's eruitzien als abstracte schilderijen. De taal is vernoemd naar de Nederlandse kunstschilder Piet Mondriaan.[1] Een programma in Piet is een bitmap die door een Piet-interpreter uitgevoerd kan worden.
De Piet-interpreter maakt gebruik van een stack voor het bijhouden van waarden. De kleuren in een programma worden geïnterpreteerd met behulp van de HSL-kleurruimte (hue, saturation en lightness). Afhankelijk van de overgang in hue en lightness tussen twee pixels in een Piet-programma voert de interpreter een actie uit, zoals het toevoegen van een waarde op de stack, het vergelijken van twee waarden of het uitvoeren van een rekenkundige bewerking. Een pixel in een Piet-programma wordt ook wel een codel genoemd om verwarring te voorkomen bij uitvergrote programma's, aangezien een gekleurd blok dan overeenkomt met meerdere pixels op het beeldscherm.
De Piet-interpreter houdt tijdens het uitvoeren van een programma ook twee richtingen bij, een zogeheten Direction Pointer (DP) en een Codel Chooser (CC). De uitvoering van het programma begint bij de codel linksbovenaan en met behulp van de Direction Pointer en Codel Chooser wordt bepaald welke volgende codel bekeken wordt.
Piet maakt gebruik van 20 verschillende kleuren:
#FFC0C0 (lichtrood) |
#FFFFC0 (lichtgeel) |
#C0FFC0 (lichtgroen) |
#C0FFFF (lichtcyaan) |
#C0C0FF (lichtblauw) |
#FFC0FF (lichtmagenta) |
#FF0000 (rood) |
#FFFF00 (geel) |
#00FF00 (groen) |
#00FFFF (cyaan) |
#0000FF (blauw) |
#FF00FF (magenta) |
#C00000 (donkerrood) |
#C0C000 (donkergeel) |
#00C000 (donkergroen) |
#00C0C0 (donkercyaan) |
#0000C0 (donkerblauw) |
#C000C0 (donkermagenta) |
#FFFFFF (wit) | #000000 (zwart) |
Het gebruik van andere kleuren is ook mogelijk, maar de werking ervan is afhankelijk van de gekozen implementatie. Niet-standaardkleuren kunnen ook geïnterpreteerd worden als wit of zwart.