Looking for breakthrough ideas for innovation challenges? Try Patsnap Eureka!

Intermediate language support for change resilience

A technology of intermediate language code and useless information, applied in the field of intermediate language support, can solve the problems of vulnerability solution changes, vulnerability reduction, software reliability decline, etc.

Inactive Publication Date: 2011-10-19
MICROSOFT TECH LICENSING LLC
View PDF3 Cites 10 Cited by
  • Summary
  • Abstract
  • Description
  • Claims
  • Application Information

AI Technical Summary

Problems solved by technology

That is, apparently small changes to components, to runtime support, or to input data may result in a large decrease in software reliability
software vulnerabilities can be caused by a wide variety of factors, and proposed solutions to vulnerabilities vary greatly
Furthermore, attempts to reduce vulnerability may conflict with other efforts, such as efforts to make a piece of software faster, use hardware more efficiently, be more compact, be easier to modify, and / or be easier to debug

Method used

the structure of the environmentally friendly knitted fabric provided by the present invention; figure 2 Flow chart of the yarn wrapping machine for environmentally friendly knitted fabrics and storage devices; image 3 Is the parameter map of the yarn covering machine
View more

Image

Smart Image Click on the blue labels to locate them in the text.
Viewing Examples
Smart Image
  • Intermediate language support for change resilience
  • Intermediate language support for change resilience
  • Intermediate language support for change resilience

Examples

Experimental program
Comparison scheme
Effect test

Embodiment Construction

[0012] overview

[0013] Certain software development methodologies include generating intermediate code from source code. Various intermediate codes exist, which have various characteristics. Certain technologies deploy JIT-compiled ("just-in-time" compiled) intermediate code. Typically, such intermediate code targets an abstract stack machine. In particular, mapping the abstract machine onto a tangible machine using actual hardware registers involves allocation of the machine's registers. Efficient register allocation is often a design criterion for JIT compilation, or indeed any compilation that produces machine language. However, acceptable register allocation schemes can be complex, making them relatively difficult to implement and making them a relatively large part of compilation in terms of time and other computational resources. JIT compilation can also perform machine-independent optimizations, which further complicates the translation from intermediate code to m...

the structure of the environmentally friendly knitted fabric provided by the present invention; figure 2 Flow chart of the yarn wrapping machine for environmentally friendly knitted fabrics and storage devices; image 3 Is the parameter map of the yarn covering machine
Login to View More

PUM

No PUM Login to View More

Abstract

In a change-resilient intermediate language code, registers have been allocated but symbolic references and pseudo instructions still use unbound items. Pseudo instructions having a specific location within generated intermediate language code request insertion of machine instruction(s) at the location to perform specified operations. Specified operations may include, for example, operations to perform or facilitate garbage collection, memory allocation, exception handling, various kinds of method calls and execution engine service calls, managed object field access, heap management, generic code, static variable storage access, address mode modification, and / or symbolic reference to types. A binder may transform the intermediate language code into executable code. Little or no register allocation is needed during binding, but unbound items such as offsets, sizes, slots, and the like are determined and specified to produce executable code.

Description

technical field [0001] The present invention relates to intermediate language support for changing resiliency. Background technique [0002] In software, the fragile binary interface problem (also known as the fragile base class problem) can exist when internal changes to the underlying class library cause descendant libraries or programs to incorrectly stop working. The problem occurs when a compiler for an object-oriented language generates code that accesses a field of an object using an offset from the object's starting point to the field of interest. If the library's author changes the size or layout of a public field within an object, the offset will change, and thus software that relies on previous offsets becomes unreliable. [0003] More generally, software sometimes exhibits vulnerabilities over time and as changes occur in the software and / or its environment. That is, apparently small changes to components, to runtime support, or to input data can result in larg...

Claims

the structure of the environmentally friendly knitted fabric provided by the present invention; figure 2 Flow chart of the yarn wrapping machine for environmentally friendly knitted fabrics and storage devices; image 3 Is the parameter map of the yarn covering machine
Login to View More

Application Information

Patent Timeline
no application Login to View More
IPC IPC(8): G06F9/44G06F9/45
CPCG06F9/44G06F9/45516
Inventor P·F·V·索利趣
Owner MICROSOFT TECH LICENSING LLC
Who we serve
  • R&D Engineer
  • R&D Manager
  • IP Professional
Why Patsnap Eureka
  • Industry Leading Data Capabilities
  • Powerful AI technology
  • Patent DNA Extraction
Social media
Patsnap Eureka Blog
Learn More
PatSnap group products