# US 2021/0173658 A1 · High-level programming language which utilizes virtual memory

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

- Number: US 2021/0173658 A1
- Document ID: US20210173658A1
- Status: Published application
- Kind: A1
- Application number: 17/112,072
- Filed: 2020-12-04
- Published: 2021-06-10
- Earliest claimed: 2019-12-06
- Assignees: Rankin Labs, LLC
- Inventors: John Rankin
- Web page: https://patentgrep.com/patent/US20210173658A1

## CPC

- G06F 8/441: {Register allocation; Assignment of physical memory space to logical memory space}
- G06F 9/3836: {Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution}
- G06F 8/31: {Programming languages or programming paradigms}
- G06F 8/41: Compilation
- G06F 9/3013: {according to data content, e.g. floating-point registers, address registers}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems and methods for utilizing virtual memory with a high-level programming language are provided. Multiple address spaces are created in virtual memory, wherein each of the multiple address spaces include data entries, each of which have a value. A machine executable software program is operated which utilizes each of said multiple address spaces. At least a first one of the address spaces is independent from at least a second one of said address spaces, and at least a third one of the address spaces is electronically associated with at least a fourth one of the address spaces.

## Claims

### Claim 1

A method for utilizing virtual memory with a high-level programming language, said method comprising the steps of:
creating multiple address spaces in virtual memory, wherein:
each of said multiple address spaces comprises data entries;
each of said data entries comprises a value;
at least a first one of said multiple address spaces is independent from at least a second one of said multiple address spaces; and
at least a third one of said multiple address spaces is electronically associated with at least a fourth one of said multiple address spaces; and
operating a machine executable software program which utilizes each of said multiple address spaces.

### Claim 2 (depends on 1)

The method of claim 1 wherein:
said first one of said multiple address spaces is independent from said second one of said multiple address spaces by having values in each of the data entries of said first one of said multiple address spaces that are different from, and do not reference, the values of corresponding data entries of said second one of said multiple address spaces.

### Claim 3 (depends on 2)

The method of claim 2 wherein:
each of said multiple address spaces is independent from each other one of said multiple address spaces.

### Claim 4 (depends on 1)

The method of claim 1 wherein:
said third one of said multiple address spaces is electronically associated with said fourth one of said multiple address spaces by having at least one data entry in said third one of said multiple address spaces that references the value of a corresponding data entry of said fourth one of said multiple address spaces.

### Claim 5 (depends on 4)

The method of claim 4 wherein:
each of said multiple address spaces has at least one data entry that is electronically associated with a corresponding data entry of at least one other one of said multiple address spaces.

### Claim 6 (depends on 1)

The method of claim 1 further comprising the steps of:
creating a new address space electronically associated with a given one of said multiple address spaces, wherein said new address space comprises data entries having values referencing the values of the data entries of said given one of said multiple address spaces except for a particular one of the data entries of said new address space which comprises a new value different from, and not referencing, the value of a corresponding one of the data entries of said given one of said multiple address spaces.

### Claim 7 (depends on 6)

The method of claim 6 further comprising the steps of:
changing the value of a given one of the data entries of said given one of said multiple address spaces to a changed value, wherein said given one of said data entries is not said corresponding one of said data entries of said given one of said multiple address spaces; and
updating a corresponding one of the data entries of said new address space to said changed value, wherein operation of said machine executable software program is configured to utilize said new address space and said multiple address spaces.

### Claim 8 (depends on 1)

The method of claim 1 further comprising the steps of:
creating a new address space electronically associated with a given one of said multiple address spaces, wherein said new address space comprises data entries having values referencing the values of the data entries of said given one of said multiple address space, and wherein said new address spaces comprises an additional data entry not found in said given one of said multiple address spaces having an additional value.

### Claim 9 (depends on 8)

The method of claim 8 further comprising the steps of:
changing the value of a given one of the data entries of said given one of said multiple address spaces to a changed value; and
updating a corresponding one of the data entries of said new address space with said changed value, where said corresponding one of said data entries is not said additional data entry, and wherein operation of said machine executable software program is configured to utilize said new address space and said multiple address spaces.

### Claim 10 (depends on 1)

The method of claim 1 wherein:
the value of a given data entry of a given one of the multiple address spaces is different from the value of a corresponding one of the data entries of each remaining ones of the multiple address spaces.

### Claim 11 (depends on 1)

The method of claim 1 wherein:
the value of a given data entry of a given one of the multiple address spaces is the same as the value of a corresponding one of the data entries of each remaining ones of the multiple address spaces.

### Claim 12 (depends on 1)

The method of claim 1 wherein:
the value of a given one of the data entries of a given one of said multiple address spaces comprises a reference to the value of a particular one of the data entries of a particular one of said multiple address spaces; and
operation of said machine executable software program comprises the sub-steps of referencing the value of the particular one of the data entries of the particular one of said multiple address spaces upon attempted retrieval of the value of the given data entry of the given one of said multiple address spaces.

### Claim 13 (depends on 12)

The method of claim 12 wherein:
operation of said machine executable software program comprises the sub-steps of comparing the value of the particular one of the data entries of the particular one of said multiple address spaces with the value of the given data entry of the given one of said multiple address spaces.

### Claim 14 (depends on 12)

The method of claim 12 further comprising the steps of:
operating a second machine executable software program in parallel with said machine executable software program, wherein said second machine executable software program utilizes at least a subset of said multiple address spaces.

