1. <jargon> To process, usually in a time-consuming or complicated way. Connotes an essentially trivial operation that is nonetheless painful to perform. The pain may be due to the triviality's being embedded in a loop from 1 to 1,000,000,000. "Fortran programs do mostly number crunching."
2. <compression> To reduce the size of a file without losing information by a scheme such as Huffman coding. Since such lossless compression usually takes more computations than simpler methods such as run-length encoding, the term is doubly appropriate.
4. To squeeze program source to the minimum size that will still compile or execute. The term came from a BBC Microcomputer program that crunched BBC BASIC source in order to make it run more quickly (apart from storing keywords as byte codes, the language was wholly interpreted, so the number of characters mattered). Obfuscated C Contest entries are often crunched; see the first example under that entry.