Skip to content

Commit 7dc73ac

Browse files
Mark Rosstclaude
andcommitted
Add: Embeddability benefits with dual memory architecture
New Section: Perfect for Embedded Systems - Explains Moop's dual memory architecture: * L1: Gate-based tape-loop (1024 cells, self-managing) * L3b: Conventional memory (lean C runtime, no GC) Key Benefits for Embedded: - Small footprint (~40KB total runtime) - No garbage collector (no unpredictable pauses) - Deterministic behavior (pruning every 256 ops) - Fixed computational memory (tape never grows) - Lean implementation (~680 lines C) - Self-managing substrate (evolutionary pruning) Ideal for: - Embedded systems (IoT, microcontrollers, sensors) - Real-time systems (no GC pauses) - Resource-constrained environments - Safety-critical applications Includes comparison table with Python, Java, Go, Rust, C, Forth Files Updated: - README.md - RELEASE_NOTES_v0.1.0-alpha.md - SYNTAX_SHOWCASE.md 🦎 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 9ddc126 commit 7dc73ac

File tree

3 files changed

+179
-0
lines changed

3 files changed

+179
-0
lines changed

README.md

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,70 @@ Moop is designed following **Prigogine's dissipative structures** - it's not jus
8383
**Traditional languages:** Static artifacts you manually optimize.
8484
**Moop:** Living organisms that adapt and evolve.
8585

86+
## Perfect for Embedded Systems
87+
88+
Moop combines **gate-based computational substrate** with **lean conventional memory** for an ideal embedded profile:
89+
90+
**Dual Memory Architecture:**
91+
92+
1. **System layer (L1)**: Gate-based tape-loop
93+
- 1024 circular cells (fixed size)
94+
- Reversible gate operations (CCNOT, CNOT, NOT, SWAP)
95+
- Evolutionary pruning (automatic cleanup)
96+
- No dynamic allocation in computational substrate
97+
98+
2. **User layer (L3b)**: Conventional memory for actor state and proto slots
99+
- Managed by lean C runtime
100+
- No garbage collector
101+
- Predictable allocation patterns
102+
103+
**Why Moop excels in embedded environments:**
104+
105+
-**Small footprint** - ~40KB total runtime (tape + qubit state + runtime)
106+
-**No garbage collector** - No unpredictable GC pauses
107+
-**Deterministic behavior** - Pruning every 256 ops, O(1) fitness computation
108+
-**Fixed computational memory** - 1024-cell tape never grows
109+
-**Lean C implementation** - ~680 lines, compiles to bare metal
110+
-**Self-managing substrate** - Evolutionary pruning handles tape cleanup automatically
111+
112+
```moop
113+
actor SensorController
114+
state has
115+
readings is [] # User memory: conventional allocation
116+
last_value is 0
117+
118+
handlers
119+
on process_sensor_data(value)
120+
# Computation happens on L1 gate-based tape
121+
result <-> analyze(value)
122+
123+
# State updates use conventional memory
124+
state.readings.append(result)
125+
state.last_value = result
126+
```
127+
128+
**This makes Moop ideal for:**
129+
- Embedded systems (IoT, microcontrollers, sensors)
130+
- Real-time systems (no GC pauses, deterministic timing)
131+
- Resource-constrained environments (fixed computational memory)
132+
- Safety-critical applications (predictable behavior, no hidden allocations)
133+
134+
**Comparison:**
135+
136+
| Language | Runtime Size | GC Pauses | Deterministic | Computational Memory |
137+
|----------|--------------|-----------|---------------|----------------------|
138+
| Python | ~15MB | Yes | No | Heap (unbounded) |
139+
| Java | ~50MB | Yes | No | Heap (unbounded) |
140+
| Go | ~2MB | Yes | No | Heap (unbounded) |
141+
| Rust | ~500KB | No | Yes | Heap (manual) |
142+
| C | Variable | No | Yes* | Heap (malloc) |
143+
| Forth | ~10KB | No | Yes | Stack (fixed) |
144+
| **Moop** | **~40KB** | **No** | **Yes** | **Tape (1024 cells, self-managing)** |
145+
146+
*C is deterministic only if you avoid malloc/free
147+
148+
**Key advantage:** Moop's computational substrate (L1 tape-loop) is **self-managing** through evolutionary pruning, while user memory remains simple and predictable.
149+
86150
## Quick Start
87151

88152
### Build

RELEASE_NOTES_v0.1.0-alpha.md

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,54 @@ Moop is designed as a **complex adaptive system** following Prigogine's dissipat
9393

9494
**Your program becomes an organism** that adapts, evolves, and optimizes itself.
9595

