CYMPLE

Procedural Programming with Unicode Symbols

Version 2.0 • 2026-03-03
⚠️ Disclaimer: This work is based on about 40 years of experience with 12 different programming languages. The definition and outcome however wouldn't be possible without ChatGPT (for interactive work on the language itself) and Claude (for fixing last errors and creating these pages). So, keep in mind: Absolutely no guarantee :-)

What 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

💎 Tiny Binaries: Cymple should produce exceptionally small executables — just a few KB for typical programs. No bloated runtimes, only minimal glibc dependency.

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: .size unified to .length across all collection types
  • 1️⃣ 1-Based Everywhere: All collections start at index 1block[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

Please find all files on codeberg: https://codeberg.org/foodsnacker/Cymple

🎯 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
⚠️ Note: Cymple is a research language specification. No production implementation exists yet. This is an educational project exploring language design concepts with a focus on safety, determinism, and minimalism.
hisot

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.

Ctrl+Enter to run

📖 Quick Insert

Click to insert at cursor:

💬 Basic I/O 🔢 Variables ⚙️ Operators 🔀 Control Flow 🧵 Functions 💾 Memory (2.0) ⚡ Concurrency

Example Programs

These examples run fully in the browser.

Copyright 2016 – 2099 ff Jörg Burbach | All rights reserved – Made with ♥ in Cologne | Kontakt | Impressum