Jose Gibson
← All Projects

Nand2Tetris Web IDE

Full Nand2Tetris compiler suite and browser IDE that compiles Jack through VM, assembly, and Hack machine code, with an integrated VM emulator.

Python Flask backendReact, Vite, TypeScript frontendMonaco EditorJack compiler, VM translator, assemblerBrowser VM emulator
Translating an entire educational computer stack into a web-Keeping compiler logic usable both as API and command-line tBuilding a browser emulator that can run generated VM code.Coordinating Python backend deployment with frontend static

Portfolio Highlights

  • Built a web IDE and compiler suite for Nand2Tetris, compiling Jack to VM, assembly, and Hack binary with an integrated browser VM emulator.
  • Implemented the full compiler pipeline behind a Flask API and React/TypeScript interface.
  • Deployed the tool on Render with a split-pane developer workflow for inspecting generated artifacts.

Snapshot

  • Period: November 2025
  • Source: `aspire7:D:\SWE\NANDtoTETRIS` · `github.com/josegibson/NANDtoTETRIS` (TypeScript web IDE) · `github.com/josegibson/Assembler` (standalone Python assembler)
  • Domain: Compilers, virtual machines, educational tooling
  • Status: Deployed web tool
  • Live deployment noted in README: `https://nand-compiler-web.onrender.com/`

Stack

  • Python Flask backend
  • React, Vite, TypeScript frontend
  • Monaco Editor
  • Jack compiler, VM translator, assembler
  • Browser VM emulator
  • Render deployment

What I Built

  • Jack tokenizer, parser, symbol table, and VM code generator.
  • VM translator and Hack assembler.
  • Flask compiler API.
  • React web IDE with split panes for source, VM, assembly, and binary output.
  • Browser-side VM emulator with screen/keyboard support.
  • Downloadable compilation artifacts.
  • Standalone Python Hack assembler (`josegibson/Assembler`): Parser, SymbolManager, and Convert modules — a self-contained CLI tool predating the web IDE.