CYMPLE
Procedural Programming with Unicode Symbols
Version 2.0 • 2026-03-03What is Cymple?
Cymple is a research programming language exploring novel approaches to procedural programming:
⚙️ Interpret or Compile
Cymple can be interpreted (like JavaScript) or compiled to tiny native binaries
🎓 Turing Complete
Cymple is Turing complete and can do everything needed
🔣 Unicode Symbols
Keywords replaced with expressive Unicode symbols for visual clarity — no English needed
🚀 No Garbage Collection
RAII-based deterministic cleanup — perfect for real-time systems
🔐 Share-Nothing
Data races prevented by design through isolated task heaps
⚡ Quantum Operations
Parallel evaluation with timeouts, progress control, and early cancellation
🛡️ Memory Safe
Validated handles with generation counters prevent use-after-free
📋 Formally Specified
Complete formal specification (109 MUST / 18 SHOULD / 13 MAY) with EBNF grammar
Quick Example
💬 "Hello, World!"
🆕 What's New in 2.0
- 🔁 One Loop Syntax:
🔁 i in 1..10— the=form is gone; in is the only way to range-loop - 🔤 Interpolation Only: String concatenation with
+removed; use"Hello, 🔤name!"everywhere - ≠ One Not-Equal Operator:
!=removed;≠is the sole form - 🔌 FFI Split from Borrow:
🔗 "lib.so"→🔌 "lib.so";🔗now means borrow only - 📏 Consistent Collection API:
.sizeunified to.lengthacross all collection types - 1️⃣ 1-Based Everywhere: All collections start at index
1—block[0]is a bounds error - 📋 Complete Formal Spec: 80 EBNF productions, 17 semantic notes, 109 MUST / 18 SHOULD / 13 MAY requirements
See README for the full migration table.
🎯 Design Principles
- 🛡️ Safety First: Memory safety and concurrency safety through validated handles
- 🎯 Determinism: Predictable behavior with lowest-index race tie-breaker
- 📢 Explicitness: No hidden allocations or background operations
- ⚡ Fail-Fast: Invalid operations cause immediate errors with clear messages
- ✂️ Minimalism: One canonical syntax for everything — no duplicate operators, no alternative forms
📚 The Project
🎯 Key Features
- Memory Safe: Generational handles prevent use-after-free
- Bounds Checked: All memory access validated at runtime
- Structured Concurrency: Tasks automatically cleaned up at scope exit
- Quantum Operations: Race (🌀⚡) and Collect (🌀📦) with timeout, progress, and early cancel
- Pattern Matching: Full destructuring with guards and ranges
- Borrowing: Temporary access without ownership transfer (🔗)
- FFI: Direct C library integration via 🔌
- Dual-Mode: Interpreted or compiled — identical semantics
- Tiny Binaries: Usually only a few KB (10× smaller than Go)
- Formally Specified: RFC 2119 conformance with complete EBNF grammar
currently, some of the examples are broken. Sorry for the inconvenience.
▶️ Try Cymple Online
Edit the code and click Run to see the result. Use the quick-insert panel to add syntax. Ctrl+Enter also runs.
📖 Quick Insert
Click to insert at cursor:
Example Programs
These examples run fully in the browser.