96+
### Perfect for Embedded Systems
97+
98+
Moop combines **gate-based computational substrate** with **lean conventional memory** for an ideal embedded profile:
99+
100+
**Dual Memory Architecture:**
101+
102+
1. **System layer (L1)**: Gate-based tape-loop
103+
- 1024 circular cells (fixed size)
104+
- Reversible gate operations (CCNOT, CNOT, NOT, SWAP)
105+
- Evolutionary pruning (automatic cleanup)
106+
- No dynamic allocation in computational substrate
107+
108+
2. **User layer (L3b)**: Conventional memory for actor state and proto slots
109+
- Managed by lean C runtime
110+
- No garbage collector
111+
- Predictable allocation patterns
112+
113+
**Why Moop excels in embedded environments:**
114+
115+
-**Small footprint** - ~40KB total runtime (tape + qubit state + runtime)
116+
-**No garbage collector** - No unpredictable GC pauses
117+
-**Deterministic behavior** - Pruning every 256 ops, O(1) fitness computation
118+
-**Fixed computational memory** - 1024-cell tape never grows
119+
-**Lean C implementation** - ~680 lines, compiles to bare metal
120+
-**Self-managing substrate** - Evolutionary pruning handles tape cleanup automatically
121+
122+
**This makes Moop ideal for:**
123+
- Embedded systems (IoT, microcontrollers, sensors)
124+
- Real-time systems (no GC pauses, deterministic timing)
125+
- Resource-constrained environments (fixed computational memory)
126+
- Safety-critical applications (predictable behavior, no hidden allocations)
127+
128+
**Comparison:**
129+
130+
| Language | Runtime Size | GC Pauses | Deterministic | Computational Memory |
131+
|----------|--------------|-----------|---------------|----------------------|
132+
| Python | ~15MB | Yes | No | Heap (unbounded) |
133+
| Java | ~50MB | Yes | No | Heap (unbounded) |
134+
| Go | ~2MB | Yes | No | Heap (unbounded) |
135+
| Rust | ~500KB | No | Yes | Heap (manual) |
136+
| C | Variable | No | Yes* | Heap (malloc) |
137+
| Forth | ~10KB | No | Yes | Stack (fixed) |
138+
| **Moop** | **~40KB** | **No** | **Yes** | **Tape (1024 cells, self-managing)** |
139+
140+
*C is deterministic only if you avoid malloc/free
141+
142+
**Key advantage:** Moop's computational substrate (L1 tape-loop) is **self-managing** through evolutionary pruning, while user memory remains simple and predictable.
143+
96144
### Core Architecture
97145
- **6-Sublayer Design** (L1-L3b) with clear separation of concerns
98146
- **Tape-Loop Turing Machine** - 1024 circular cells with automatic wrapping

SYNTAX_SHOWCASE.md

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -465,6 +465,73 @@ else
465465

466466
---
467467

468+
## Perfect for Embedded Systems
469+
470+
Moop combines **gate-based computational substrate** with **lean conventional memory** for an ideal embedded profile:
471+
472+
### Dual Memory Architecture
473+
474+
**System layer (L1)**: Gate-based tape-loop
475+
- 1024 circular cells (fixed size)
476+
- Reversible gate operations (CCNOT, CNOT, NOT, SWAP)
477+
- Evolutionary pruning (automatic cleanup)
478+
- No dynamic allocation in computational substrate
479+
480+
**User layer (L3b)**: Conventional memory for actor state and proto slots
481+
- Managed by lean C runtime
482+
- No garbage collector
483+
- Predictable allocation patterns
484+
485+
### Why Moop Excels in Embedded Environments
486+
487+
**Small footprint** - ~40KB total runtime (tape + qubit state + runtime)
488+
**No garbage collector** - No unpredictable GC pauses
489+
**Deterministic behavior** - Pruning every 256 ops, O(1) fitness computation
490+
**Fixed computational memory** - 1024-cell tape never grows
491+
**Lean C implementation** - ~680 lines, compiles to bare metal
492+
**Self-managing substrate** - Evolutionary pruning handles tape cleanup automatically
493+
494+
```moop
495+
actor SensorController
496+
state has
497+
readings is [] # User memory: conventional allocation
498+
last_value is 0
499+
500+
handlers
501+
on process_sensor_data(value)
502+
# Computation happens on L1 gate-based tape
503+
result <-> analyze(value)
504+
505+
# State updates use conventional memory
506+
state.readings.append(result)
507+
state.last_value = result
508+
```
509+
510+
### Ideal Use Cases
511+
512+
- Embedded systems (IoT, microcontrollers, sensors)
513+
- Real-time systems (no GC pauses, deterministic timing)
514+
- Resource-constrained environments (fixed computational memory)
515+
- Safety-critical applications (predictable behavior, no hidden allocations)
516+
517+
### Comparison
518+
519+
| Language | Runtime Size | GC Pauses | Deterministic | Computational Memory |
520+
|----------|--------------|-----------|---------------|----------------------|
521+
| Python | ~15MB | Yes | No | Heap (unbounded) |
522+
| Java | ~50MB | Yes | No | Heap (unbounded) |
523+
| Go | ~2MB | Yes | No | Heap (unbounded) |
524+
| Rust | ~500KB | No | Yes | Heap (manual) |
525+
| C | Variable | No | Yes* | Heap (malloc) |
526+
| Forth | ~10KB | No | Yes | Stack (fixed) |
527+
| **Moop** | **~40KB** | **No** | **Yes** | **Tape (1024 cells, self-managing)** |
528+
529+
*C is deterministic only if you avoid malloc/free
530+
531+
**Key advantage:** Moop's computational substrate (L1 tape-loop) is **self-managing** through evolutionary pruning, while user memory remains simple and predictable.
532+
533+
---
534+
468535
## Example 7: Natural Language Actor Definition
469536

470537
From the test suite - this is what actual Moop code looks like:

0 commit comments

Comments
 (0)