1. Two types of source code: Declaring and implementing

The district court distinguished the two types of source code at issue: declaring (header) and implementing (instructions for processing declared function). The former are used to instruct the computer to execute the latter; in a way, declarations can be seen as the program's grammar rules, while instructions are the coding equivalent of syntax. The 37 Java APIs were declarations that Google copied verbatim in Android; Google claimed it did so as a convenience to developers who were already familiar with the APIs from their use of Java. The other 131 APIs in Android were developed by Google from scratch. The rangeCheck function and the eight decompiled security files were the only implementing code in Android that Google did not write itself and instead copied from Java. (Id. at 1349-52.)

Along with the 37 Java APIs, Google copied the "elaborately organized taxonomy of all the names of methods, classes, interfaces, and packages," including more than 600 classes and 6,000 methods. (Id. at 1351, citing Oracle America, Inc. v. Google Inc., supra, 872 F.Supp.2d, at 983.) The taxonomy was referred to as the "structure, sequence, and organization" or "SSO" of the 37 APIs. (Ibid.)