ja
[sec1415.git] / versie-1 / introduction.tex
diff --git a/versie-1/introduction.tex b/versie-1/introduction.tex
new file mode 100644 (file)
index 0000000..e5c683d
--- /dev/null
@@ -0,0 +1,63 @@
+\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}