diff options
Diffstat (limited to 'report/esoteric_project_report.tex')
-rw-r--r-- | report/esoteric_project_report.tex | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/report/esoteric_project_report.tex b/report/esoteric_project_report.tex index e355224..e157dcb 100644 --- a/report/esoteric_project_report.tex +++ b/report/esoteric_project_report.tex @@ -306,30 +306,40 @@ We decided to use the Agile method since it would lead to not only increased tea During our allocated project time, we did four major sprints. Our initial priority was creating the main framework for the compiler of our esoteric language. Then we handled variables and print statements. Then implemented conditionals and loops. Finally, we tackled arrays and functions. Once we tied up these loose ends, we could actually make a full Sieve of Eratosthenes algorithm to show the capability of the program. \\ \subsection{Sprint 1: Creating the framework for the compiler} +Focused on creating the framework for the compiler, and added simple expression handling. \begin{itemize} \item Language.java \item Token.java \item TokenScanner.java \item TokenType.java +\item Expression.java +\item Parser.java \end{itemize} \subsection{Sprint 2: Variables and Print statements} +Implemented basic statements for variables and prints. Also implemented error detection and reporting. \begin{itemize} \item Parser.java -\item Expression.java \item Statement.java \end{itemize} \subsection{Sprint 3: Conditionals and loops} +Added support for conditional statements and loops. In this sprint the classes to write to C and execute were also added. + \begin{itemize} \item Parser.java +\item Environment.java +\item ExecuteC.java +\item Translator.java +\item Statement.java \item Utils.java \end{itemize} \subsection{Sprint 4: Arrays \& functions} +Added functions, subroutines and arrays to the language, as well as additional utilities and a simple user interface. \begin{itemize} \item Parser.java -\item Environment.java -\item ExecuteC.java -\item Translator.java +\item Statement.java +\item Expression.java +\item Utils.java \end{itemize} @@ -396,7 +406,7 @@ The second sprint tested the implementation of various different functionalities \subsection{Sprint 3 testing} -\begin{table}[h] +\begin{table}[!htb] \caption[]{Sprint 3 Tests and their results} \begin{center} \begin{tabular}{|l|l|l|l|}\hline @@ -413,7 +423,7 @@ The second sprint tested the implementation of various different functionalities \end{table} Testing during this sprint focused on more advanced program functionality, including conditional testing, and the concatenation of multiple strings for a print statement. These tests ensured that the logical and conditional parts of our compiler worked as expected. - +\newpage \section{Fortran Source File Testing} Once the compiler was fully implemented, testing was moved to custom harnesses that were written in Fortran. Each test file was run and the output carefully checked to ensure that the language and compiler were working as expected. @@ -424,14 +434,14 @@ In addition, extensive logical testing for the AND and OR operators was carried In other words, the software was tested so that the order of variables in a logical test did not matter, for example A AND B is equivalent to B AND A (see appendix for examples of this). Below are some examples of output testing harnesses, run through the IDE program. -\begin{figure}[h] +\begin{figure}[!htb] \centering \includegraphics[scale=0.5]{images/test_harness_1.png} \caption{Mathematical testing} \label{test_harness_one} \end{figure} -\begin{figure}[h] +\begin{figure}[!htb] \centering \includegraphics[scale=0.5]{images/test_harness_2.png} \caption{Logical testing} |