The science of learning the way a device functions without the aid of documentation, usually by trial and error. In some cases reverse engineering is used to copy the technical function of something without copying the legally protected manner in which that function is accomplished. Probably the most famous (and profitable) instance of this was Compaq Computer’s cloning of the original IBM PC. Would-be PC clone makers had to come up with a chip that would replace IBM’s ROM-BIOS but do so without copying any IBM code. The way this is done is by looking at IBM’s ROM-BIOS as a black box — a mystery machine that does funny things to inputs and outputs. By knowing what data goes into the black box – the ROM — and what data comes out, programmers can make intelligent guesses about what happens to the data when it’s inside the ROM. Reverse engineering is a matter of putting many of these guesses together and testing them until the cloned ROM-BIOS acts exactly like the target ROM-BIOS. It’s a tedious and expensive process. Reverse engineering the IBM PC’s ROM-BIOS took the efforts of 15 senior programmers over several months and cost Compaq an estimated $1 million. In other cases, reverse engineering may take place simply because a company wants to build a product that is compatible with something else on the market, which is common in the audio industry. This is not the same as getting an “idea” for a feature from someone else. Reverse engineering is copying the specific function. For example, if someone wanted to build a product that worked with ADAT optical ports they would either have to get the information about how it works from Alesis or reverse engineer their optical spec. There are more products on the market as a result of reverse engineering than most people would ever expect.