Aarohi’s Status Update for March 7
Progress
This week we focused mostly on writing the design report. Since we made a few changes regarding functions from the initial design, we had to design a new code diagram. A copy of the diagram is below:
The boxes is orange are to be modified/under modification by me, the boxes in red are allowed to modify the global variable containing the error (aka they are allowed to throw errors) and the box in green (eval_expression) performs type checking.
I am still contemplating the pros and cons of making eval_expression a recursive function vs requiring users to only enter valid values (not expressions that can be stepped). The latter is easier to implement, but the former is more versatile and allows for more interesting and versatile programs.
Another thing I am contemplating is the number of arguments that can be passed in to functions. Since we don’t have higher order types, the CodeBlox language doesn’t allow from product or sum types, or polymorphism. However, the language could take in multiple (curried) arguments, but since we do not plan to have parentheses, these arguments would be required to be passed in as variables, which adds to the complexity of the program.
To simplify the above issues, I plan to work on the easiest approach at first: no recursion and only one argument to functions, to mitigate risk. If implementing those goes smoothly, I will then transition over to a recursive eval_expression, and then work towards multiple arguments to functions (still passed in as variables).
Schedule
I have been behind schedule since the last few weeks were heavy midterm weeks, coupled with the design presentation and design report. To catch up, I plan on using next week, spring break, since we had planned to use it initially as slack time.
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)