Progress Report - in progress

This commit is contained in:
2015-04-14 16:51:47 -04:00
parent d203261c64
commit d18ccb49da
19 changed files with 520 additions and 14 deletions

2
app.js
View File

@@ -11,7 +11,7 @@ app.configure(function() {
app.set('view engine', 'jade');
app.use(express.logger('dev'));
app.use(express.json());
app.use(express.static(path.join(__dirname, 'public')));
//debug error handler

View File

@@ -0,0 +1,10 @@
# Fdb version 3
["latex"] 1429036983 "lit_review.tex" "lit_review.dvi" "lit_review" 1429036987
"/usr/local/texlive/2014/texmf-dist/web2c/texmf.cnf" 1398200874 31722 4f52421e59a4b9e910cf18e64c1f2b4a ""
"/usr/local/texlive/2014/texmf-var/web2c/pdftex/latex.fmt" 1401025988 3831950 412798929e0196806f9f91e131a01806 ""
"/usr/local/texlive/2014/texmf.cnf" 1401025936 577 a59edbde8d3a8c549d0eeaab1739e2ff ""
"lit_review.aux" 1429036983 8 a94a2480d3289e625eea47cd1b285758 ""
"lit_review.tex" 1429035932 1602 8c64955909e149f1edf1ceb643d93c17 ""
(generated)
"lit_review.dvi"
"lit_review.log"

View File

@@ -0,0 +1,6 @@
PWD /Users/shyam/Dropbox/cdb/progress_report
INPUT /usr/local/texlive/2014/texmf.cnf
INPUT /usr/local/texlive/2014/texmf-dist/web2c/texmf.cnf
INPUT /usr/local/texlive/2014/texmf-var/web2c/pdftex/latex.fmt
INPUT lit_review.tex
OUTPUT lit_review.log

View File

@@ -1,5 +1,5 @@
\section{Literature Review}
Since the start of our project, we have found multiple new information sources;
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 \\
@@ -7,7 +7,7 @@ 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.
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
@@ -21,8 +21,8 @@ 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
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.
been much more code to work through.

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View File

@@ -0,0 +1,10 @@
# Fdb version 3
["latex"] 1429036987 "overview.tex" "overview.dvi" "overview" 1429036988
"/usr/local/texlive/2014/texmf-dist/web2c/texmf.cnf" 1398200874 31722 4f52421e59a4b9e910cf18e64c1f2b4a ""
"/usr/local/texlive/2014/texmf-var/web2c/pdftex/latex.fmt" 1401025988 3831950 412798929e0196806f9f91e131a01806 ""
"/usr/local/texlive/2014/texmf.cnf" 1401025936 577 a59edbde8d3a8c549d0eeaab1739e2ff ""
"overview.aux" 1429036987 8 a94a2480d3289e625eea47cd1b285758 ""
"overview.tex" 1429036311 1357 cfaf2a8de5eaf66d6fce726acdb307d4 ""
(generated)
"overview.log"
"overview.dvi"

View File

@@ -0,0 +1,6 @@
PWD /Users/shyam/Dropbox/cdb/progress_report
INPUT /usr/local/texlive/2014/texmf.cnf
INPUT /usr/local/texlive/2014/texmf-dist/web2c/texmf.cnf
INPUT /usr/local/texlive/2014/texmf-var/web2c/pdftex/latex.fmt
INPUT overview.tex
OUTPUT overview.log

View File

@@ -0,0 +1,22 @@
\section{Overview}
\subsection{Purpose of the Report}
This report serves as an update to the reader on the progress the c0db team has
made on the C0 Debugger during the first month of work. The report will detail
what has been accomplished so far, what is in progress, what is planned for the
future, and any changes that will be made to the original plan of action. In
addition, the report will detail new literature that has been gathered and
used.
\subsection{Purpose of the Project}
The purpose of this project is to build a web application that can debug C0
code and can aid in a student's understanding of fundamental computational
models. This project will benefit students in 15-122 Principals of Imperative
Computation at Carnegie Mellon University by helping them create correct
programs. The C0 Debugger will enable students to understand how their programs
execute and find where problems originate more easily than with existing tools.
In addition to debugging, students will have better knowledge for how the
underlying computation model works when evaluating their code.
\par
The C0 Debugger will also enable students to test simple programs with little
setup, using only a web browser. They will no longer have to set up and become
familiar with a Unix environment before they can program, making C0 accessible
to more people, more quickly.

Binary file not shown.

View File

@@ -0,0 +1,68 @@
# Fdb version 3
["latex"] 1429044499 "progress_report.tex" "progress_report.dvi" "progress_report" 1429044577
"/usr/local/texlive/2014/texmf-dist/fonts/map/fontname/texfonts.map" 1272929888 3287 e6b82fe08f5336d4d5ebc73fb1152e87 ""
"/usr/local/texlive/2014/texmf-dist/fonts/tfm/public/cm/cmr10.tfm" 1136768653 1296 45809c5a464d5f32c8f98ba97c1bb47f ""
"/usr/local/texlive/2014/texmf-dist/fonts/tfm/public/txfonts/txb.tfm" 1136768653 2452 76194099b4f1c022cb59f4564251c4fe ""
"/usr/local/texlive/2014/texmf-dist/fonts/tfm/public/txfonts/txr.tfm" 1136768653 2408 aec793a3c45e495f7ad15b227c91f508 ""
"/usr/local/texlive/2014/texmf-dist/fonts/tfm/public/txfonts/txsy.tfm" 1136768653 1268 1d124f224979493f8fd017a7597ea1cd ""
"/usr/local/texlive/2014/texmf-dist/tex/generic/ifxetex/ifxetex.sty" 1284331290 1458 43ab4710dc82f3edeabecd0d099626b2 ""
"/usr/local/texlive/2014/texmf-dist/tex/generic/oberdiek/atbegshi.sty" 1335995445 24460 92f559a71aac869021852c227c704b38 ""
"/usr/local/texlive/2014/texmf-dist/tex/generic/oberdiek/gettitlestring.sty" 1303254447 8237 52810bdb4db2270e717422560a104aea ""
"/usr/local/texlive/2014/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty" 1338332114 189108 8b3553a56c83ff61acecb36b75d817e2 ""
"/usr/local/texlive/2014/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty" 1338332114 70752 45fa392800e07da61fa13446ad46b34d ""
"/usr/local/texlive/2014/texmf-dist/tex/generic/oberdiek/ifpdf.sty" 1303254447 7140 ece2cc23d9f20e1f53975ac167f42d3e ""
"/usr/local/texlive/2014/texmf-dist/tex/generic/oberdiek/ifvtex.sty" 1335995445 6797 68c89f65e01894df882dd523d3fc0a8f ""
"/usr/local/texlive/2014/texmf-dist/tex/generic/oberdiek/infwarerr.sty" 1335995445 8253 3bdedc8409aa5d290a2339be6f09af03 ""
"/usr/local/texlive/2014/texmf-dist/tex/generic/oberdiek/ltxcmds.sty" 1335995445 18425 775b341047ce304520cc7c11ca41392e ""
"/usr/local/texlive/2014/texmf-dist/tex/latex/base/article.cls" 1399675188 20496 66dd832c447553f6776fbeac03bb0580 ""
"/usr/local/texlive/2014/texmf-dist/tex/latex/base/ifthen.sty" 1399675188 4947 22c4b902063e8ce2efcc2a8495ecb800 ""
"/usr/local/texlive/2014/texmf-dist/tex/latex/base/size11.clo" 1399675188 8983 e08a9a7009d9a8f8c6507333f96e336e ""
"/usr/local/texlive/2014/texmf-dist/tex/latex/eso-pic/eso-pic.sty" 1381444076 11590 2a66b78f3da61ad137452c2777f21b6b ""
"/usr/local/texlive/2014/texmf-dist/tex/latex/geometry/geometry.sty" 1284422013 40502 e003406220954b0716679d7928aedd8a ""
"/usr/local/texlive/2014/texmf-dist/tex/latex/graphics/dvips.def" 1399675188 5104 e68b64366d1946a5893a7f717264ec59 ""
"/usr/local/texlive/2014/texmf-dist/tex/latex/graphics/graphics.sty" 1254151804 14183 42a8fc761b806986eef292369afc2988 ""
"/usr/local/texlive/2014/texmf-dist/tex/latex/graphics/graphicx.sty" 1399675188 7911 bf0a64f89bfb668c239ddf6324bf4afb ""
"/usr/local/texlive/2014/texmf-dist/tex/latex/graphics/keyval.sty" 1399675188 2317 0ace13e225e9d95dd9defe947adc9fbb ""
"/usr/local/texlive/2014/texmf-dist/tex/latex/graphics/trig.sty" 1156702488 3153 c50e6bd54d2dd3933fc52bcf369bec4a ""
"/usr/local/texlive/2014/texmf-dist/tex/latex/hyperref/hdvips.def" 1352416072 3471 43fa5241d35e8bdbf02746c6d8e25fc2 ""
"/usr/local/texlive/2014/texmf-dist/tex/latex/hyperref/hyperref.sty" 1352416072 231792 5fc9dc7dd667e773a766ecc63bba7f4b ""
"/usr/local/texlive/2014/texmf-dist/tex/latex/hyperref/nameref.sty" 1351899753 12847 25b617d63258c4f72870c883493a3cf8 ""
"/usr/local/texlive/2014/texmf-dist/tex/latex/hyperref/pd1enc.def" 1352416072 14005 155ac8fad2e5dd7c2cdd130fabd96633 ""
"/usr/local/texlive/2014/texmf-dist/tex/latex/hyperref/pdfmark.def" 1352416072 49315 059e7f302e066f22f383833cd87167cb ""
"/usr/local/texlive/2014/texmf-dist/tex/latex/latexconfig/color.cfg" 1254097189 802 7b8c8d72c24d795ed7720e4dfd29bff3 ""
"/usr/local/texlive/2014/texmf-dist/tex/latex/latexconfig/graphics.cfg" 1278958963 3563 d35e897cae3b8c6848f6677b73370b54 ""
"/usr/local/texlive/2014/texmf-dist/tex/latex/latexconfig/hyperref.cfg" 1254097189 235 6031e5765137be07eed51a510b2b8fb7 ""
"/usr/local/texlive/2014/texmf-dist/tex/latex/oberdiek/auxhook.sty" 1303254447 3834 707ef09f31d7d2ea47ba89974755dfe0 ""
"/usr/local/texlive/2014/texmf-dist/tex/latex/oberdiek/kvoptions.sty" 1335995445 22417 c74ff4af6a1aa2b65d1924020edbbe11 ""
"/usr/local/texlive/2014/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty" 1303254447 9581 1158efc648bc09d5064db5703c882159 ""
"/usr/local/texlive/2014/texmf-dist/tex/latex/pdfpages/pdfpages.sty" 1377467854 51227 e7dc1f34ba805af6251ecb7986bb034f ""
"/usr/local/texlive/2014/texmf-dist/tex/latex/pdfpages/ppnull.def" 1377467854 2528 737efa41d2b4535305b16bdebc3d7d8e ""
"/usr/local/texlive/2014/texmf-dist/tex/latex/pdfpages/pppdftex.def" 1377467854 5975 e550dcf6f005a7223bb41a05edf0e99d ""
"/usr/local/texlive/2014/texmf-dist/tex/latex/setspace/setspace.sty" 1324344192 22913 a27d7908fc6f0385466454a966a316eb ""
"/usr/local/texlive/2014/texmf-dist/tex/latex/tocloft/tocloft.sty" 1367531278 34706 345df874e59e023274392bd0cf090d66 ""
"/usr/local/texlive/2014/texmf-dist/tex/latex/tools/array.sty" 1399675188 13073 a6e28ede26c83d406e124b12f368174f ""
"/usr/local/texlive/2014/texmf-dist/tex/latex/tools/calc.sty" 1399675188 10002 f32f4490d0c87a7854adf544bd459155 ""
"/usr/local/texlive/2014/texmf-dist/tex/latex/tools/tabularx.sty" 1400196978 6922 d73f54a1f22489be96930629013f1304 ""
"/usr/local/texlive/2014/texmf-dist/tex/latex/txfonts/omltxmi.fd" 1137111002 492 e7f8afe4428797548d4301de03a1b15f ""
"/usr/local/texlive/2014/texmf-dist/tex/latex/txfonts/omstxr.fd" 1137111002 857 81ff640acbcd7da3dc30601847d7e35a ""
"/usr/local/texlive/2014/texmf-dist/tex/latex/txfonts/omstxsy.fd" 1137111002 329 6ac7e19535b9f1d64e4d8e3f77dc30a3 ""
"/usr/local/texlive/2014/texmf-dist/tex/latex/txfonts/omxtxex.fd" 1137111002 312 11fe1916b0a13a81a05234a6fc7f8738 ""
"/usr/local/texlive/2014/texmf-dist/tex/latex/txfonts/ot1txr.fd" 1137111002 1271 4e3afbd8e832f2f9c7f064894e6e68e4 ""
"/usr/local/texlive/2014/texmf-dist/tex/latex/txfonts/txfonts.sty" 1206746551 50381 d367461010070c7a491b1f6979ab2062 ""
"/usr/local/texlive/2014/texmf-dist/tex/latex/txfonts/utxexa.fd" 1137111002 310 1b00b0b05685b816e4c6caccce437e0d ""
"/usr/local/texlive/2014/texmf-dist/tex/latex/url/url.sty" 1388531844 12796 8edb7d69a20b857904dd0ea757c14ec9 ""
"/usr/local/texlive/2014/texmf-dist/tex/latex/xcolor/xcolor.sty" 1169481954 55224 a43bab84e0ac5e6efcaf9a98bde73a94 ""
"/usr/local/texlive/2014/texmf-dist/web2c/texmf.cnf" 1398200874 31722 4f52421e59a4b9e910cf18e64c1f2b4a ""
"/usr/local/texlive/2014/texmf-var/web2c/pdftex/latex.fmt" 1401025988 3831950 412798929e0196806f9f91e131a01806 ""
"/usr/local/texlive/2014/texmf.cnf" 1401025936 577 a59edbde8d3a8c549d0eeaab1739e2ff ""
"old-gantt.jpg" 1429044440 24493 24188bdf4f5434787c664b216e3898f2 ""
"progress_report.aux" 1429044500 1054 1fb7c5c88c3fe5c21808963cf33f2978 ""
"progress_report.out" 1429044500 236 3411de8a1192db7b41eeb11bf4c93fef ""
"progress_report.tex" 1429044508 7262 ec5dd8aff911c63e55f0b215ebc5fca1 ""
"progress_report.toc" 1429044500 0 d41d8cd98f00b204e9800998ecf8427e ""
(generated)
"progress_report.dvi"
"progress_report.out"
"progress_report.toc"
"progress_report.aux"
"progress_report.log"

View File

@@ -0,0 +1,128 @@
PWD /Users/shyam/Dropbox/cdb/progress_report
INPUT /usr/local/texlive/2014/texmf.cnf
INPUT /usr/local/texlive/2014/texmf-dist/web2c/texmf.cnf
INPUT /usr/local/texlive/2014/texmf-var/web2c/pdftex/latex.fmt
INPUT progress_report.tex
OUTPUT progress_report.log
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/base/article.cls
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/base/article.cls
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/base/size11.clo
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/base/size11.clo
INPUT /usr/local/texlive/2014/texmf-dist/fonts/map/fontname/texfonts.map
INPUT /usr/local/texlive/2014/texmf-dist/fonts/map/fontname/texfonts.map
INPUT /usr/local/texlive/2014/texmf-dist/fonts/tfm/public/cm/cmr10.tfm
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/setspace/setspace.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/setspace/setspace.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/geometry/geometry.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/geometry/geometry.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/graphics/keyval.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/graphics/keyval.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/generic/oberdiek/ifpdf.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/generic/oberdiek/ifpdf.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/generic/oberdiek/ifvtex.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/generic/oberdiek/ifvtex.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/generic/ifxetex/ifxetex.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/generic/ifxetex/ifxetex.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/tools/tabularx.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/tools/tabularx.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/tools/array.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/tools/array.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/tocloft/tocloft.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/tocloft/tocloft.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/graphics/graphicx.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/graphics/graphicx.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/graphics/graphics.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/graphics/graphics.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/graphics/trig.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/graphics/trig.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/latexconfig/graphics.cfg
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/latexconfig/graphics.cfg
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/graphics/dvips.def
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/graphics/dvips.def
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/pdfpages/pdfpages.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/pdfpages/pdfpages.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/base/ifthen.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/base/ifthen.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/tools/calc.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/tools/calc.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/eso-pic/eso-pic.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/eso-pic/eso-pic.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/generic/oberdiek/atbegshi.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/generic/oberdiek/atbegshi.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/generic/oberdiek/infwarerr.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/generic/oberdiek/infwarerr.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/generic/oberdiek/ltxcmds.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/generic/oberdiek/ltxcmds.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/xcolor/xcolor.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/xcolor/xcolor.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/xcolor/xcolor.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/latexconfig/color.cfg
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/latexconfig/color.cfg
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/pdfpages/pppdftex.def
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/pdfpages/pppdftex.def
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/pdfpages/ppnull.def
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/pdfpages/ppnull.def
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/hyperref/hyperref.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/hyperref/hyperref.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/oberdiek/auxhook.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/oberdiek/auxhook.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/oberdiek/kvoptions.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/oberdiek/kvoptions.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/hyperref/pd1enc.def
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/hyperref/pd1enc.def
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/latexconfig/hyperref.cfg
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/latexconfig/hyperref.cfg
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/url/url.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/url/url.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/hyperref/hdvips.def
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/hyperref/hdvips.def
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/hyperref/pdfmark.def
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/hyperref/pdfmark.def
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/txfonts/txfonts.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/txfonts/txfonts.sty
INPUT progress_report.aux
INPUT progress_report.aux
OUTPUT progress_report.aux
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/txfonts/omltxmi.fd
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/txfonts/omltxmi.fd
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/txfonts/omstxsy.fd
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/txfonts/omstxsy.fd
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/txfonts/omxtxex.fd
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/txfonts/omxtxex.fd
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/txfonts/utxexa.fd
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/txfonts/utxexa.fd
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/txfonts/ot1txr.fd
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/txfonts/ot1txr.fd
INPUT /usr/local/texlive/2014/texmf-dist/fonts/tfm/public/txfonts/txr.tfm
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/hyperref/nameref.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/hyperref/nameref.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/generic/oberdiek/gettitlestring.sty
INPUT /usr/local/texlive/2014/texmf-dist/tex/generic/oberdiek/gettitlestring.sty
INPUT progress_report.out
INPUT progress_report.out
INPUT progress_report.out
INPUT progress_report.out
INPUT ./progress_report.out
INPUT ./progress_report.out
OUTPUT progress_report.out
INPUT /usr/local/texlive/2014/texmf-dist/fonts/tfm/public/txfonts/txb.tfm
OUTPUT progress_report.dvi
INPUT /usr/local/texlive/2014/texmf-dist/fonts/tfm/public/txfonts/txr.tfm
INPUT /usr/local/texlive/2014/texmf-dist/fonts/tfm/public/txfonts/txb.tfm
INPUT progress_report.toc
INPUT progress_report.toc
OUTPUT progress_report.toc
INPUT /usr/local/texlive/2014/texmf-dist/fonts/tfm/public/txfonts/txr.tfm
INPUT /usr/local/texlive/2014/texmf-dist/fonts/tfm/public/txfonts/txb.tfm
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/txfonts/omstxr.fd
INPUT /usr/local/texlive/2014/texmf-dist/tex/latex/txfonts/omstxr.fd
INPUT /usr/local/texlive/2014/texmf-dist/fonts/tfm/public/txfonts/txsy.tfm
INPUT old-gantt.jpg
INPUT old-gantt.jpg

View File

@@ -0,0 +1,4 @@
\BOOKMARK [1][-]{section.1}{Overview}{}% 1
\BOOKMARK [2][-]{subsection.1.1}{Purpose of the Report}{section.1}% 2
\BOOKMARK [2][-]{subsection.1.2}{Purpose of the Project}{section.1}% 3
\BOOKMARK [1][-]{section.2}{Literature Review}{}% 4

Binary file not shown.

View File

@@ -0,0 +1,177 @@
\documentclass[11pt]{article}
\usepackage{setspace}
\usepackage[margin=1in]{geometry}
% Make table of contents look better
\usepackage{tabularx}
\usepackage{tocloft}
\renewcommand{\cftsecleader}{\cftdotfill{\cftdotsep}}
\usepackage{graphicx}
\usepackage{pdfpages}
\usepackage{hyperref}
% \usepackage[ngerman]{babel}
% \usepackage[T1]{fontenc}
% \usepackage[ansinew]{inputenc}
% \usepackage{lmodern}
% Times New Roman font
\usepackage{txfonts}
\begin{document}
\setlength{\parindent}{2em}
\begin{titlepage}
\clearpage
\thispagestyle{empty}
\begin{center}
{\bf Technical Communication for Computer Scientists: 15-221}\\
{\bf Spring 2015}\\
\vspace{25 mm}
{\bf Progress Report:}\\
{\bf C0 Debugger}\\
\vspace{25 mm}
Aaron Gutierrez\\
Mitchell Plamann\\
Shyam Raghavan\\
Suhaas Reddy\\
\vspace{25 mm}
{\bf Submitted to}\\
Thomas M. Keating\\
Assistant Teaching Professor\\
Computer Science Department\\
School of Computer Science\\
\vspace{25 mm}
{\bf Prepared and Submitted by}\\
Shyam Raghavan - April 14, 2015
\end{center}
\end{titlepage}
\pagenumbering{roman}
\tableofcontents
\newpage
\pagenumbering{arabic}
\section{Overview}
\subsection{Purpose of the Report}
This report serves as an update to the reader on the progress the c0db team has
made on the C0 Debugger during the first month of work. The report will detail
what has been accomplished so far, what is in progress, what is planned for the
future, and any changes that will be made to the original plan of action. In
addition, the report will detail new literature that has been gathered and
used.
\subsection{Purpose of the Project}
The purpose of this project is to build a web application that can debug C0
code and can aid in a student's understanding of fundamental computational
models. This project will benefit students in 15-122 Principals of Imperative
Computation at Carnegie Mellon University by helping them create correct
programs. The C0 Debugger will enable students to understand how their programs
execute and find where problems originate more easily than with existing tools.
In addition to debugging, students will have better knowledge for how the
underlying computation model works when evaluating their code.
\par
The C0 Debugger will also enable students to test simple programs with little
setup, using only a web browser. They will no longer have to set up and become
familiar with a Unix environment before they can program, making C0 accessible
to more people, more quickly.
\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
\par
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
\par
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.
\item Common Gateway Interface Support Documentation \\
https://docs.python.org/2/library/cgi.html
\par
This document explains the support module defined by Python 2.7.10 for
common gateway interfaces. A common gateway interface script is usually
invoked by a server to process user input submitted through an HTML
element. This piece of documentation is an important reference for
developing the flow of information from c0 code to c0 bytecode to a
working 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.
\section{Progress}
\section{Recommendations}
\begin{figure}[h]
\centering
\includegraphics[width=\linewidth]{old-gantt.jpg}
\caption{Old Project Gantt Chart}
\label{fig:old-gantt}
\end{figure}
\begin{figure}[h]
\centering
\includegraphics[width=\linewidth]{new-gantt.jpg}
\caption{New Project Gantt Chart}
\label{fig:new-gantt}
\end{figure}
There are three major changes to the project plan: the frontend and backend
deadlines have moved back several days, the user testing and revisions period
have shifted back accordingly and have shortened, the frontend goal categories
have been redefined. These changes can be identified in the above Gantt charts
by in shifts in the bars of the Gantt chart. The development bars have
increased in relative size while the testing and revising bars have shrunk.
\par
The frontend and backend periods needed to shift backwards simply due to the
groups initial underestimation of the amount of time required to create a
reasonable product. The team believes additional development time on the
backend and frontend until the 20th of April will enable the creation of a high
quality product with a robust user interface and powerful c0 virtual machine.
Without this pushback the team currently has a working prototype with a basic
user interface and native function calls implemented, but the project has yet
to include several important features considered necessary for useful
application by students.
\par
The user testing and adjustments periods have shrunk due to the increased
development time. The team decided to avoid user testing and adjustments during
the main development phase, but due to the time pressure this caused the
testing and adjustment phases to shrink by several days each and overlap
significantly. The team hopes to consistently implement changes as students
provide feedback so that the overlap still provides time to implement
suggestions.
\par
The redefined goals within the frontend category reflect altered priorities of
the project as a whole. Rather than having the project work to explain topics
to the user, the project will be designed to simply run user code and step
through user code with the assumption that the user already understands how to
use the program. The instructors of 15-122 have already been informed of c0db,
so hopefully the TAs of the course could provide their students with brief
tutorials for c0db and its uses. This shift away from explanation allows the
team to focus more on providing user interface features which will more
directly aid in student code development. These features include code stepping
and highlighting as well as annotated bytecode as listed in the Gantt chart
above.
\end{document}

View File

@@ -0,0 +1,26 @@
" ATP project vim script: Tue Apr 14, 2015 at 02:37 PM -0400.
let b:atp_MainFile = 'progress_report.tex'
let g:atp_mapNn = 0
let b:atp_autex = 1
let b:atp_TexCompiler = 'pdftex'
let b:atp_TexOptions = '-synctex=1'
let b:atp_TexFlavor = 'plaintex'
let b:atp_auruns = '1'
let b:atp_ReloadOnError = '1'
let b:atp_OutDir = '/Users/shyam/Dropbox/cdb/progress_report'
let b:atp_OpenViewer = '1'
let b:atp_XpdfServer = 'progress_report'
let b:atp_Viewer = 'okular'
let b:TreeOfFiles = {}
let b:ListOfFiles = []
let b:TypeDict = {}
let b:LevelDict = {}
let b:atp_BibCompiler = 'bibtex'
let b:atp_StarEnvDefault = ''
let b:atp_StarMathEnvDefault = ''
let b:atp_updatetime_insert = 4000
let b:atp_updatetime_normal = 2000
let b:atp_LocalCommands = []
let b:atp_LocalEnvironments = []
let b:atp_LocalColors = []

View File

@@ -0,0 +1,24 @@
\relax
\providecommand\hyper@newdestlabel[2]{}
\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument}
\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined
\global\let\oldcontentsline\contentsline
\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
\global\let\oldnewlabel\newlabel
\gdef\newlabel#1#2{\newlabelxx{#1}#2}
\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
\AtEndDocument{\ifx\hyper@anchor\@undefined
\let\contentsline\oldcontentsline
\let\newlabel\oldnewlabel
\fi}
\fi}
\global\let\hyper@last\relax
\gdef\HyperFirstAtBeginDocument#1{#1}
\providecommand*\HyPL@Entry[1]{}
\HyPL@Entry{0<</S/D>>}
\HyPL@Entry{1<</S/r>>}
\HyPL@Entry{2<</S/D>>}
\@writefile{toc}{\contentsline {section}{\numberline {1}Overview}{1}{section.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.1}Purpose of the Report}{1}{subsection.1.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.2}Purpose of the Project}{1}{subsection.1.2}}
\@writefile{toc}{\contentsline {section}{\numberline {2}Literature Review}{1}{section.2}}

