Skip to content

Latest commit

 

History

History
53 lines (45 loc) · 1.79 KB

README.md

File metadata and controls

53 lines (45 loc) · 1.79 KB

Visual Assembly Canvas

Screenshot of Visual Assembly Canvas

A highly visual assembly editor, infinite canvas for wiring blocks and machines together, bytecode virtual machine runnable natively and on WebAssembly, and a command-line bytecode compiler.

Logbook

See my journal of design decisions and daily progress in my digital garden page.

Part of the "From Opcodes to Algorithms" project

From Opcodes to Algorithms is my 100-day project to implement the most basic build blocks such as memory management, registers, assembly-like instruction sets, compilers, interpreters, up to data structures, algorithms, all the way up to working programs. Maybe even operating systems and neural networks in the future.Let's build it all from scratch in Rust, building one on top of another!

Checklist

  • Linear Memory
  • Registers (PC, SP)
  • Instruction: PUSH
  • Instruction: POP
  • Fetch-Decode-Execute Cycle
  • Instruction: DUP, SWAP, OVER
  • Instruction: INC, DEC
  • Instruction: ADD, SUB, MUL, DIV
  • Instruction: JUMP, JUMP_ZERO, JUMP_NOT_ZERO
  • Instruction: HALT
  • Instruction: LOAD, STORE
  • Char
  • String
  • Print
  • Hello World
  • Simple Call Stack
  • Instruction: CALL, RETURN
  • Scanner and Parser
  • Assembler
  • Bytecode Compiler
  • Command Line Compiler/Interpreter
  • Node-based Visual Editor
  • Actor Model, Mailboxes and Machine Queues
  • Native Orchestrator
  • WebAssembly-based Orchestrator using Actor Model
  • Basic Run and Step
  • Palindrome
  • Array
  • ArrayList
  • Linked List
  • Doubly Linked List
  • Ring Buffer
  • Graph
  • Depth-First Search
  • Breadth-First Search
  • Binary Tree
  • Binary Search Tree