IP Library Patent Application 12163775
Patent Application
App. No. 12/163,775

GENERALIZED EXPRESSION TREES

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/163,775
Abstract

Expression tree versatility and applicability are enhanced to facilitate programming across various program languages and execution contexts. An expression tree can represent programmatic code as data in a representation common to multiple process mechanisms. As a result, entire programs or portions thereof can be captured and processed by a numerous common language components. Further, language specific concepts can be reduced to the common representation to enable language independent employment.

Claims (25)

1 . A system to facilitate computer program processing, comprising:

a computer-readable medium; and

a producer component that generates an expression tree that captures syntax and semantics of a computer program in a form common to multiple programming languages and stores the expression tree at least temporarily on the computer-readable medium.

2 . The system of claim 1 , the expression tree represents program statements as special expressions.

3 . The system of claim 2 , the statements are represented as void returning expressions

4 . The system of claim 1 , the expression tree includes unbound, and/or dynamic nodes.

5 . The system of claim 1 , the expression tree includes bound nodes.

6 . The system of claim 1 , a node or set of nodes comprising the expression tree includes one or more annotations that provide additional information related to the particular node or set of nodes.

7 . The system of claim 1 , the producer component generates the expression tree from source text, a language specific syntax tree, and/or a language-specific semantic tree.

8 . The system of claim 7 , the expression tree comprising a reducible node that reduces from a language specific concept it models to a common model.

9 . The system of claim 8 , the reducible node transforms language specific constructs to primitive language constructs of equivalent semantics.

10 . The system of claim 8 , the reducible node performs global reduction on the entire language specific tree or sub-tree.

11 . The system of claim 1 , further comprising a consumer component that performs an action based at least in part of the expression tree.

12 . The system of claim 11 , the consumer component is a runtime service.

13 . An expression-tree production method, comprising:

parsing at least a portion of a computer program; and

generating an expression tree common to multiple languages or with specific nodes, wherein language constructs are represented as expressions.

14 . The method of claim 13 , further comprising generating at least one of an unbounded or dynamically bound node.

15 . The method of claim 13 , further comprising annotating at least one or a subset of expression tree nodes with additional information.

16 . The method of claim 13 , further comprising reducing a program language specific construct to a primitive constructs of common representation.

17 The method of claim 16 , performing one of local reduction of a portion of the expression tree or global reduction of the entire tree or sub-tree.

18 . A computer-readable medium having stored thereon a data structure, comprising:

an expression tree comprising a one or more nodes that provide a common syntactic and semantic representation for a computer program across multiple computer languages, wherein one or more nodes are bound, unbound, or dynamic.

19 . The computer-readable medium of claim 18 , program code constructs are represented as expressions.

20 . The computer-readable medium of claim 18 , at least one node or set of nodes are annotated with additional information.

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 Jun 19, 2012
From: MALY, MARTIN; CHILES, WILLIAM P.; TORGERSEN, MADS; NG, TIMOTHY YAT TIM; VIEHLAND, ROBERT ELLIOTT; HUGUNIN, JAMES; NG, SAMUEL Y.; WARREN, MATTHEW J.; HEJLSBERG, ANDERS; MEIJER, HENRICUS JOHANNES MARIA; DYER, JOHN WESLEY; AHARONI, AVNER Y.; MESSERLY, JOHN BENJAMIN
To: MICROSOFT CORPORATION
Reel/Frame 028401/0631 →