IP Library Granted Patent US 7,389,498
Granted Patent B2
US 7,389,498 · App. 10/396,066 · Granted Jun 17, 2008

Core object-oriented type system for semi-structured data

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,389,498
App. No.
10/396,066
Granted
Jun 17, 2008
Kind
B2
Abstract

A type system employing structural subtyping is disclosed herein. A core type system supports several structural types, such as stream, choice, intersection and sequence. Also part of the core type system is a new invariant type, which denotes values whose dynamic type is the same as its static type, and type restrictions for limiting a range of a base type. Furthermore, a streamlined structural version of delegates, called structural delegates and a validation method thereof are introduce into the type system. To further facilitate type safety, strict statically checked interface casts are introduced.

Claims (28)

1. A computer readable medium having stored thereon a program error detection system comprising:

a component that receives a program; and

a type checker that utilizes type definitions and type rules, comprising structural subtyping rules, to determine whether the program is well formed within a meaning of the type definitions and the type rules, the type definitions comprising nominal types and structural types, the structural types comprising at least a sequence type and the type checker converts at least a structural delegate comprising a method declaration without return type and method name into a nominal type delegate.

2. The medium of claim 1 , the program is an object-oriented program.

3. The medium of claim 1 , the type definitions comprise a stream type.

4. The medium of claim 3 , the stream type is confined to defined value ranges.

5. The medium of claim 1 , the type definitions comprise a choice type.

6. The medium of claim 1 , the type definitions comprise an invariant type.

7. The medium of claim 1 , the type definitions comprise a structural delegate type.

8. A program error detection system comprising:

a processor that receives a program to be executed in a nominal type runtime environment that utilizes a plurality of structural type extensions; and

a type checker that utilizes type definitions and structural subtyping rules to determine whether the program is well formed within the meaning of the type definitions and the structural subtyping rules, the type definitions comprising nominal types and structural types, the type checker facilitates conversion of a structural delegate into a nominal type delegate.

9. The system of claim 8 , the type definitions comprise a stream type.

10. The system of claim 9 , the type definitions comprise a choice type.

11. The system of claim 10 , the type definitions comprise a sequence type.

12. The system of claim 8 , the type definitions comprise a structural delegate type.

13. The system of claim 8 , the type definitions comprise an invariant type.

14. The system of claim 8 , the program being an object-oriented program.

15. The system of claim 14 , the type definitions comprise a stream type.

16. The system of claim 15 , the type definitions comprise a choice type.

17. The system of claim 16 , the type definitions comprise a sequence type.

18. The system of claim 17 , the type definitions comprise a structural delegate type.

19. The system of claim 18 , the type definitions comprise an invariant type.

20. A program error detection system comprising:

means for processing a received program; and

means, to determine whether the program is well formed within a meaning of type definitions and structural type rules utilizing type definitions and structural type rules, comprising structural subtyping rules, the type definitions comprising nominal types and structural types, the structural types comprising at least a sequence type and the means to determine converts a structural delegate comprising a method declaration without return type and method name into a nominal type delegate.

21. The system of claim 20 , the program being executed in a nominal type runtime environment.

22. The system of claim 21 , the program being an object-oriented program.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034541/0477 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 25, 2003
From: MEIJER, ERIK; SCHULTE, WOLFRAM; VENTER, BAREND H.; CHEN, CHIA-HSUN; LOVETT, CHRISTOPHER J.; WARREN, MATTHEW J.
To: MICROSOFT CORPORATION
Reel/Frame 013910/0817 →