Ry (short for Ry's for you) is a high performance, register based scripting language. It is designed to be a tool --meaning it is built to be developed, compiled and easy to use.
Whether your building a simple script or a complex game like Snake, Ry is designed to be instituive and fast.
Unlike many other toy languages that depend on tools, Ry is purely built from c++ which has doesn't use any tools like flex, bison and more. Ry focuses on:
- Independence: Everything you need is on one repo
- Purity: Ry isn't a clone; it has it's own keywords (
unless,until,foreach,childof) and it's own way of thinking - Performance by Design: Using a register-based Virtual Machine and Direct Threading to make every instruction count.
Ry is built with a professional 3-tier Architecture:
- The Backend+Frontend: a custom Lexer and Parser that handles pure Ry Syntax
- The MiddleEnd: A Bytecode Compiler and a "Pre-calculation" Optimizer that resolves logic during the parsing phase.
- The VM: A high-speed execution engine featuring:
- Register based Architecture: Reducing stack churn and making instructions more effecient
- Direct Threading: Using a computed-goto dispatch table for elite performance.
- Dynamic Loader: A custom C++ extension system (
loader.cpp) that lets Ry load native.soor.dllmodules at runtime.
Ry is more than just an interpreter; it is a full development environment:
- Ryder: The "Ry's Developing Editor," built in Godot, designed to eventually be powered by Ry itself ( Unreleased ).
- Standard Library: A collection of native modules like
types.ry,string.ry, andmath.ry - C++ Extensions: Write high speed modules written in c++ for things like I/O and System Calls