27 lines
1.6 KiB
TeX
Executable File
27 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.
|