Skip to content

Roadmap

BrandonRobare edited this page Jun 2, 2026 · 1 revision

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.

Clone this wiki locally