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

Links