IP Library Patent Application 12242691
Patent Application
App. No. 12/242,691

Binary manipulation of intermediate-language code

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
12/242,691
Abstract

One or more embodiments, described herein, are directed towards a technology for performing transformations and/or modifications to managed byte code. In order to perform the transformations and/or modifications, a mutable programmable representation (MPR) is laid out. A programmer then performs an arbitrary adjustment using the MPR.

Claims (35)

1 . One or more computer-readable storage media encoded with computer-executable instructions, that when executed by a processor of a computing device, configure the computing device to perform acts comprising:

obtaining managed byte code, wherein the managed byte code is a highly normalized, static representation of one or more valid managed assemblies;

constructing the managed byte code into a mutable programmable representation organized as a hierarchal object model that is completely faithful to the managed byte code;

receiving one or more arbitrary adjustments to the mutable programmable representation, wherein the one or more arbitrary adjustments are:

provided by a programmer; and

focused on a particular set of transformational tasks;

producing a new mutable programmable representation in response to the one or more arbitrary adjustments to the mutable programmable representation, wherein the new mutable programmable representation incorporates the one or more arbitrary adjustments; and

reconstructing modified managed byte code from the new mutable programmable representation, wherein the modified managed byte code is output in one or more assemblies.

2 . A method comprising:

obtaining managed byte code;

constructing the managed byte code into a mutable programmable representation (MPR); and

receiving one or more arbitrary adjustments to the MPR.

3 . A method as recited by claim 2 further comprising producing a new MPR in response to the receiving of one or more arbitrary adjustments to the MPR.

4 . A method as recited by claim 3 , wherein the new MPR incorporates a representation of the one or more arbitrary adjustments.

5 . A method as recited by claim 3 , further comprising re-constructing modified managed byte code from the new MPR, wherein the modified managed byte code is output in one or more assemblies.

6 . A method as recited by claim 2 , wherein the constructing and the receiving re-programs the managed byte code without access to a compile-time environment.

7 . A method as recited by claim 2 , wherein the one or more arbitrary adjustments are not automatically performed.

8 . A method as recited by claim 2 , wherein the MPR is organized as a hierarchal object model that is completely faithful to every element of the managed byte code.

9 . A method as recited by claim 2 further comprising utilizing an extensible mechanism to perform the one or more arbitrary adjustments.

10 . A method as recited by claim 2 , wherein the one or more arbitrary adjustments are selected by a user.

11 . A method as recited by claim 10 , where the one or more arbitrary adjustments are selected from a plurality of arbitrary adjustments, the plurality of arbitrary adjustments corresponding to common programming transformational tasks.

12 . A system comprising:

at least one processor; and

one or more computer-readable storage media, operatively coupled to the at least one processor, the one or more computer-readable storage media storing computer-executable instructions that, when executed, configure the system to perform actions comprising:

obtaining managed byte code;

constructing the managed byte code into a mutable programmable representation (MPR); and

receiving one or more arbitrary adjustments to the MPR.

13 . A system as recited by claim 12 , wherein the computer-executable instructions further configure the system to produce a new MPR in response to the receiving of one or more arbitrary adjustments to the MPR.

14 . A system as recited by claim 13 , wherein the new MPR incorporates a representation of the one or more arbitrary adjustments.

15 . A system as recited by claim 12 , wherein the computer-executable instructions further configure the system to re-construct modified managed byte code from the new MPR, wherein the modified managed byte code is output in one or more assemblies.

16 . A system as recited by claim 12 , wherein the one or more arbitrary adjustments are not automatically performed.

17 . A system as recited by claim 12 , wherein the MPR is organized as a hierarchal object model that is completely faithful to every element of the managed byte code.

18 . A system as recited by claim 2 , wherein the constructing and the receiving re-programs the managed byte code without access to a compile-time environment.

19 . A system as recited by claim 12 , wherein the one or more arbitrary adjustments are selected by a user.

20 . A system as recited by claim 19 , where the one or more arbitrary adjustments are selected from a plurality of arbitrary adjustments, the plurality of arbitrary adjustments corresponding to common programming transformational tasks.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2015
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034766/0509 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 16, 2008
From: BARNETT, MICHAEL; FANNING, MICHAEL C.; GRUNKEMEYER, BRIAN M.
To: MICROSOFT CORPORATION
Reel/Frame 021987/0112 →