IP Library Granted Patent US 7,992,130
Granted Patent B2
US 7,992,130 · App. 11/745,125 · Granted Aug 2, 2011

Class-based object-oriented features in class-less script language

View Patent ↗
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 7,992,130
App. No.
11/745,125
Granted
Aug 2, 2011
Kind
B2
Abstract

Dynamic dispatch for classes and interfaces is encapsulated in a class-less scripting language. A plurality of mechanisms is employed to facilitate dynamic polymorphism. One or more target-language constructs, such as dictionary objects, prototype objects and/or derived types, are utilized to capture class and interface-method implementations. These constructs are subsequently referenced at runtime to invoke appropriate code.

Claims (23)

1. A program transformation system, comprising:

a processor coupled to a memory, the processor configured to execute the following computer-executable components stored in the memory:

a code generation component that generates semantically equivalent code in a class-less scripting language from an object-oriented programming language representation of a hierarchy of one or more classes or interfaces and

a virtual constructor component that produces a dispatch construct that captures class and/or interface method implementation to facilitate dynamic dispatch.

2. The system of claim 1 , the dispatch construct is a dictionary object.

3. The system of claim 1 , a dictionary object maps method names to one or more method implementations.

4. The system of claim 1 , the dispatch construct is a linked list.

5. The system of claim 1 , the dispatch construct is a prototype object.

6. The system of claim 1 , comprising an object creation component that generates a new object with a reference to an associated dispatch construct.

7. The system of claim 1 , comprising a call component that translates a virtual method call to a call to a function that identifies a method invocation from the dispatch construct for an object and returns results of execution thereof.

8. The system of claim 1 , comprising an optimization component that eliminates dynamic dispatch when a static type is equivalent to a dynamic type of an object and/or lookup can be performed statically.

9. The system of claim 1 , the representation is intermediate language code.

10. A method of dynamic dispatch, comprising:

employing at least one processor configured to execute computer-executable instructions stored in memory to perform the following acts:

identifying a representation of a virtual method call in a class-less scripting language; and

locating an implementation for the virtual method call at runtime in a dispatch construct that maps method names to method implementations for objects utilizing code that captures class and/or interface inheritances relationships in the language.

11. The method of claim 10 , locating the implementation in a dictionary object.

12. The method of claim 10 , locating the implementation in a linked list.

13. A program compilation system, comprising:

computer-implemented means for acquiring an inheritance hierarchy of classes represented in intermediate language code; and

computer-implemented means for implementing code semantics in a class-less scripting programming language; and

computer-implemented means for generating a dispatch construct in the class-less scripting programming language that identifies method names and related method implementations.

14. The system of claim 13 , the computer-implemented means for generating the dispatch construct generates a dictionary object.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034542/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 7, 2007
From: BOZZA, BRUNO S.; MEIJER, HENRICUS JOHANNES MARIA; BECK, STEVEN THOMAS; GOGH, JEFFREY VAN; ZHU, WEI
To: MICROSOFT CORPORATION
Reel/Frame 019258/0038 →