\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
verschillend als het gaat om variabelenopslag en instructies. \textit{Piet}
slaat zijn variabelen op in een stack waar \textit{While} dit niet doet. In een
toestand 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
gedraagt zich volgens het LIFO(Last in First Out) principe wat inhoudt dat er
slechts \'e\'en element per keer kan worden opgevraagd en dat dat alleen het
laatst toegevoegde 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 wordt 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 parameters; 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 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}
