====== Module Package ====== ===== Synopsis ===== The **Program** package of [[:start|RubyEx]] is a C++ VM which accepts byte-code generated from the [[package:translator]] and evaluates it. ===== Interface ===== **Program** accepts bytecode on //stdin// by default, and evaluates the bytecode in the context of a **RubyEnvironment** (more-or-less equivalent to a //cell// in [[package:module]]). ==== Developers ==== Since all operations requiring reference to `global' objects are actually performed within the context of a **RubyEnvironment**, a single **Program** instance could host several separate **RubyEnvironment**s - each has its own globals and constants (ex. **true**, **false**, **nil**, **Object**, **Kernel**, ...) and is totally separated.