The European Patent Office refused to grant a software patent for programming language constructs. Here are the practical takeaways from the decision T   0790/14 (Programming language construct/MATHWORKS) of Technical Board of Appeal 3.5.06:

Key takeaways

For programming language constructs, it is impossible to show a technical effect (like an accelerated execution of a corresponding program).

Thus, a language construct cannot contribute to inventive step.

The invention

The application relates to the definition of a specific parallel SPMD programming language construct, including the way it is supposed to be executed on a parallel computer system. The language construct provides the possibility to transfer variables to labs. According to an embodiment, if the variable being transferred from the client to the labs is a distributed array, then the variable may be automatically re-distributed to all labs. If the variable being transferred from the client is a non-distributed array, then the variable may be replicated on all labs. If the variable being transferred from the labs to the client is a replicated array, then a replicated value may be received from any of labs.

Fig. 8 of WO 2009/143068
Fig. 8 of WO 2009/143068
  • Claim 1 (main request)

Is it patentable?

As outlined in several other decisions, the Board ruled that programming language constructs are even more abstract than programs which are as such excluded from patentability. Moreover, programming language constructs have the intrinsic aim of enabling and easing the work of a  programmer which itself lacks technical character:

2.2 However, programming language constructs are even more abstract than programs which are as such excluded from patentability. Furthermore, programming is a mental act, and programming language constructs have the intrinsic aim of enabling and easing the work of a programmer which itself lacks technical character (see T423/11, 3.9-3.12 and T1539/09, 4.).

Therefore, the design and the definition of programming language constructs is not considered to contribute to the technical character of claimed subject-matter and thus cannot establish the presence of an inventive step:

2.3 Therefore, the design and the definition of programming language constructs (including the operational semantics, the data flow, the error handling and side effects) is not considered to contribute to the technical character of claimed subject-matter and thus cannot establish the presence of an inventive step. In the present case, the claimed method merely represents the operational definition of the SPMD command.

The applicant argued that the computer-implemented method as claimed provides an efficient and flexible way for allocating resources. Moreover the claimed method allegedly minimizes data transfer via the use of a remote reference. However, according to the Board, a computer-implemented method for executing a program might produce a technical effect while it executes a program, for example if the new method executes the program faster than a prior art method. To show this effect, the new method would have to execute the same program as the prior art method:

2.5 The board agrees with the appellant that, in contrast to a mere (non-technical) definition of a programming language construct, a computer-implemented method for executing a program might produce a technical effect while it executes a program, for example if the new method executes the program faster than a prior art method, or if less data transfer is needed during execution (as is stated in the letter dated 29 August 2017, page 7, second paragraph; for the prior art method see the paragraph bridging pages 7 and 8). However, this effect can only be produced if the new method executes the same program as the prior art method.

Thus, the program containig the SPMD command would have to be rewritten to perform the same method as first program which does not comprise the new language construct:

2.6  In the present case, a second program containing the new programming language construct (“SPMD command”) would have to be written by a human programmer to perform exactly the same function (i.e. having the same input-output-behaviour) as a first program which does not contain the new construct and can be executed by the prior art executing method.

However, a technial effect cannot be established if the programming language accepeted by each of the two execution methods is different, which is the case if one of them contains at least new command:

2.8  Therefore, no technical effect is achieved by a new execution method with respect to an existing execution method, if the programming language accepted by each of the two execution methods is different. This is the case if the new programming language contains at least one new command.

Therefore, in the case of new programming language constructs, the Board is of the opinion that the required comparision is impossible. Thus, no technical effect can be shown for a new language construct, rendering it non-technical.

More information

You can read the whole decision here: T   0790/14 (Programming language construct/MATHWORKS) of January 12, 2018

Please share this article if you enjoyed it!