\subsection{\textit{Piet}}
\textit{Piet} is een esoterische, stack geori\"enteerde en ge\"interpreteerde
programmeertaal die is ge\"inspireerd door de Nederlandse kunstenaar Piet
Mondriaan.  Programma's geschreven vooor \textit{piet} kunnen eruit zien als
abstracte kunst en worden aangeleverd als een afbeelding.  Een programma dat
zijn doel nastreeft is bijvoorbeeld het volgende programma dat het woord
``\textit{Tetris}'' print en iedere groep blokken een blok is uit het originele
\textit{Tetris} spel.
\begin{figure}[h]
	\includegraphics[natheight=200px, natwidth=160px, height=50px, width=40px]{img1.png}
\end{figure}

\subsection{Beschrijving en vergelijking met \textit{While}}
\textit{Piet} en \textit{While} zijn beide imperatieve talen maar zijn toch erg
verschilled als het gaat om variabelenopslag en instructies. \textit{Piet}
slaat zijn variabelen op in een stack waar \textit{While} dit niet doet. In een
staat in \textit{While} kan iedere gedeclareerde variabele opgevraagd worden,
omdat \textit{Piet} de variabelen in een stack opslaat kan er alleen maar de
bovenste waarde opgevraagd worden.\\
In \textit{Piet} is een stack een geordende rij van gehele getallen. De stack
gedraagd zich volgens het LIFO(Last in First Out) principe werkt wat inhoudt
dat er slechts \'e\'en element per keer kan worden opgevraagd en dat dat alleen
het eerste element kan zijn.\\
Instructies worden gegeven door het binnengaan van een nieuwe codel
\footnote{Een codel is een blok $n\times n$ pixels waarbij $n\in\mathbb{N}$,
een argument aan de compiler bepaalt de waarde van $n$. De standaard waarde is
$1$} als de kleur van de nieuwe codel wit of hetzelfde is als de codel die
verlaten word zal er niks gebeuren, is de codel zwart dan wordt er een nieuwe
richting gekozen door de interpreter. Alle andere kleuren beschrijven een
overgang die te beschrijven is in twee parameter; tint en intensiteit. Beide
parameters zijn cyclisch, wat betekent dat de opvolger van de grootste
waarde de kleinste waarde is. Iedere mogelijke overgang beschrijft een
instructie voor de interpreter. Deze overgangen zijn beschreven in tabel
\ref{tab:in1}.

\begin{table}[h!]
	\caption{Beide overgangcykels}
	\label{tab:in1}
	\centering
		\begin{itemize}
			\item{Tint:} rood$\rightarrow$ geel$\rightarrow$ cyaan$\rightarrow$ blauw$\rightarrow$ magenta
			\item{Intensiteit:} licht$\rightarrow$ normaal$\rightarrow$ donker
		\end{itemize}
\end{table}

De instructies die de overgangen uitdrukken staan beschreven in de onderstaande
tabel \ref{tab:in2}.
\begin{table}[h!]
	\caption{Commando's}
	\label{tab:in2}
	\centering
		\begin{tabular}{|l|l|l|l|}
			\hline
			Tint\textbackslash Intensiteit	& 0 donkerder & 1 donkerder & 2 donkerder\\
			\hline
			0 stappen	& - 		& push			& pop\\\hline
			1 stap		& add		& subtract		& multiply\\\hline
			2 stappen	& divide	& mod			& not\\\hline
			3 stappen	& greater	& pointer		& switch\\\hline
			4 stappen	& duplicate	& roll			& in(number)\\\hline
			5 stappen	& in(char)	& out(number)	& out(char)\\\hline
		\end{tabular}
\end{table}
