Aarohi’s Status Update for February 22
Progress
At the beginning of the week, I wrote a unit testing apparatus that takes in an input stream of the same format as what the robot will be receiving from the master tile and outputs a list encoding the position information of the tiles. It creates an m x n array (m rows and n columns of codeblox tiles) with the appropriate tile code at the correct location. If there is no tile at a given position, it outputs -1 for that position.
A sample input and output is below:
Code:
while(1) {
robot.moveForward(1);
robot.moveReverse(1);
}
Stream: [6,0,0,13,0,1,19,1,1,37,1,2,1,2,1,38,2,2,1]
Interpreter Input: [13, 19, -1, -1, 37, 1, -1, 38, 1]
This will be used to test the standalone interpreter logic. We will feed the program encodings corresponding to a program from the codeblox. The programs can be correct, or have various errors (syntax, semantic and/or logic).
The logic for the unit testing can also be used in the integration stage, when we connect the embedded logic to the interpreter.
After this, I speced out the codeblox languages. We plan on performing error checking, so we have two types, bool and num. I an working on restructuring eval_expression in order to make to be able to handle embedded expressions, and therefore it will be recursive. I will also be checking the types of functions and expressions in eval_expression, and throw typechecker errors appropriately.
Schedule
I managed to simplify the testing apparatus and finished it this week, and I underestimated the time it will take me to perform error checking and modifying preexisting code, since I decided to make large modifications regarding types and evaluating expressions. I will be updating the Gantt chart accordingly.
Goals for next week
- Finish eval_expression (recursive function)
- Finish handling command sequences
- Begin working on handling conditional sequences
- Begin working on implementing error checking (mark where error checking needs to be done)
The goals for next week are more sparse than usual since we will be working on the Design Presentation and Design Document.