C code can be generated in platform-independent K&R [15] or
ANSI [1] form.
This code uses macros for operations important in efficient arithmetic:
double word multiply, division with remainder, multiply-add, etc.
If the
compiler is used in conjunction with a C compiler
which supports asm statements, these macros can be redefined
to use single machine instructions.
With appropriate declarations in the
program,
the generated C code uses appropriate naming and linkage conventions
to allow access to other libraries, for example, the X Window System.
A default run-time library is supplied for storage management, big integer arithmetic, and so on. The storage manager assumes that other storage managers may be operating simultaneously. It allows deallocation of store as well as garbage collection. The garbage collector assumes that pointers may be captured by other programs so it will not collect storage which is referenced by global data, foreign heaps, the stack or registers.
By replacing just one header file, the C code may use other packages for this support.