paws
- Python 38.3%
- Verilog 30.2%
- C 20.9%
- JavaScript 3.1%
- Scala 2.5%
- Other 4.9%
| .github/workflows | ||
| apps | ||
| docs | ||
| examples | ||
| hdl | ||
| os | ||
| planning | ||
| scripts | ||
| src/paws | ||
| std | ||
| tests | ||
| tools | ||
| vm | ||
| web | ||
| .gitignore | ||
| AGENTS.md | ||
| LICENSE | ||
| pyproject.toml | ||
| README.md | ||
| SKILL.md | ||
🐾 Paws
A programming language made of animal noises.
Paws is a stack-based language where every operation is an animal sound. Write programs that read like a conversation between cats and dogs — in clean, Lisp-style S-expression syntax.
# Compute the nth Fibonacci number
(meow fib (n)
(uwu (stare n 0)
0)
(uwu (stare n 1)
1)
(purr a 0)
(purr b 1)
(purr idx (swat n 1))
(woof (snarl idx 0)
(purr tmp (pounce a b))
(purr a b)
(purr b tmp)
(purr idx (swat idx 1)))
b)
(stalk fib 10 yip)
# → 55
Quick Start
Install
pip install -e . # from the repository root
Run
paws examples/fib.paws # Run a file (plisp syntax, .paws extension)
paws repl # Interactive REPL
paws repl -l # Lisp-style REPL
echo '(42 yip)' | paws # Pipe from stdin
paws compile examples/fib.paws # Compile to Python
Native VM (C Runtime)
cd vm && make
./paws_vm ../examples/fib.paws
Documentation
| Doc | What it covers |
|---|---|
| Getting Started | Install, first program, REPL |
| Syntax | S-expression syntax guide |
| Syntax Reference | Complete operator reference |
| Prerequisites (Linux) | Build requirements: gcc, raylib, etc. |
| Architecture | Project layout, backends, tests |
| Native VM | Standalone C runtime |
| Web Playground | Wasm playground — build and run locally |
| Tooling | Formatter, linter, LSP server |
Full docs index: docs/INDEX.md
Examples
Basics (examples/)
| File | What it does |
|---|---|
hello.paws |
Hello, World! |
fib.paws |
Fibonacci with nested conditionals |
factorial.paws |
Factorial using recursion |
sum.paws |
Sum 1 to n with a while loop |
conditionals.paws |
Classify positive/negative/zero |
guess.paws |
Number guessing game |
string.paws |
String ops: rub, scratch, nip, paw |
array.paws |
Array ops: paw, scratch, mark, trail |
spit.paws |
Error handling with spit |
check.paws |
Assertions with check |
math.paws |
Math module (import test) |
arithmetic.paws |
Arithmetic and comparison operators |
list.paws |
List ops: map, filter, reduce |
Legacy postfix versions live in examples/legacy/.
Graphics Demos (examples/demo/)
| Demo | What it exercises |
|---|---|
plasma.paws |
Float math, pixel buffer, sine waves |
mandelbrot.paws |
Nested loops, complex arithmetic |
particles.paws |
Orbital motion, trig functions |
wireframe-cube.paws |
3D rotation, perspective projection |
kaleidoscope.paws |
Symmetry, color math |
Test Status
| Runtime | Status |
|---|---|
| Python (interpreter + compiler) | ✅ All green |
| Native VM (C, 11 session tests: 1–8, 11, 17, 18) | ✅ All green |
Cross-Backend Parity ✅
All 4 backends produce identical output for core example files:
| Backend | Status |
|---|---|
| Python interpreter | ✅ Reference |
| Paws→Python compiler | ✅ Verified |
| Paws→C compiler | ✅ Verified |
| Native VM | ✅ Verified |
Roadmap
See planning/INDEX.md for the full roadmap with phase status and links.
Completed: Phases 1–10 — Native OS, Web Playground, Debugger & Profiler ✅ Current: FPGA Phase 5 VGA — Steps 1–4 complete (VGA, draw ops, FX math, text console w/ scroll + string bark) — Step 5 (Integration demos) next 🔧
Made with 🐾 by cats and dogs, together.