Assessing quality of code in an open platform environment
US-9110770-B1 · Aug 18, 2015 · US
US9563487B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9563487-B2 |
| Application number | US-201414298679-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jun 6, 2014 |
| Priority date | Aug 11, 2011 |
| Publication date | Feb 7, 2017 |
| Grant date | Feb 7, 2017 |
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.
Various embodiments provide an ability to describe, independent of a programming language, one or more interfaces associated with an operating system. Alternately or additionally, a compiler associated with a specific programming language can be configured to map the independent interface description(s) to the specific programming language. In some embodiments, an application can be configured to programmatically determine one or more interfaces of the operating system.
Opening claim text (preview).
The invention claimed is: 1. A computer-implemented method comprising: programmatically determining, using at least one binary contract that includes machine-level definitions, one or more abstract types associated with one or more available software interfaces, each software interface being described using an abstract type system associated with the one or more abstract types, the abstract type system configured to enable interface descriptions that are independent from specific programming languages, and wherein at least one description of a software interface includes calling parameter type descriptions, wherein programmatically determining the one or more abstract types comprises determining behavior associated with the one or more abstract types; and translating individual determined abstract types to individual respective types associated with at least one specific programming language. 2. The computer-implemented method of claim 1 further comprising obtaining information associated with identifying the one or more available software interfaces by accessing one or more metadata files. 3. The computer-implemented method of claim 2 , wherein the information comprises hierarchical information. 4. The computer-implemented method of claim 2 , the information comprising version information associated with at least one software interface of the one or more software interfaces, data types of individual parameters associated with the at least one interface, and a calling order of the individual parameters associated with the at least one interface. 5. The computer-implemented method of claim 2 , the obtaining information associated with the one or more available software interfaces further comprising obtaining the information via a source code editor program. 6. The computer-implemented method of claim 1 , wherein the binary contract includes one or more function signatures. 7. The computer-implemented method of claim 6 wherein the binary contract includes one or more function names. 8. A device, comprising: at least one processor and a memory; the memory having: one or more metadata files associated with one or more Application Programming Interface (API) modules, the one or more metadata files configured to include at least one description of one or more APIs included in the one or more API modules using an abstract type system to describe programmatic access to the one or more APIs, the at least one description being independent from specific programming languages, the one or more metadata files including calling parameter type descriptions associated with the APIs; one or more Application Binary Interface (ABI) modules configured to include one or more machine-level binary contracts for calling the one or more APIs; and one or more generated language projection modules configured to translate at least one type of the abstract type system to at least one type of one or more specific programming languages. 9. The device of claim 8 wherein the memory includes processor-executable instructions which, responsive to execution by the at least one processor, implement: at least one application configured to programmatically determine at least one interface included in the one or more API modules utilizing the one or more metadata files. 10. The device of claim 8 , wherein the generated language projection module comprising at least one proxy configured to emulate at least one type of the abstract type system in a manner native to the one or more specific programming languages. 11. The device one or more computer-readable storage memories of claim 8 , wherein the binary contract for calling the one or more APIs comprising at least one behavior definition associated with at least one type of the abstract type system. 12. The device of claim 8 , wherein the one or more metadata files are configured to describe an object-oriented class, included in the one or more API modules, in an object-oriented manner. 13. The device of claim 12 , wherein the object-oriented class comprising a file class. 14. The device of claim 8 , wherein the one or more metadata files are configured to include information comprising version information associated with at least one API of the one or more APIs, data types of each parameter associated with at least one API of the one or more APIs, and a calling order of each parameter associated with at least one API of the one or more APIs. 15. A system comprising: at least one processor; and a memory; the at least one processor configured to: describe one or more software interfaces using an abstract type system and a description language, the abstract type system configured to enable descriptions that are independent from specific programming languages, wherein at least one description includes calling parameter type descriptions associated with the one or more software interfaces; generate one or more machine-readable descriptions of the one or more software interfaces based, at least in part, on the abstract type system and description language; define one or more binary contracts associated with the abstract type system, the one or more binary contracts configured to include one or more rules describing behavior associated with at least one type of the abstract type system, the one or more binary contracts comprising machine-level definitions; and translate the abstract type system to one or more specific programming languages based, at least in part, on the one or more binary contracts. 16. The system of claim 15 , the machine-readable descriptions comprising at least one metadata file. 17. The system of claim 15 , the at least one type of the abstract type system comprising a function pointer. 18. The system of claim 15 , the one or more software interfaces comprising at least one object-oriented interface. 19. The system of claim 15 , wherein the at least one processor is further configured to: generate at least one communication proxy associated with the one or more interfaces. 20. The system of claim 15 , the one or more features implemented, at least in part, in software constrained to an implementation following a class factory design pattern.
Source to source · CPC title
Program documentation · CPC title
Adapting program code to run in a different environment; Porting · CPC title
via adapters, e.g. between incompatible applications · CPC title
Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.