An anonymous reader writes: I was wondering recently, how copyright licences come into effect when working with multiple languages. For instance, take a simple md5 algorithm written in C. The developer then, looking at this code, writes the Java, Perl, Python, etc as direct an equivalent as possible. Is this infringement? Furthermore, let's say that the C algorithm was a direct implementation from a public specification. How would one go about ensuring that no infringement can be claimed? Does the copyright cover only the specific expression of the algorithm, any expression that can be made to be similar to the original algorithm?
What about if one simply browsed through the code to get an understanding of how it worked, or how it implemented a specific portion of a specification, but then wrote their own implementation based upon the reading of the code — how does copyright come into play there? With regard to the copyright licenses, (if it makes any difference) assume any case (i.e. license A for the existing code and license B for the new code where A and B are different, but could be open source or closed source). Assume that no trade-secrets, patents, contracts etc are being infringed upon — this is strictly a copyright question.