# US 2018/0024844 A1 · Structural Identification of Dynamically-Generated, Pattern-Based Classes

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2018/0024844 A1
- Document ID: US20180024844A1
- Status: Published application
- Kind: A1
- Application number: 15/714,836
- Filed: 2017-09-25
- Published: 2018-01-25
- Earliest claimed: 2014-04-22
- Assignees: Oracle International Corporation
- Applicants: Oracle International Corporation
- Inventors: Brian Goetz; John R. Rose
- Web page: https://patentgrep.com/patent/US20180024844A1

## CPC

- G06F 9/4492: {Inheritance}
- G06F 8/24: {Object-oriented}
- G06F 8/315: {Object-oriented languages}
- G06F 8/41: Compilation
- G06F 8/437: {Type checking}
- G06F 8/443: {Optimisation}
- G06F 8/447: {Target code generation}
- G06F 8/70: Software maintenance or management
- G06F 8/71: Version control (security arrangements therefor G06F21/57); Configuration management
- G06F 8/76: Adapting program code to run in a different environment; Porting
- G06F 9/44521: {Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading}
- G06F 9/4488: {Object-oriented}
- G06F 9/449: {Object-oriented method invocation or resolution}
- G06F 9/4498: {Finite state machines}
- G06F 9/45516: {Runtime code conversion or optimisation}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Structural identification of dynamically generated, pattern-instantiation classes may be utilized using structural descriptions. Instead of describing classes only by name, and using that name to locate that class, a class may be referred to by a generator function and arguments to the generator function. A structural description may specify the generator function and the parameters. In addition, a structural description of a class may be used as a parameter to a generator function specified by another structural description. A structural description may be used similarly to a class name for virtually any situation in which a class name may be used. Classes may be compared using their structural descriptions. For example, two structural descriptions may be considered to be the same class if they specify the same generator function and parameters.

## Claims

### Claim at position 1

-20. (canceled)

### Claim 21

A non-transitory, computer-readable storage medium storing program instructions that when executed on a computing device cause the computing device to perform:
encoding information identifying a generator function and one or more parameters as a structural description identifying a new class, wherein the generator function is configured to generate the new class according to the one or more parameters;
executing the generator function identified by the structural description using the one or more parameters identified by the structural description as input to the generator function to generate the new class; and
applying the structural description including the encoded information identifying the generator function and the one or more parameters as a class name for the new class during loading and execution of the new class in a runtime environment.

### Claim 22 (depends on 21)

The non-transitory, computer-readable storage medium of claim 21, wherein said executing is performed at compile time by a compiler of a platform independent, object oriented language.

### Claim 23 (depends on 21)

The non-transitory, computer-readable storage medium of claim 21, wherein said executing is performed at runtime of a platform independent, object oriented runtime environment.

### Claim 24 (depends on 21)

The non-transitory, computer-readable storage medium of claim 21, wherein said executing comprises loading the generator function from a runtime library.

### Claim 25 (depends on 21)

The non-transitory, computer-readable storage medium of claim 21, wherein one of the one or more parameters comprises another structural description, wherein the other structural description comprises information identifying another generator function and one or more other parameters for the other generator function, wherein said executing further comprises:
executing the other generator function, wherein said executing the other generator function comprises providing the one or more other parameters as input to the other generator function; and
providing results from said executing the other generator function as input to the generator function.

### Claim 26 (depends on 21)

The non-transitory, computer-readable storage medium of claim 21, wherein the generator function includes a specializer function to be applied to at least one of the one or more parameters, and wherein said executing the generator function further comprises applying the specializer function to the at least one parameter.

### Claim 27 (depends on 21)

The non-transitory, computer-readable storage medium of claim 21, further comprising:
identifying another structural description, wherein the other structural description comprises information identifying another generator function and one or more other parameters for the other generator function; and
determining whether the structural description and the other structural description represent two equivalent classes based, at least in part, on a comparison between the structural description and the other structural description and a comparison between the one or more parameters and the one or more other parameters.

