On Tue, Jun 29, 2021 at 01:52:56PM +0000, Nate Rosenbloom wrote: > > > This reason is not stated in the Stack Exchange post, and I believe > > it’s inaccurate (although, I am not a lawyer either). I think the > > reason is that you are reading the original implementation to write > > your own, so you are some kind of a compiler, or translator (as for > > human spoken languages). As such, what you write is mostly the other > > person’s work, so you should not claim copyright about it. > > Sorry, I should have been more specific, the rewritten algorithm would not be the same, but it would be a derivative work and still covered by copyright of the original work. I think the legal concept of "derivative work" is far more complex than we'd all like. See [1] to get an idea. With the caveat that I'm not a lawyer (heh), I think the "red line" lies between those two extremes: (a) you read the original, understand the algorithm and write your program based on this understanding. Best if you forget details like variable naming, program structure, etc. Only the "pure" algorithm survives, and (b) you translate the program line by line (although that would be pretty hard between C and, say, idiomatic Scheme). (a) is almost certainly not a derivative work, while (b) would be, most probably. To make sure you can cleanly /prove/ you did (a), some do what is called a "clean room implementation". Fred looks at the original program and tells Gina "how it works", and Gina implements the new one. Cheers [1] https://copyleft.org/guide/comprehensive-gpl-guidech5.html - t