diff -r 7415871b1ef5 -r c813506e0ee8 coursework/cw03.tex --- a/coursework/cw03.tex Fri Nov 22 20:27:30 2013 +0000 +++ b/coursework/cw03.tex Sat Nov 23 09:17:59 2013 +0000 @@ -64,8 +64,29 @@ \noindent This coursework is worth 4\% and is due on 13 December at 16:00. You are asked to -implement a compiler for the WHILE language. You are supposed to target the -assembler language provided by the Jasmin for running on the Java Virtual Machine. +implement a compiler for the WHILE language which targets the +assembler language provided by the Jasmin. This assembler +is available from + +\begin{center} +\url{http://jasmin.sourceforge.net} +\end{center} + +\noindent +There is a user guide for Jasmin + +\begin{center} +\url{http://jasmin.sourceforge.net/guide.html} +\end{center} + +\noindent +and also a description of some of the instructions that the JVM understands + +\begin{center} +\url{http://jasmin.sourceforge.net/instructions.html} +\end{center} + +\noindent \noindent @@ -78,7 +99,19 @@ \subsection*{Question 1 (marked with 1\%)} +You need to lex and parse WHILE programs and submit the assembler +instructions for the Fibonacci program and for the program you submitted +in Coursework 2 in Question 3. The latter should be so modified that +a user can input the upper bound on the console (in the original question +it was fixed to 100). +\subsection*{Question 2 (marked with 2\%)} + +Extend the syntax of you language so that it contains also \texttt{for}-loops, like + +\begin{center} +\texttt{for} \;\textit{Id} \texttt{:=} \textit{AExp}\; \texttt{upto} \;\textit{AExp}\; \texttt{do} \textit{Block} +\end{center} \end{document}