View File

@@ -0,0 +1,26 @@
" ATP project vim script: Tue Apr 14, 2015 at 02:43 PM -0400.
let b:atp_MainFile = 'proposal.tex'
let g:atp_mapNn = 0
let b:atp_autex = 1
let b:atp_TexCompiler = 'pdflatex'
let b:atp_TexOptions = '-synctex=1'
let b:atp_TexFlavor = 'tex'
let b:atp_auruns = '1'
let b:atp_ReloadOnError = '1'
let b:atp_OutDir = '/Users/shyam/Dropbox/cdb/proposal'
let b:atp_OpenViewer = '1'
let b:atp_XpdfServer = 'proposal'
let b:atp_Viewer = 'okular'
let b:TreeOfFiles = {}
let b:ListOfFiles = []
let b:TypeDict = {}
let b:LevelDict = {}
let b:atp_BibCompiler = 'bibtex'
let b:atp_StarEnvDefault = ''
let b:atp_StarMathEnvDefault = ''
let b:atp_updatetime_insert = 4000
let b:atp_updatetime_normal = 2000
let b:atp_LocalCommands = []
let b:atp_LocalEnvironments = []
let b:atp_LocalColors = []

View File

@@ -28,7 +28,6 @@ function i32_to_array(i32) {
((i32 >> 8) & 0xFF),
((i32 >> 16) & 0xFF),
((i32 >> 24) & 0xFF)];
}
function array_to_i32(array) {
@@ -63,13 +62,13 @@ var ProgramState = function(parsed_file, callback_dict) {
try {
this.natives[i] = callback_dict[i];
} catch (key_not_found) {
this.natives[i] = function (arg) {
this.natives[i] = function (arg) {
console.log("Native function " + name + " called, ran method stub.");
return 0;
};
}
}
// Memory is just a big array of bytes, right?
// "Allocation" is appending onto this array
// A pointer to memory is an index into this array.
@@ -138,7 +137,7 @@ ProgramState.prototype.step = function() {
case op.BIPUSH:
this.frame.pc += 2;
var val = this.frame.program[this.frame.pc-1];
// Do sign extension if necessary
if ((val & 0x80) != 0)
val = -0x80 + (val & 0x7F);
@@ -340,7 +339,7 @@ ProgramState.prototype.step = function() {
};
console.log("Unknown native function index " + f.function_table_index);
}
log("Calling native function with index " + index + " with arguments " +
log("Calling native function with index " + index + " with arguments " +
arg_array);
this.push(native_function(arg_array));
break;
@@ -352,7 +351,7 @@ ProgramState.prototype.step = function() {
var address = this.heap.length;
for (var i = 0; i < size; i++) this.heap.push(0);
this.push(address);
this.frame.pc += 2;
break;
@@ -365,7 +364,7 @@ ProgramState.prototype.step = function() {
this.heap.push(num_elements);
this.heap.push(size);
for (var i = 0; i < num_elements; i++) {
for (var j = 0; j < size; j++)
this.heap.push(0);
@@ -481,7 +480,7 @@ function execute(file, callbacks, v) {
if (verbose) log(file);
log("Beginning execution");
while (true) {
var val = state.step();
if (val !== undefined) return val;
@@ -500,7 +499,7 @@ function execute(file, callbacks, v) {
// save state (maybe in a global in this file?)
// return;
// }
}
}
}
exports.execute = execute;