 The first C compiler, written by Dennis Ritchie, used a recursive descent parser, incorporated specific knowledge about the PDP-11, and relied on an optional machine-specific optimizer to improve the assembly language code it generated.In contrast, Johnson's pccm was based on a yacc-generated parser and used a more general target machine model.Both compilers produced target-specific assembly language code which they then assembled to produce linkable object modules.