Methods, systems and apparatus to optimize sparse matrix applications
US-2016378442-A1 · Dec 29, 2016 · US
US2016357531A1 · US · A1
| Field | Value |
|---|---|
| Publication number | US-2016357531-A1 |
| Application number | US-201615221455-A |
| Country | US |
| Kind code | A1 |
| Filing date | Jul 27, 2016 |
| Priority date | Jun 4, 2015 |
| Publication date | Dec 8, 2016 |
| Grant date | — |
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.
API (application program interface) features defined by a set of APIs provide a different cross-sectional view of an application or framework than the view provided by sectioning along class or library boundaries, or binding units, for example. An API feature includes a proper subset of a library of a framework used by an application, and/or APIs which collectively reside in different libraries. A functionality feature API set provides an exposed surface area of a functionality feature of an application. Upon receiving a compilation request and determining that an API feature is to be excluded, an attempt is made to produce a compiled version of the application without the feature's APIs. In some cases, the functionality feature is independent of a baseline functionality of the application. Developers can obtain smaller but fully functional binaries. Framework architects can identify dependencies between API implementations when creating or modifying a software framework's architecture.
Opening claim text (preview).
What is claimed is: 1 . A process comprising: receiving a request to perform an ahead-of-time (AOT) compilation of at least a portion of an application program; determining that a condition is met for excluding a named group of application program interfaces (APIs) from the AOT compilation, the named group of APIs having a name which identifies a particular functionality, each API in the named group providing a portion of an implementation of the particular functionality that is identified by the name, the named group of APIs cross-cutting at least one object-oriented boundary of the application program; and providing a result of the AOT compilation. 2 . The process of claim 1 , wherein determining that a condition is met for excluding a named group of APIs comprises getting a request from a developer that expressly identifies the named group. 3 . The process of claim 1 , wherein determining that a condition is met for excluding a named group of APIs comprises determining that the named group is excluded by default because a developer has not confirmed that the APIs of the named group are intentionally included. 4 . The process of claim 1 , wherein the particular functionality identified by the name of the named group of APIs includes exactly one of the following: logging, validation, localization, security scanning, serialization support or deserialization support or both. 5 . The process of claim 1 , wherein the named group of APIs cross-cutting at least one object-oriented boundary of the application program comprises the named group of APIs cross-cutting as to at least one of the following: types, libraries, or binding units. 6 . The process of claim 1 , wherein providing a result of the AOT compilation comprises providing at least one of the following: a compiled version of the application program that excludes the entire named group of APIs from the compiled version; a compiled version of the application program that includes one or more APIs of the named group of APIs in the compiled version, together with an error or warning message identifying the included one or more APIs; or an error message identifying one or more APIs of the named group of APIs and indicating that the AOT compilation failed because the application program depends on the one or more APIs. 7 . The process of claim 1 , wherein providing a result of the AOT compilation comprises storing in a symbol table for each of a plurality of symbols the name of the named group of APIs or another identifier which identifies the named group of APIs. 8 . The process of claim 1 , wherein providing a result of the AOT compilation comprises performing tree shaking to exclude at least a portion of the named group of APIs. 9 . A computing device comprising: a processor; a memory in operable communication with the processor; and a compiler which is executable by the processor and which responds to a request for a compilation of at least a portion of an application program by determining that a condition is met for excluding a named group of application program interfaces (APIs) from the compilation and by then providing a result of the compilation, the named group of APIs having a name which identifies a particular functionality, each API in the named group providing a portion of an implementation of the particular functionality that is identified by the name, and the named group of APIs cross-cutting at least one object-oriented boundary of the application program. 10 . The computing device of claim 9 , wherein the compiler comprises at least one of the following: code which is executable by the processor to flag as an error a use in the application program of any item from the named group of APIs; code which is executable by the processor to issue a warning message that an item from an API of the named group of APIs is used in the application program. 11 . The computing device of claim 9 , wherein the particular functionality identified by the name of the named group of APIs includes at least one of the following: logging, validation, localization, administrator alerts, inspection of data without alteration of the data, malware scanning, scanning for a code security vulnerability, collections support, serialization support, deserialization support, debugging support, or reporting on one of the foregoing. 12 . The computing device of claim 9 , wherein the compiler comprises code which is executable by the processor to perform an ahead-of-time compilation of at least a portion of the application program. 13 . The computing device of claim 9 , wherein the compiler comprises code which is executable by the processor to perform a just-in-time compilation of at least a portion of the application program. 14 . The computing device of claim 9 , wherein the compiler comprises code which is executable by the processor to identify a dependency between the named group of APIs and a second named group of APIs, the second named group of APIs having a second name that identifies a second particular functionality. 15 . The computing device of claim 9 , wherein the named group of APIs includes a proper subset of a library used by the application program in an established runtime framework. 16 . The computing device of claim 9 , wherein the compiler comprises code which is executable by the processor to include in the compilation a second named group of APIs in response to a express request which includes the name of the second named group of APIs. 17 . A computing device comprising: a processor; a memory in operable communication with the processor; and a compiler which is executable by the processor and which responds to a request for an ahead-of-time (AOT) compilation of at least a portion of an application program by determining whether an exclusion condition is met for excluding a named group of application program interfaces (APIs) from the AOT compilation and by determining whether an inclusion condition is met for including the named group of APIs in the AOT compilation, and by providing a result of the compilation, the named group of APIs having a name which identifies a particular functionality, each API in the named group providing a portion of an implementation of the particular functionality that is identified by the name, and the named group of APIs including a proper subset of a library that is used by the application program in an established runtime framework. 18 . The computing device of claim 17 , wherein the particular functionality identified by the name of the named group of APIs includes at least one of the following: logging, validation, localization, malware scanning, scanning for a code security vulnerability, serialization support, deserialization support, or debugging support. 19 . The computing device of claim 17 , wherein the compiler comprises code which is executable by the processor to do at least one of the following: report a size of the compiled version of the application program that includes use of an item from the named group of APIs; report a size of an item from an API of the named group of APIs which is used in the application program; or emit a list of names of named groups of APIs which the application program uses. 20 . The computing device of claim 17 , wherein the compiler comprises code which is executable by the processor to do at least one of the following: parse a source code of an API to determine whether an attribute in the source code indicates that the API belongs to the
Detection or removal of dead or redundant code · CPC title
Optimisation · CPC title
Code refactoring · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.