US2008282238A1PendingUtilityA1

Static type for late binding

Assignee: MICROSOFT CORPPriority: May 10, 2007Filed: May 10, 2007Published: Nov 13, 2008
Est. expiryMay 10, 2027(~0.8 yrs left)· nominal 20-yr term from priority
G06F 8/437
46
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A static type computer language provides optional dynamic typing triggered by a unique static type. The unique static type can be utilized anywhere other types can be employed to identify programmatic elements that are late bound. As a result, static types can be analyzed at compile time while deferring analysis of dynamic types until runtime.

Claims

exact text as granted — not AI-modified
1 . A code analysis system, comprising:
 an early binder component that binds types to elements at compile time exclusive of a special static type indicative of late binding; and   a static type check component that analyzes type usage associated with bindings and identifies any errors based on constraints of a language type system.   
   
   
       2 . The system of  claim 1 , further comprising a replacement component that replaces the static type indicative of late binding with a replacement type. 
   
   
       3 . The system of  claim 2 , the replacement component replaces the static type with a super type. 
   
   
       4 . The system of  claim 2 , further comprising an inference component that infers a type from an associated element, the replacement component replaces the static type with the inferred type. 
   
   
       5 . The system of  claim 2 , further comprising an annotation component that identifies a replacement type as dynamically typed. 
   
   
       6 . The system of  claim 5 , further comprising:
 a late binder component that binds types to elements associated with a dynamic type annotation at runtime; and   a dynamic type checker component that that analyzes type usage with respect to bindings to facilitate identification of type errors based on constraints of the language type system.   
   
   
       7 . The system of  claim 6 , further comprising a cache component that temporarily stores results of a member lookup by the late binder component for loops to optimizing binding. 
   
   
       8 . The system of  claim 6 , the dynamic type checker component compares a bound type to a static type and/or type constraint. 
   
   
       9 . The system of  claim 1 , the static type is associated with at least one of constructed types, arguments and results. 
   
   
       10 . A method of analyzing code, comprising:
 acquiring object-oriented source code;   binding a type to a programmatic element at compile time exclusive of a unique static type indicative of late binding.   
   
   
       11 . The method of  claim 10 , further comprising replacing the unique static type with another type to facilitate compile time binding. 
   
   
       12 . The method of  claim 11 , replacing the unique static type with a super type. 
   
   
       13 . The method of  claim 11 , further comprising:
 inferring an element type; and   replacing the unique static type with the inferred type.   
   
   
       14 . The method of  claim 11 , further comprising type checking the code utilizing the bindings. 
   
   
       15 . The method of  claim 11 , further comprising annotating the replaced type with data that triggers late binding. 
   
   
       16 . The method of  claim 15 , further comprising binding runtime types to elements including a late bound type annotation. 
   
   
       17 . The method of  claim 16 , further comprising caching member lookups in a loop to facilitate optimized binding. 
   
   
       18 . The method of  claim 16 , further comprising type checking the code utilizing late bound types. 
   
   
       19 . A computer readable medium having stored thereon a data structure comprising:
 a first source code element representing a programmatic construct; and   a second source code element representing a unique static type for the programmatic construct that indicates that the construct is to be type bound dynamically.   
   
   
       20 . The computer readable medium of  claim 19 , the programmatic construct is one of a constructed type, argument type and result type.

Join the waitlist — get patent alerts

Track US2008282238A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.