### Claim 28

A method, comprising:
encoding information identifying a generator function and one or more parameters as a structural description identifying a new class, wherein the generator function is configured to generate the new class according to the one or more parameters;
executing the generator function identified by the structural description using the one or more parameters identified by the structural description as input to the generator function to generate the new class; and
applying the structural description including the encoded information identifying the generator function and the one or more parameters as a class name for the new class during loading and execution of the new class in a runtime environment.

### Claim 29 (depends on 28)

The method of claim 28, wherein said executing is performed at compile time by a compiler, and wherein the class file is based on a platform independent, object oriented language.

### Claim 30 (depends on 28)

The method of claim 28, wherein said executing is performed at runtime of a platform independent, object oriented runtime environment.

### Claim 31 (depends on 28)

The method of claim 28, wherein said executing comprises loading the generator function from a runtime library.

### Claim 32 (depends on 28)

The method of claim 28, wherein one of the one or more parameters comprises another structural description, wherein the other structural description comprises information identifying another generator function and one or more other parameters for the other generator function, wherein said executing further comprises:
executing the other generator function, wherein said executing the other generator function comprises providing the one or more other parameters as input to the other generator function; and
providing results from said executing the other generator function as input to the generator function.

### Claim 33 (depends on 28)

The method of claim 28, wherein the generator function includes a specializer function to be applied to at least one of the one or more parameters, and wherein said executing the generator function comprises applying the specializer function to the at least one parameter.

### Claim 34 (depends on 28)

The method of claim 28, further comprising:
identifying another structural description, wherein the other structural description comprises information identifying another generator function and one or more other parameters for the other generator function; and
determining whether the structural description and the other structural description represent two equivalent classes based, at least in part, on a comparison between the structural description and the other structural description and a comparison between the one or more parameters and the one or more other parameters.

### Claim 35

A computing device, comprising:
a processor; and
a memory comprising program instructions, that when executed on the processor cause the processor to:
identify, in a class file, a class name comprising a structural description, wherein the structural description comprises information identifying a generator function and one or more parameters for the generator function;
execute the generator function, wherein to execute the generator function the program instructions further cause the processor to provide the one or more parameters as input to the generator function; and
generate, based at least in part on results from executing the generator function, a class corresponding to the class name.

### Claim 36 (depends on 35)

The computing device of claim 35, wherein the program instructions are executable on the processor to implement a compiler for a platform independent, object oriented language, wherein the compiler is configured to perform said executing at compile time.

### Claim 37 (depends on 35)

The computing device of claim 35, wherein the program instructions are executable on the processor to implement a platform independent, object oriented runtime environment, wherein said executing is performed at runtime of the platform independent, object oriented runtime environment.

### Claim 38 (depends on 35)

The computing device of claim 35, wherein one of the one or more parameters comprises another structural description, wherein the other structural description comprises information identifying another generator function and one or more other parameters for the other generator function, wherein to execute the generator function, the program instructions further cause the processor to:
execute the other generator function, wherein to execute the other generator function, the program instructions further cause the processor to provide the one or more other parameters as input to the other generator function; and
provide results from said executing the other generator function as input to the generator function.

### Claim 39 (depends on 35)

The computing device of claim 35, wherein the generator function includes a specializer function to be applied to at least one of the one or more parameters, and wherein to execute the generator function, the program instructions further cause the processor to apply the specializer function to the at least one parameter.

### Claim 40 (depends on 35)

The computing device of claim 35, wherein the program instruction further cause the processor to:
identify another structural description, wherein the other structural description comprises information identifying another generator function and one or more other parameters for the other generator function; and
determine whether the structural description and the other structural description represent two equivalent classes based, at least in part, on a comparison between the structural description and the other structural description and a comparison between the one or more parameters and the one or more other parameters.
