计算机工程师和程序员长期以来依赖逆向工程来实现程序功能,而不直接复制受版权保护的原始代码。简单来说,就是在不侵犯版权的前提下“模仿”软件的行为和功能。过去,这种做法通常遵循所谓的“洁净房间(clean room)”原则:由完全不接触原始代码的人重新实现功能,以确保生成的新代码不会构成原作的衍生作品。