JaggerScript / docsProject documentation

Explanation

Tradeoffs and Missing Pieces

Understand the design decisions, alternatives, and limits.

JaggerScript performs only lightweight static checking in the browser. It can catch parse errors and unknown declared type names before execution, but it does not prove every expression type statically. Instead, many safety checks occur at runtime: scoped member access must traverse instances, field assignment must preserve the existing type string, and missing variables throw immediately.

That choice keeps the project centered on interpreter mechanics. A full static type checker would be a valuable next layer, but it would also change the paper's main teaching object from parser/runtime design to type-system design. The current version makes the runtime consequences of each statement visible and keeps examples small enough to follow by hand.

  • The compiler normalizes parser output, but it is not a full optimizer.
  • Heap-backed instances model reference identity, but memory management is intentionally simple.
  • Runtime errors are explicit, but many could become static errors in a richer checker.
  • The Monaco playground is a learning and debugging surface, not a production IDE.