A Post Processor is a unique "driver" specific to a CNC machine, robot or mechanism; some machines start at different locations or require extra movement between each operation, the Post-Processor works with the CAM software or off-line programming software to make sure the G-Code output or program is correct for a specific machine build.
CAM software uses geometry from a CAD model and converts it to G-code. The CAM software analyzes the CAD model, determines what tooling and toolpaths will be used to mill the desired features. Doing so requires a CAM post processor that generates the exact g-code dialect used by the machine that is being targeted. An instance of such a translation is often referred to as a "post". There will be a different “post” for each g-code dialect the CAM software supports. Post Processors usually do not convert g-code from one dialect to the next, rather the “post” uses an intermediate format that captures the G-code commands in a dialect-independent form. Most CAM software accomplishes this with an intermediate format called "CL Data."
The Post-Processor will alter the program output to suit a specific machine; a "Post" can be used for complex things like producing a proprietary machine language other than G-Code or M-Code, or a Post-Processor may be used to start a machine from a specific position. 
Another example of use for a Post-Processor would be an ATC (Automatic-Tool-Change) for a CNC, the Post-Processor is required so the correct Tool is collected from the correct location.
Some devices connect to the computer using "Serial Communication" and some CNC devices connect using "Parallel Communication", the Post-Processor does not influence the "communication", the Machine Software does.
There is postprocessors too on context of web development and development in general.