X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=results.mtask.tex;h=83cc7094edb2d7321ce1c871bb8ea864129ff334;hb=c91e99cb9e71060f461c03d1454ad5f31e9495a1;hp=edb3d66b898b4ff95a9d44a0c53625a86e48e45b;hpb=76254fbf2941fa0b5a02ab3a98104cad56959218;p=msc-thesis1617.git diff --git a/results.mtask.tex b/results.mtask.tex index edb3d66..83cc709 100644 --- a/results.mtask.tex +++ b/results.mtask.tex @@ -73,7 +73,7 @@ Therefore the \gls{RWST} is wrapped with a constructor and two phantom type variables are added. This means that the programmer has to unbox the \CI{ByteCode} object to be able to use return values for the monad. Tailor made access functions are used to achieve this with ease. The fresh variable stream -in a compiler using an \gls{RWST} is often put into the \emph{Reader} part of +in a compiler using a \gls{RWST} is often put into the \emph{Reader} part of the monad. However, not all code is compiled immediately and later on the fresh variable stream cannot contain variables that were used before. Therefore this information is put in the state which is kept between compilations. @@ -253,8 +253,8 @@ instance sdspub ByteCode where addSDS sds v s = {s & sdss=[{sds & sdsval=BCValue v}:s.sdss]} \end{lstlisting} -All assignable types compile to an \gls{RWST} that writes one instruction. For -example, using an \gls{SDS} always results in an expression of the form +All assignable types compile to a \gls{RWST} that writes one instruction. For +example, using a \gls{SDS} always results in an expression of the form \CI{sds \x=4 In ...}. The actual \CI{x} is the \gls{RWST} that always writes one \CI{BCSdsFetch} instruction with the correct \gls{SDS} embedded. When the call of the \CI{x} is not a read but an assignment, the instruction will be