Runtime system

US9563487B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9563487-B2
Application numberUS-201414298679-A
CountryUS
Kind codeB2
Filing dateJun 6, 2014
Priority dateAug 11, 2011
Publication dateFeb 7, 2017
Grant dateFeb 7, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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.

Assignees

Inventors

Classifications

  • G06F8/51Primary

    Source to source · CPC title

  • Program documentation · CPC title

  • Adapting program code to run in a different environment; Porting · CPC title

  • G06F9/541Primary

    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

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9563487B2 cover?
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 …
Who is the assignee on this patent?
Microsoft Corp, Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification G06F8/51. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 07 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).