Duplicate:
They should perform the following functionalities: - checking for errors - optimize the code - removing unused code - packaging management - compress it (rename varialbe and property name to shorter ones) - obfuscate it (sometime it is the same as compress it.