Docs / Overview
1. Introduction and Language Philosophy
Dryad is a dynamically-typed, multi-paradigm programming language inspired by JavaScript/TypeScript, but with low-level features and a robust module system that make it ideal for both automation scripts and more efficient compiled systems. Dryad's design is centered on simplicity and code clarity, offering a pragmatic development experience with a strong design heritage similar to the Rust and C++ ecosystems.
| Design Goal | Practical Description |
|---|---|
| Syntactic Familiarity | Expressive syntax based on JS/TS to reduce the learning curve. |
| Paradigm Flexibility | Simultaneous support for procedural (top-level), functional, and object-oriented programming. |
| Optional Dynamic Typing | Optional type annotations at development time that serve for documentation and validations. |
| Triple Execution Model | Execution via direct AST interpreter, fast stack-based bytecode compiler, or native AOT compiler. |
| Native Concurrency | Concurrency primitives with real OS threads, async/await, and Mutex-based control facilities. |
General Structure of a Dryad File
1 // Import native modules 2 #io 3 #math 4 5 function principal() { 6 let raio: number = 5; 7 const area = #math::pi() * raio ** 2; 8 9 io_write_file("resultado.txt", "A área do círculo é: ${area}"); 10 return area; 11 } 12 13 principal();
Example demonstrating JavaScript's syntactic heritage, use of native directives (#io, #math) and the namespace operator (::) to access imported functions.
Found an error in the spec? Open a PR.
Official Version: 1.0 · May 2026