Joa is a dynamically typed interpreted language designed for backend infrastructure, network configuration, and autonomous AI agent operations. It treats IP addresses, subnets, and AI agents as first-class language primitives — no imports, no external libraries, no boilerplate.
Its syntax enforces mandatory braces { } for all blocks, which eliminates whitespace-sensitive parsing and enables precise, human-centric error messages modeled after Rust and Elm.
Implementation status
These pages document the interpreter in this repository. The CLI reports v0.1; the existing language reference is labeled 0.2. Features described here follow the source rather than implying a stable release.
| Feature | Current behavior |
|---|---|
| IPv4 and CIDR operations | Local, implemented network value operations |
| Functions, lists, maps, closures | Evaluated by the tree-walk interpreter |
Agent .ask() |
Prints a query and returns a simulated response; no model API request |
Agent .detect_objects() |
Prints a notice and returns ["unknown_object"] |
~ matching |
Case-insensitive keyword substring matching; no embeddings |
quarantine() and trigger_alert() |
Console notices; no firewall or alert-service integration |
The Go interpreter uses the standard library. There is no package import system, interactive REPL, or bundled AI provider integration. Run one .jo source file at a time.
Interpreter pipeline
.jo source → lexer → tokens → parser → abstract syntax tree → interpreter → output.
Start with installation and your first program, then try the runnable examples.