Welcome to Hyang Programming Language!
The newest version is Hyang 1.2.2 released on March 18, 2017.
For the release notes of Hyang 1.2.2 see the preface.
Hyang is dynamic type language. Whilst we create the variable, we can also assign different types of values to the same variable. This means that you don't need to specify what type a variable is. The variable knows what type it is from the value, or object, assigned to it.
Hyang demonstrates powerful computing. Hyang supports coroutines, multiple dispatch and capables of doing multi-tasking. All is done with the Hyang inner representation of types supported by the concept of independent collaboration of multiple junctures.
Hyang is embeddable. Hyang can be used as embedded scripting language for the host programs. Hyang API provides interface with many system calls and libraries, and is extensible in C or C++. Hyang also has the extended library to provide higher-level functions for some common tasks.
Hyang is standalone programming language. Hyang has a complete library (including the debug library) with standard distribution to offer a powerful and efficient standalone interpreter, called
hyang. In Hyang standalone interpreter, you can type Hyang commands and have them executed immediately, or executes your Hyang scripts, either interactively or noninteractively.
Hyang is clean, lightweight and flexible. Hyang made with less, but efficient procedural syntax combined with powerful constructions of data description based on extensible semantics, ideal for configuration, scripting, and rapid prototyping. Hyang also supports procedural as well as object-oriented programming, functional programming, data-driven programming, and data description.
Hyang performs automatic memory "diet" management. Hyang has capability to control memory and clean out unused (or "dead") objects automatically with the built-in Hyang's pushbroom. Hyang introduces a higher-level constructs called weak worlds and hyadics in order its pushbroom works incrementally.
Hyang has its own ontology. Hyang has eight basic types of values (octuple), we can use the Hyang function
type() to get a description of the type of a particular object. This means, Hyang is also reflective language.
Hyang is portable. You don't have to worry about moving or copying everything you need to run Hyang scripts (including moving or copying Hyang executable files) to wherever you may find convenient, even on USB drive!
Hyang has ABAH. Hyang uses register-based virtual machine to interpret bytecode with the adaptive ABAH compiler (known as
abahyang compiler) written in standard C. So Hyang can be augmented to cope with a wide range of system calls and libraries in any other programming languages that is compatible with the Hyang's application program interface (referred to as Hyang/C API), sharing a syntactical framework with Hyang.