29 lines
1.6 KiB
TeX
Executable File
29 lines
1.6 KiB
TeX
Executable File
\section{Literature Review}
|
|
Since the start of our project, we have found multiple new information sources;
|
|
the following are the most important ones.
|
|
\begin{itemize}
|
|
\item Nodeunit documentation \\
|
|
https://github.com/caolan/nodeunit \\
|
|
% It might be better to put the URLs in the "References" section and add a [\ref{}] here
|
|
We are using nodeunit to test our virtual machine.
|
|
Since the c0 bytecode has many different opcodes that it uses, it is very easy
|
|
for mistakes in the virtual machine to go unnoticed.
|
|
To prevent this, we are using the nodeunit library to write unit tests for our
|
|
code.
|
|
This has already helped us to find and solve multiple bugs in the VM, and having
|
|
these unit tests will make sure that we can solve any bugs that occur as the
|
|
result of future changes in the code.
|
|
\item C0vm Assignment Handout \\
|
|
https://www.cs.cmu.edu/~rjsimmon/15122-f14/prog/c0vm-writeup.pdf \\
|
|
This document details how each opcode in the c0 bytecode language works,
|
|
as well as other important implementation details for the c0 virtual machine.
|
|
It has been an important reference while developing a JavaScript version
|
|
of the c0 virtual machine.
|
|
\end{itemize}
|
|
So far, the most important thing we have learned is that good unit tests are
|
|
vital for developing this sort of project. Without unit tests that verify
|
|
each opcode used by the virtual machine, many bugs would have gone unnoticed,
|
|
causing problems later down the line. If we only found these bugs by using
|
|
the frontend, they would have been much harder to debug, as there would have
|
|
been much more code to work through.
|