Flow-based scoping
US-2018293058-A1 · Oct 11, 2018 · US
US11836552B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11836552-B2 |
| Application number | US-202217571379-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jan 7, 2022 |
| Priority date | Mar 19, 2021 |
| Publication date | Dec 5, 2023 |
| Grant date | Dec 5, 2023 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A type restriction contextually modifies an existing type descriptor. The type restriction is imposed on a data structure to restrict the values that are assumable by the data structure. The type restriction does not cancel or otherwise override the effect of the existing type descriptor on the data structure. Rather the type restriction may declare that a value of the data structure's type is forbidden for the data structure. Additionally or alternatively, the type restriction may declare that an element count allowable for a data structure's type is forbidden for the data structure. Type restriction allows optionality (where only a singleton value for a data structure is allowed), empty sets (where no value for a data structure is allowed), and multiplicity (where only a limited element count for a data structure) to be injected into a code set independent of data type. Type restriction allows certain optimizations to be performed.
Opening claim text (preview).
What is claimed is: 1. One or more non-transitory computer readable storage media storing instructions which, when executed by one or more hardware processors, cause: identifying, by a runtime environment, a first command to create a first data structure within a first context; determining, by the runtime environment, that the first data structure is of an aggregate type; determining, by the runtime environment, that the first context is associated with a type restriction restricting the first data structure to a specific element count; wherein an element count other than the specific element count is valid for the aggregate type; based on the type restriction restricting the first data structure to the specific element count: determining, by the runtime environment, that no memory space of the first data structure stores a first actual element count of the first data structure; creating the first data structure, by the runtime environment, wherein creating the first data structure comprises allocating a first memory space to the first data structure, without allocating any memory space for storing the first actual element count of the first data structure. 2. The media of claim 1 , wherein the first memory space allocated to the first data structure stores information indicating that the type restriction applies to the first data structure. 3. The media of claim 1 , wherein the first memory space allocated to the first data structure is located within one of: an operand stack, a local variable structure, or a heap. 4. The media of claim 1 , wherein: the first data structure comprises a field of an object; and creating the first data structure is performed as part of creating the object. 5. The media of claim 1 , storing the instructions which further cause: identifying a second command to create a second data structure within a different context; determining that the second data structure is of the aggregate type; wherein the different context is not associated with the type restriction restricting the second data structure to any specific element count; creating the second data structure, wherein creating the second data structure comprises allocating a second memory space of a non-zero memory size for storing a second actual element count of the second data structure. 6. The media of claim 5 , storing the instructions which further cause: the first data structure comprises a field of a first object and the second data structure comprises the field of a second object; and a descriptor of the field indicates that the field is of a particular type. 7. The media of claim 5 , wherein: the first data structure comprises one of a method parameter or method return value of a method during a first execution of the method and the second data structure comprises one of the method parameter or method return value of the method during a second execution of the method; a descriptor of the method indicates that one of the method parameter or method return value of the method is of a particular type. 8. The media of claim 5 , wherein: a first set of one or more operands of the first command indicates the first context; and no operand of the second command indicates the first context. 9. One or more non-transitory computer readable storage media storing instructions which, when executed by one or more hardware processors, cause: identifying, by a runtime environment, a first command to perform at least one of: (a) create a first data structure within a first context, or (b) access the first data structure within the first context; determining, by the runtime environment, that the first data structure is of an aggregate type; determining, by the runtime environment, that the first context is associated with a type restriction restricting the first data structure to a maximum element count; wherein an element count greater than the maximum element count is valid for the aggregate type; based on the type restriction restricting the first data structure to the maximum element count: determining, by the runtime environment, a total memory size for the maximum element count of a first set of elements of the first data structure; determining, by the runtime environment, whether the first set of elements of the first data structure should be inlined into the first data structure based on the total memory size; responsive to determining that the first set of elements of the first data structure should be inlined into the first data structure: performing, by the runtime environment, at least one of creating or accessing the first data structure based on an inlined memory structure. 10. The one or more media of claim 9 , wherein a memory space allocated to the first data structure is located within one of: an operand stack, a local variable structure, or a heap. 11. The media of claim 9 , wherein: the first data structure comprises a field of an object; and creating the first data structure is performed as part of creating the object. 12. The one or more media of claim 9 , wherein: determining the total memory size for the maximum element count of the first set of elements of the first data structure comprises: determining an individual memory size for each of the first set of elements based on one or more of: a first type of the first set of elements and a first type restriction on the first set of elements; and determining a product of the individual memory size and the maximum element count as the total memory size. 13. The one or more media of claim 9 , wherein: determining whether the first set of elements of the first data structure should be inlined into the first data structure based on the total memory size comprises: determining whether the total memory size is equal to or less than a reference memory size of references; and the first set of elements of the first data structure should be inlined into the first data structure if the total memory size is equal to or less than the reference memory size, and the first set of elements of the first data structure should not be inlined into the first data structure if the total memory size is not equal to or less than the reference memory size. 14. The one or more media of claim 9 , wherein: creating or accessing the first data structure based on the inlined memory structure comprises one of: allocating a memory space of the total memory size for storing the first set of elements of the first data structure; accessing the first data structure based on the total memory size of the memory space of the second data structure that stores the first set of elements of the first data structure. 15. The one or more media of claim 9 , storing the instructions which further cause: identifying a portion of a memory space allocated to the first data structure that corresponds to an element of the first data structure; performing one of: writing a data value for the element of the first data structure to the portion of the memory space allocated to the first data structure; or reading the data value for the element of the first data structure from the portion of the memory space allocated to the first data structure. 16. The one or more media of claim 15 , wherein writing the data value to the portion of the memory space allocated to the first data structure is performed as part of initiating the first data structure. 17. The one or more media of claim 9 , storing the instructions which further cause: identifying a second command to perform at least one of: (a) create a second data structure withi
Related publications grouped by family.
Answers are generated from the same data shown on this page.