,PIET ,PIET IS A PROGRAMMING LANGUAGE WHOSE SOURCE CODE IS NOT TEXT BUT A PICTURE SPECIFICALLY1 AN ABSTRACT IMAGE OF COLORED BLOCKS THAT LOOKS1 BY DESIGN1 LIKE A ,PIET ,MONDRIAN CANVAS4 ,DAVID ,MORGAN-,MAR CREATED IT AND NAMED IT AFTER THE ,DUTCH GEOMETRIC ABSTRACTIONIST1 PRODUCING THE ONLY LANGUAGE IN THIS CATALOGUE WHOSE 8,HELLO1 ,WORLD60 YOU COULD PLAUSIBLY HANG IN A GALLERY4..> ,A ,PIET PROGRAM IS AN IMAGE MADE OF CODELS THE LANGUAGE'S EQUIVALENT OF PIXELS1 WHICH MAY BE SCALED TO ARBITRARY SIZE FOR DISPLAY4 ,CONTIGUOUS SAME-COLORED CODELS FORM COLOR BLOCKS1 AND EXECUTION PROCEEDS WHEN A DIRECTION POINTER "<,,DP"> WALKS FROM BLOCK TO BLOCK ACROSS THE CANVAS4 ,THE COMMAND EXECUTED AT EACH STEP IS DETERMINED NOT BY THE COLOR ENTERED BUT BY THE CHANGE IN HUE AND LIGHTNESS BETWEEN THE BLOCK LEFT AND THE BLOCK ENTERED THE PROGRAM IS ENCODED IN THE TRANSITIONS1 WHICH IS WHY A ,PIET IMAGE HAS NO DISCERNIBLE SYNTAX AT ALL3 ONLY RELATIONSHIPS4..> ,A PALETTE WITH A PROGRAM INSIDE ,PIET DEFINES EXACTLY #BJ COLORS3 SIX HUES " AT THREE LIGHTNESS LEVELS #AH CYCLICALLY-ORDERED COLORS PLUS WHITE1 WHICH THE POINTER PASSES STRAIGHT THROUGH LIKE BLANK SPACE1 AND BLACK1 WHICH IS IMPASSABLE4 ,COMMANDS COME FROM THE TWO CYCLES3 - ,HUE CHANGE "<#J#E STEPS FORWARD AROUND THE SIX-HUE RING"> SELECTS THE ROW OF THE COMMAND TABLE4 - ,LIGHTNESS CHANGE " SELECTS THE COLUMN4 - ,CROSSING FROM MAGENTA TO RED INCREASES HUE BY ONE STEP THE CYCLE WRAPS WHILE GOING THE OTHER WAY IS A FIVE-STEP MOVE4 ,THE RESULT IS A #AG-COMMAND MACHINE3 THE NO-HUE-CHANGE ROW PUSHES AND POPS2 THE ONE-STEP ROW ADDS1 SUBTRACTS1 MULTIPLIES2 TWO STEPS DIVIDE1 MODULO1 ,,NOT2 THREE STEPS COMPARE1 STEER THE POINTER1 SWITCH THE CODEL CHOOSER2 FOUR STEPS DUPLICATE1 ROLL1 INPUT NUMBERS2 FIVE STEPS DO CHARACTER ,I_/,O4 ,PUSH HAS A BEAUTIFUL QUIRK IT PUSHES THE SIZE OF THE COLOR BLOCK JUST LEFT1 SO THE PHYSICAL AREA OF A REGION OF PAINT IS A NUMERIC LITERAL4..> ,FLOW CONTROL FOR PAINTERS ,THE DIRECTION POINTER STARTS AT THE UPPER-LEFT CODEL MOVING RIGHT1 ACCOMPANIED BY A CODEL CHOOSER "<,,CC"> THAT BREAKS TIES WHEN SEVERAL BLOCKS QUALIFY AS 8NEXT40 ,WHEN THE ,,DP HITS A BLACK WALL IT CANNOT CROSS1 THE CHOOSER FLIPS1 THEN THE POINTER ROTATES CLOCKWISE AND IF EVERY ORIENTATION IS WALLED IN1 THE PROGRAM ENDS4 ,THE ONLY WAY TO TERMINATE A ,PIET PROGRAM IS TO TRAP THE POINTER IN BLACK PAINT4 ,LOOPS ARE PATHS AROUND THE CANVAS2 BRANCHES ARE CORRIDORS2 THE POINTER AND SWITCH COMMANDS LET DATA STEER EXECUTION MID-FLIGHT4 ,THE WHOLE THING IS A MAZE THAT COMPUTES4..> ,AND IT IS NOT A TOY IN THE FORMAL SENSE3 ,PIET IS ,TURING-COMPLETE WHEN THE STACK IS UNBOUNDED A RESULT DEMONSTRATED CONCRETELY BY THE EXISTENCE OF A ,BRAINFUCK INTERPRETER WRITTEN IN ,PIET1 AN ABSTRACT PAINTING THAT EXECUTES ANOTHER LANGUAGE'S CODE4 ,BRAINFUCK1 THE LANGUAGE DESIGNED TO BE AS SMALL AS POSSIBLE1 WAS IMPLEMENTED IN THE LANGUAGE DESIGNED TO BE AS PRETTY AS POSSIBLE4..> ,BECAUSE THE PROGRAM IS THE TRANSITIONS1 "9"9ANY ,PIET PROGRAM CAN BE RECOLORED"9"9 SHIFT THE ENTIRE PALETTE ONE HUE STEP AND IT STILL RUNS IDENTICALLY4 ,PIET IS THE ONLY LANGUAGE WITH TRUE 8SKINS40 ,WHERE IT SITS IN THE WING ,THE ESOLANG CANON BROKE ONE ASSUMPTION EACH3 ,,INTERCAL BROKE SERIOUSNESS1 ,BRAINFUCK SIZE1 ,MALBOLGE THE PROGRAMMER1 ,WHITESPACE VISIBILITY1 ,BEFUNGE DIMENSIONALITY1 ,UNLAMBDA VARIABLES1 ,,LOLCODE VOCABULARY1 AND ,SHAKESPEARE THE IDENTITY OF CODE AS CODE4 ,PIET BROKE THE LAST ASSUMPTION STANDING THAT A PROGRAM IS TEXT4 ,ITS ANSWER IS A PROOF BY PAINTING3 EVERYTHING A ,TURING MACHINE NEEDS CAN BE EXPRESSED IN AREAS OF FLAT COLOR1 AND THE RESULT IS1 GENUINELY1 THE ONLY SOURCE CODE IN THIS WIKI THAT IMPROVES A ROOM4 ,CHECK YOUR UNDERSTANDING - .< .> ,WHAT DETERMINES WHICH COMMAND A ,PIET COLOR BLOCK EXECUTES ITS COLOR1 OR SOMETHING ELSE8 - .< .> ,WHAT DO BLACK AND WHITE BLOCKS DO TO THE DIRECTION POINTER8 - .< .> ,WHAT DOES PUSH ACTUALLY PUSH ONTO THE STACK8 - .< .> ,HOW DOES A ,PIET PROGRAM TERMINATE8 #A NOT ITS COLOR THE "9"9TRANSITION"9"9 IN HUE AND LIGHTNESS BETWEEN THE PREVIOUS BLOCK AND THE ENTERED BLOCK SELECTS THE COMMAND4 #B "9"9WHITE"9"9 IS PASS-THROUGH "2 "9"9BLACK"9"9 IS IMPASSABLE AND FORCES POINTER_/CHOOSER RETRIES4 #C THE "9"9NUMBER OF CODELS IN THE BLOCK JUST LEFT"9"9 THE LITERAL IS THE PAINT'S PHYSICAL AREA4 #D ONLY WHEN THE POINTER IS COMPLETELY TRAPPED BY BLACK IN EVERY DIRECTION AND CHOOSER STATE THERE IS NO HALT INSTRUCTION4