From 8978bbc9285ae5e8def8349ee70d75027f8f2d59 Mon Sep 17 00:00:00 2001 From: Mart Lubbers Date: Tue, 20 May 2014 20:44:03 +0200 Subject: [PATCH] factorial klaar --- = | 97 +++++++++++++++++++++++++++++++++++++++++++++++ an_faculteit.tex | 11 +++++- img/img3.png | Bin 0 -> 1611 bytes img/poging1.png | Bin 1176 -> 0 bytes 4 files changed, 107 insertions(+), 1 deletion(-) create mode 100644 = create mode 100644 img/img3.png delete mode 100644 img/poging1.png diff --git a/= b/= new file mode 100644 index 0000000..13f92d6 --- /dev/null +++ b/= @@ -0,0 +1,97 @@ +\subsection{Faculteit} +Als we de analyse op een compleet programma toepassen komt er een \textit{Piet} +programma uit dat behoorlijk fors is maar netjes zijn werk doet. Dit programma +berekent de faculteit van $x$ en stopt dat uiteindelijk in $y$. +\begin{lstlisting}[title=Faculteit in \textit{While}] +x:=5; +y:=1; +while $\neg$(x=1) +do ( + y:=y*x; + x:=x-1 +) +\end{lstlisting} + +In \textit{Piet} ziet dit er als volgt uit... +\begin{lstlisting}[title=Faculteit in \textit{Piet'}] +push 5 // x:=5 +push 1 // y:=1 + +MARKERING A: + // Un(2) + // $\neg$(x=1) $\equiv$ \neg(x-1)>0) + + + // x-1 + // Un(2) +push 2 // +push 1 // +roll // +dup // +push 3 // +push 1 // +roll // +push 1 // +sub // +not // $\neg(x-1)$ + +push 1 // zet $0$ op de stack +push 1 +sub + +gre // $\neg(x-1)>0$ oftewel x=1 + +pointer // als x=0 dan draait de DP niet en gaat het programma naar pad B + // als x$\neq$ dan draait de DP en gaat het programma naar pad A + +PAD A: +skip // een oneindig aantal witte blokken, y is nu x! + // evt een outchar om $y$ naar standardout te printen + +PAD B: + // y:=y*x + // Bin(1, 2) +dup // Un(1) +push 3 // Un(2+1) +push 2 // +roll // +dup // +push 4 // +push 1 // +roll // +mul // x*y +push 2 // Ass(1) +push 1 +roll +pop + + // x:=x-1 +push 2 // Un(2) +push 1 +roll +dup +push 3 +push 1 +roll + + +push 1 // +sub // x-1 +push 3 // Ass(2) +push 2 +roll +pop +push 2 +push 1 +roll + // nu gaat het programma weer via een wit pad naar markering A +\end{lstlisting} + +Wat in piet er uit zit als in \ref{fig:img3} +\begin{figure}[H] + \caption{Factulteit vanuit \textit{While} naar \textit{Piet}} + \label{fig:img3} + \centering + \fbox{\includegraphics[natheight=320px, natwidth=256px, height=320px, + width=256px]{img3.png}} +\end{figure} diff --git a/an_faculteit.tex b/an_faculteit.tex index 9f11a53..695fb4d 100644 --- a/an_faculteit.tex +++ b/an_faculteit.tex @@ -14,7 +14,7 @@ do ( In \textit{Piet} ziet dit er als volgt uit... \begin{lstlisting}[title=Faculteit in \textit{Piet'}] -push 5 // x:=5 +push 10 // x:=5 push 1 // y:=1 MARKERING A: @@ -86,3 +86,12 @@ push 1 roll // nu gaat het programma weer via een wit pad naar markering A \end{lstlisting} + +Wat in piet er uit zit als in \ref{fig:img3} +\begin{figure}[H] + \caption{Factulteit vanuit \textit{While} naar \textit{Piet}} + \label{fig:img3} + \centering + \fbox{\includegraphics[natheight=320px, natwidth=256px, height=320px, + width=256px]{img3.png}} +\end{figure} diff --git a/img/img3.png b/img/img3.png new file mode 100644 index 0000000000000000000000000000000000000000..9554814b0aa094adcca0a779f81dd11eaf02a134 GIT binary patch literal 1611 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K59XQy4RIt_}kOWJylV=DA5Y%v_bTBZmF?qT; zhE&XXdpEFev73lPV8iRI_VwrcW`F+O&aVBJ{YT!U=I;mnFLM9>|1Ev} z=D=c3h88sR_OVq%{(X1ZbN1_)CEhjP+ZzA+^Zx$x^X8}DZh!q<=Gwvtc7{LcObm%= zsJ{L;`;Oh`9$fzZ^I_jdyZ^uUeEoabs`2F?H3kl04D|b-RYUvdJ@(p{KmRDd&bjB? z^|ha8Gbs3Apfgqsb+=09|9MyY?d1>u-`~#XGc_16VxZRy587+1<~DIM9AY6FyL40H?7@_ku5djIRonA;s?!SFIL1g4@d;j`;>^*PnhR8GYo4qwlux>ELsy~wbz~;I0zVAPb%b%Cm)mA;K|FBK@ zKo{0f{`UPg_mxTmeYPDqgDU6uhn=gdPhz#<9`}L8Z=Y8=H*Du+oQ5?V)9iss;meNy zM~?1I!kqxG3@=rBhZGdj#*z(A$I zH1Q>hQT+QXocedS@iOvB<4RPZ)Vr(K-ZJ-3eK#&6=5Oh zUO(SyUsLt(`M2C1`^>Ii$F3TfuNTj~oXrdjStD#NzVZD#GpH<;IX?e);)#v&N3jR+ zzI}WTWcutMeb0>C-S+ymsZ72s!vs}~?EUR)DZ~A+{rrDk+tvQP^8c?dh6-Sj@QwdS X>Qk=7z3S6}wF85vtDnm{r-UW|Q9&w& literal 0 HcmV?d00001 diff --git a/img/poging1.png b/img/poging1.png deleted file mode 100644 index 6059c1d596485ea709668d47d906b9bf9a8c5dd0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1176 zcmeAS@N?(olHy`uVBq!ia0y~yU~~Xs4rZXpFTcZuUR>1r3Cd;4Ys7Z^ajX|F@__ zpHUeJE;disPe2tymWHt7Ph|gQia6kb1YcZb|Ff^)+b%UEvy>SZhsziI+F1Cl3QhPl z%baKYb@TW3c_JC%ao|M}<8%4Fb1;OjvelFyzWI7KOAj)P%RMmlXZwZp^~uN{6EfHp zb0E52pwhm}AZe%@Xi4i~wvZ@;m z``Z^k`+Mt#o&Ez}CN~7+7ymH-;ftNCdxZ4BY|F)`%zp0o zJ?`JKV9ZCcU`IoI`{L(zXL`4wy6HGp!`c4qEx7WhU;6fQ);*3$;rQYchN{$Gs8*76_zwyVJ!Io;U$9N5ekvwq(RQB*Iqb5>kweErt(b-QJO zE|N(q4}@#uEvjUv+oB0`|J(@l@@csp^N{0;rAE;n?6t;hqyPdY5dXs$i{+mk*oxxe z^IuXQ-}`K*n-j18pb1Il;$hY~Ve(Jz*