NOVA, now called NOVAgen, is the proprietary generation and development tools suite of TASKING for building Cross-Assembler toolsets for virtually any DSP or microcontroller. It takes an input specification of the assembly language syntax, mnemonics and associated opcode sequences, and builds all components that are necessary for a full-featured assembler, automatically. These can be compiled and then linked to the supplied modules to produce an executable Assembler on any given host platform, of production quality.
The input specification language was designed with flexibility and ease-of-use in mind, requiring no special skills or training. It supports any architecture, from 4 bit to 64 bit, and is widely programmable to support any instruction-set, syntax and opcode format (including little/big endian, or mixed encoding).
The NOVAgen technology does support a number of powerful optimizations that are extremely important for microcontrollers and DSPs:
The language and the automatic generation process have been very successfully used in combination with instruction-set databases. In this case, the instruction-set is derived either from a hardware design model, or from a specification document, and can directly be used to generate input description files for the NOVAgen generation suite.
The first version was build using Haskell and C.