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 GoalPractical Description
Syntactic FamiliarityExpressive syntax based on JS/TS to reduce the learning curve.
Paradigm FlexibilitySimultaneous support for procedural (top-level), functional, and object-oriented programming.
Optional Dynamic TypingOptional type annotations at development time that serve for documentation and validations.
Triple Execution ModelExecution via direct AST interpreter, fast stack-based bytecode compiler, or native AOT compiler.
Native ConcurrencyConcurrency 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