Unix compress was written in
C by Joseph M. Orost, James
files with the suffix ".Z".
Compress uses variable length codes. Initially, nine-bit
codes are output until they are all used. When this occurs,
ten-bit codes are used and so on, until an
implementation-dependent maximum is reached.
After every 10
kilobytes of input the compression ratio is
checked. If it is decreasing then the entire string table is
discarded and information is collected from scratch.