# Roadmap This is finished coursework, so the list below is about rounding out the projects rather than shipping features. These are the gaps I would close if I came back to it. ## BigInt - Add subtraction and division. Right now it does addition and multiplication only. - Handle negative numbers. The class is unsigned, so a sign bit and the borrow logic for subtraction would go together. - Swap the fixed `int[500]` for a growable buffer so the digit cap is not a hard limit. ## Custom String - Keep spare capacity and grow it by doubling. The current `operator+=` reallocates on every call, which is quadratic for repeated concatenation. - Fill in the `test_generic_*` templates with real cases so the suite covers more of the interface. ## Assembler - Replace the full-parenthesization assumption with a real shunting-yard pass that respects operator precedence, so it can read plain expressions. - Add a small test program for the postfix and assembly stages, not just the stack. ## AST Profiler - Relax the assumptions the transforms make: a single `return` in main, no nested functions, explicit braces on every block. - Add a test that round-trips a known input file and diffs the instrumented output. ## Object Construction - Add a Makefile so it builds the same way as the other four projects. ## Across the repo - Run the test binaries under valgrind in CI. The String, stack, and AST classes all manage heap memory, and the course Makefiles already have `oracle-mem` targets, so wiring that into the pipeline would catch leaks.