Welcome to the ngl documentation.
ngl is a language using uncommon concepts, to understand them, please read the [introduction]
Objectives
- generic : compile to anything
- minimize code duplication (using the cluster system and the ngl vcs)
- powerful metaprogrammation : abstraction of the program phase (compilation, build time, runtime, jit etc ...)
- highly customizable : ngl syntax can be rewritten in ngl, common programming concepts can be written in ngl
- use the same system for everything : compilation, build system, vcs use ngl
- collaborative : improve generic code using a common code base
- inclusive : use the ngl shape concept to allow external syntaxes
Use cases
- write a complete program
- use for scripting
- generate code for other languages
- write common algorithm once for any languages
- store data in a format with easy conversion to other formats
- create DSL easily using the ngl shapes