Post-processors can do many other things besides translating CLDATA to NC machine codes. For example a post-processor may summarize axes travels, feed and speed limits, job run-time and tool usage information, which enables better selection and scheduling of resources.
More sophisticated post-processors may validate the program before it is run by the machine tool. There are many simple rules that a post-processor can follow, with warning messages displayed when these rules are violated. Some examples: Noting if a tool is not selected near the start of the program, warning when motions at feed rate are done with a stopped spindle, flagging long series of positioning moves, or conversely, flagging feed moves at or above the program clearance plane, or noting if diameter or length compensation switches are not changed when a tool is.
Beyond simple validation comes correction. There are many situations where a post-processor can detect an error and correct it. Examples include: cycles left active during a tool change (they should be temporarily cancelled), selecting an incorrect or nonexistent spindle gear range (the post-processor should select a range that supports the speed), or specifying an unavailable coolant type (the post-processor should select the next best type).
The best post-processors maintain a global picture of the entire job at all times, using upcoming events to help make decisions about current ones. The NC programmer uses this information to optimize the job without intervention. For example: pre-selecting the next tool as soon as physically possible, segmenting a tape at a tool change if the entire upcoming tool path will not fit on the current reel, selecting a spindle gear that best fits the current and subsequent speed requirements, or switching intelligently between parallel axes (Z and W) based on the types of upcoming operations and available travel limits.
Post-processors can also work around limitations and bugs in the CAM system or in the machine tool. It is generally far easier to change the post-processor than it is to get a new revision of the CAM system, or a new executive revision for the NC controller.
The important point to be made here is that the NC programmer should not be concerned about machine tool or machine operator idiosyncrasies that do not directly affect the production of a job. Wherever possible, good post-processors should hide these details within.
Standard CAM systems, standard NC machines, standard CLDATA and standard post-processor vocabulary can not all be mixed together to instantly produce a working system. There are too many variables in the real world, and standards are too restricted in scope, to achieve integration with off-the-shelf components.