### Claim 15

A system for utilizing virtual memory with a high-level programming language, said system comprising:
one or more computing devices configured to utilize virtual memory and comprising software instructions, which when executed, configure the one or more computing devices to:
create multiple address spaces in said virtual memory;
populate data entries of each of said multiple address spaces with values, wherein one or more of the data entries of one or more of said multiple address spaces comprises a reference to the value of a given one of the data entries of a given one of said multiple address spaces;
change the value of the given one of the data entries of the given one of said multiple address spaces;
automatically update the value of each of the one or more of the data entries of the one or more of the multiple address spaces comprising the reference to the value of the given one of the data entries of the given one of said multiple address spaces such that the value of remaining ones of said data entries of said multiple address spaces remain unchanged.

### Claim 16 (depends on 15)

The system of claim 15 further comprising:
additional software instructions stored at the one or more computing devices which when executed configure the one or more computing devices to:
create a new address space electronically associated with a particular one of said multiple address spaces, wherein said new address space comprises data entries having values referencing the values of the data entries of said particular one of said multiple address space except for a particular one of the data entries of said new address space which comprises a new value different from, and not referencing, the value of a corresponding one of the data entries of said particular one of said multiple address spaces;
change the value of a second particular one of the data entries of said particular one of said multiple address spaces to a changed value, wherein said second particular one of said data entries is not said corresponding one of said data entries of said particular one of said multiple address spaces;
update a corresponding one of the data entries of said new address space to said changed value, wherein said corresponding one of the data entries of said new address space comprises a reference to the value of said second particular one of the data entries of said particular one of said multiple address spaces;
create a second new address space electronically associated with said particular one of said multiple address spaces, wherein said second new address space comprises data entries having values referencing the values of the data entries of said particular one of said multiple address space, and wherein said second new address spaces comprises an additional data entry not found in said particular one of said multiple address spaces having an additional value;
change the value of a third particular one of the data entries of said particular one of said multiple address spaces to a second changed value;
update a corresponding one of the data entries of said second new address space with said second changed value, where said corresponding one of said data entries is not said additional data entry, and wherein said corresponding one of said data entries comprises a reference to said third particular one of said data entries of said particular one of said multiple address spaces; and
operate a machine executable software program which utilizes each of said multiple address spaces, said first new address space, and said second new address space.

### Claim 17 (depends on 16)

The system of claim 16 further comprising:
additional software instructions stored at the one or more computing devices which when executed configure the one or more computing devices to operate a second machine executable software program in parallel with said machine executable software program, wherein said second machine executable software program utilizes at least a subset of said multiple address spaces, said first new address space, and said second new address space.

### Claim 18 (depends on 17)

The system of claim 17 further comprising:
additional software instructions stored at the one or more computing devices which when executed configure the one or more computing devices to reference the value of a certain one of the data entries of a certain one of said multiple address spaces upon attempted retrieval of the value of a different one of the data entries of a different one of said multiple address spaces, wherein the value of the different one of the data entries of the different one of said multiple address spaces comprises a reference to the value of the certain one of the data entries of the certain one of said multiple address spaces.

### Claim 19

A method for utilizing virtual memory with a high-level programming language, said method comprising the steps of:
creating multiple address spaces in virtual memory, wherein each of said multiple address spaces comprises data entries, and wherein each of said data entries comprises a value;
creating a new address space electronically associated with a given one of said multiple address spaces, wherein said new address space comprises data entries having values referencing the values of the data entries of said given one of said multiple address spaces except for a particular one of the data entries of said new address space which comprises a new value different from, and not referencing, the value of a corresponding one of the data entries of said given one of said multiple address spaces;
changing the value of a given one of the data entries of said given one of said multiple address spaces to a changed value, wherein said given one of said data entries is not said corresponding one of said data entries of said given one of said multiple address spaces;
updating a corresponding one of the data entries of said new address space to said changed value by reference;
creating a second new address space electronically associated with a second given one of said multiple address spaces, wherein said second new address space comprises data entries having values referencing the values of the data entries of said second given one of said multiple address spaces, and wherein said second new address space comprises an additional data entry not found in said second given one of said multiple address spaces having an additional value;
changing the value of a given one of the data entries of said second given one of said multiple address spaces to a second changed value;
updating a corresponding one of the data entries of said second new address space with said second changed value by reference, where said corresponding one of said data entries is not said additional data entry; and
operating a machine executable software program which utilizes each of said multiple address spaces, said first new address space, and said second new address space, wherein the value of a certain one of the data entries of a certain one of said multiple address spaces comprises a reference to the value of a different one of the data entries of a different one of said multiple address spaces, and wherein operation of said machine executable software program comprises the sub-steps of referencing the value of the different one of the data entries of the different one of said multiple address spaces upon attempted retrieval of the value of the certain one of the data entries of the certain one of said multiple address spaces;
wherein at least a first one of said multiple address spaces is independent from at least a second one of said multiple address spaces, and at least a third one of said multiple address spaces is electronically associated with at least a fourth one of said multiple address spaces.

### Claim 20 (depends on 19)

The method of claim 19 further comprising the steps of:
operating a second machine executable software program in parallel with said machine executable software program, wherein said second machine executable software program utilizes at least a subset of said multiple address spaces, said first new address space, and said second new address space.
