The European Court of Justice in SAS Institute Inc. v. World Programming Ltd, C‑406/10 held that functional aspects of software are not an “expression” protected by copyright.
While recognizing that the source code and object code are protected by copyright under EU directives, the court wrote:
[39] … neither the functionality of a computer program nor the programming language and the format of data files used in a computer program in order to exploit certain of its functions constitute a form of expression of that program for the purposes of Article 1(2) of Directive 91/250.
The court held that a person who has access to the source code and recreated the functionality of the software using that source code, then they would likely be liable for copyright infringement.
Regarding the ability to reverse engineer software, the Court held that:
[59] Consequently, the owner of the copyright in a computer program may not prevent, by relying on the licensing agreement, the person who has obtained that licence from determining the ideas and principles which underlie all the elements of that program in the case where that person carries out acts which that licence permits him to perform and the acts of loading and running necessary for the use of the computer program, and on condition that that person does not infringe the exclusive rights of the owner in that program.
…
[61] It must therefore be held that the copyright in a computer program cannot be infringed where, as in the present case, the lawful acquirer of the licence did not have access to the source code of the computer program to which that licence relates, but merely studied, observed and tested that program in order to reproduce its functionality in a second program.
Similar issues are being raised in the ongoing litigation between Google and Oracle over the copyright protection of the Java programming language and specifically the structure and organization of the Java API.