← Back to Patent Explorer
US5911072A Expired / Lapsed US ⏱️ 0.0 years remaining

Method and system for reducing an intentional program tree represented by high-level computational constructs

Assignee: Microsoft Technology Licensing LLC
•
Filing: 1997-06-27
•
Granted: 1999-06-08
•
Expires: 2017-06-27
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and system for generating a computer program in the manner that uses no computer programming language syntax. The system represents a computer program as an intentional program tree, which is a high-level program tree that is a syntax-independent representation using high-level computational constructs. The intentional program tree represents a programmer's intent, rather than an implementation of the programmer's intent. The programmer creates an intentional program tree using a syntax-independent editor. The editors allows a programmer to directly manipulate the intentional program tree. Because the program is stored as an intentional program tree in a syntax-independent manner, the editor allows the program to select in which of a various programming language the computer program is to be displayed. In addition, the system transforms an intentional program tree to a reduced program tree, which is a program tree comprising low-level computational constructs, in a process called reduction. The reduction process replaces expressions of programmer's intents with a representation of one of possible multiple implementations of those intents using low-level computational constructs.

Inventors

  • 👤 Charles Simonyi

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-04 13:33
CPC Classifications
G; G06; G06F; G06F8/00; G06F8/30; G06F8/33; Y; Y10; Y10S; Y10S715/00; Y10S715/961; Y10S715/965; Y10S715/966; Y10S715/967

Claims Analysis

Total Claims: 34
Claim 1
Independent Claim 136 words
A method in a computer system for reducing an intentional program tree, the intentional program tree having a plurality of high-level computational constructs, the method comprising: providing a reduction enzyme for each of a plurality of computational constructs, each reduction enzyme for replacing a node representing the high-level computational construct with a subtree representing an implementation of the high-level computational construct, each node of the subtree representing a low-level computational construct; and for each of a plurality of nodes of the intentional program tree, identifying a reduction enzyme for the high-level computational construct represented by the node from among the provided reduction enzymes; and invoking the identified reduction enzyme passing a reference to the node wherein the identified reduction enzyme replaces the referenced node with a subtree in which each node represents a low-level computational construct.
Claim 2
Independent Claim 136 words
A method in a computer system for reducing an intentional program tree, the intentional program tree having a plurality of high-level computational constructs, the method comprising: providing a reduction enzyme for each of a plurality of computational constructs, each reduction enzyme for replacing a node representing the high-level computational construct with a subtree representing an implementation of the high-level computational construct, each node of the subtree representing a low-level computational construct; and for each of a plurality of nodes of the intentional program tree, identifying a reduction enzyme for the high-level computational construct represented by the node from among the provided reduction enzymes; and invoking the identified reduction enzyme passing a reference to the node wherein the identified reduction enzyme replaces the referenced node with a subtree in which each node represents a low-level computational construct.
Claim 3
Dependent Claim 23 words
The method of claim 1 wherein the identifying includes searching for a reduction enzyme that matches the high-level computational construct of the node.
Claim 4
Dependent Claim 44 words
The method of claim 2 wherein each provided reduction enzyme has an associated match function and wherein the searching includes invoking the match functions passing a reference to the node until a match function indicates that the associated reduction enzyme can reduce the node.
Claim 5
Dependent Claim 52 words
The method of claim 1 wherein a plurality of reduction enzymes are provided for each high-level computational construct, each reduction enzyme for a high-level computational construct providing a different implementation of the high-level computational construct, and wherein the identifying selects one of the plurality of reduction enzymes for the high-level computational construct.
Claim 6
Independent Claim 231 words
A method in a computer system for reducing an intentional program tree representing computer programs into a reduced program so that a new high-level computational construct can be added to a current set of high-level computational constructs without affecting the computer programs that are already represented, each computer program having a plurality of high-level computational constructs from the current set of high-level computational constructs, the method comprising: for each computer program, storing the computer program as an intentional program tree having a plurality of nodes, each node corresponding to a high-level computational construct of the computer program and having a reference to any node corresponding to an operand of the high-level computational construct; modifying the computer program by directly manipulating the nodes of the intentional program tree; displaying the computer program by retrieving the nodes of the program tree data structure, generating a display representation corresponding to the high-level computational construct of each retrieved node, and displaying the generated display representations; and generating the reduced program tree with low-level computational constructs that represent the computer program by invoking a reduction enzyme for each of a plurality of nodes of the intentional program tree, each reduction enzyme for replacing a node with a subtree of nodes that correspond to low-level computational constructs implementing the high-level computational construct of the node, each high-level computational construct in the current set having a reduction enzyme.
Claim 7
Independent Claim 231 words
A method in a computer system for reducing an intentional program tree representing computer programs into a reduced program so that a new high-level computational construct can be added to a current set of high-level computational constructs without affecting the computer programs that are already represented, each computer program having a plurality of high-level computational constructs from the current set of high-level computational constructs, the method comprising: for each computer program, storing the computer program as an intentional program tree having a plurality of nodes, each node corresponding to a high-level computational construct of the computer program and having a reference to any node corresponding to an operand of the high-level computational construct; modifying the computer program by directly manipulating the nodes of the intentional program tree; displaying the computer program by retrieving the nodes of the program tree data structure, generating a display representation corresponding to the high-level computational construct of each retrieved node, and displaying the generated display representations; and generating the reduced program tree with low-level computational constructs that represent the computer program by invoking a reduction enzyme for each of a plurality of nodes of the intentional program tree, each reduction enzyme for replacing a node with a subtree of nodes that correspond to low-level computational constructs implementing the high-level computational construct of the node, each high-level computational construct in the current set having a reduction enzyme.
Claim 8
Dependent Claim 36 words
The method of claim 5 including when a new high-level computational construct is added, adding a new reduction enzyme that is invoked when a node corresponding to the new high-level computational construct is to be reduced.
Claim 9
Dependent Claim 44 words
The method of claim 5 wherein the generating of the reduced program tree includes for each of a plurality of nodes in the intentional program tree identifying which reduction enzyme is to be invoked to reduce the high-level computational construct represented by the node.
Claim 10
Dependent Claim 24 words
The method of claim 5 wherein displaying of the computer program includes invoking a display enzyme for each node in the intentional program tree.
Claim 11
Independent Claim 124 words
A method in a computer system for reducing an intentional program tree representing a computer program, the intentional program tree having nodes representing high-level computational constructs, each high-level computational construct having a reduction enzyme, the reduction enzyme for reducing a node representing the high-level computational construct with a node representing a low-level computational construct, the method comprising: selecting a node of the intentional program tree; selecting a reduction enzyme that can reduce to the high-level computational construct of the selected node; and invoking the selected reduction enzyme, wherein the reduction enzyme replaces the selected node with a node representing low-level computational and replaces each child node of the selected node by repeating the selecting and invoking of a reduction enzyme for each child node.
Claim 12
Independent Claim 124 words
A method in a computer system for reducing an intentional program tree representing a computer program, the intentional program tree having nodes representing high-level computational constructs, each high-level computational construct having a reduction enzyme, the reduction enzyme for reducing a node representing the high-level computational construct with a node representing a low-level computational construct, the method comprising: selecting a node of the intentional program tree; selecting a reduction enzyme that can reduce to the high-level computational construct of the selected node; and invoking the selected reduction enzyme, wherein the reduction enzyme replaces the selected node with a node representing low-level computational and replaces each child node of the selected node by repeating the selecting and invoking of a reduction enzyme for each child node.
Claim 13
Dependent Claim 31 words
The method of claim 9 wherein the selecting of a reduction enzyme includes invoking a match function of reduction enzymes to determine whether the reduction enzymes can reduce the selected node.
Claim 14
Dependent Claim 29 words
The method of claim 9 including defining additional high-level computational constructs to be used in specifying computer programs and defining a reduction enzyme to reduce the high-level computational construct.
Claim 15
Dependent Claim 29 words
The method of claim 11 wherein a reduction enzyme for a new computational construct is added by adding the reduction enzyme to a list of currently defined reduction enzymes.
Claim 16
Independent Claim 171 words
A method in a computer system for reducing a computer program that is specified without using a computer programming language, the computer program being specified using a plurality of high-level computational constructs, the method comprising: for each of a plurality of high-level computational constructs, receiving an indication of the high-level computational construct from a user of the computer system; in response to receiving the indication of the high-level computational construct, creating a node for the high-level computational construct; storing the received indication of the high-level computational construct in the created node; determining whether the high-level computational construct has an operand; when the computational construct has an operand, storing in the created node a reference to a node that corresponds the operand; and storing the created node in an intentional program tree; and invoking a reduction enzyme for the high-level computational construct of the created node, the reduction enzyme for replacing the created node with one or more nodes that represent an implementation of the high-level computational construct using low-level computational constructs.
Claim 17
Independent Claim 171 words
A method in a computer system for reducing a computer program that is specified without using a computer programming language, the computer program being specified using a plurality of high-level computational constructs, the method comprising: for each of a plurality of high-level computational constructs, receiving an indication of the high-level computational construct from a user of the computer system; in response to receiving the indication of the high-level computational construct, creating a node for the high-level computational construct; storing the received indication of the high-level computational construct in the created node; determining whether the high-level computational construct has an operand; when the computational construct has an operand, storing in the created node a reference to a node that corresponds the operand; and storing the created node in an intentional program tree; and invoking a reduction enzyme for the high-level computational construct of the created node, the reduction enzyme for replacing the created node with one or more nodes that represent an implementation of the high-level computational construct using low-level computational constructs.
Claim 18
Dependent Claim 29 words
The method of claim 13 including displaying the computer program by generating a display representation of the high-level computational construct of the created node; and displaying the display representation.
Claim 19
Dependent Claim 27 words
The method of claim 14 wherein the receiving of the indication of the computational construct is received relative to a displayed portion of the specified computer program.
Claim 20
Dependent Claim 14 words
The method of claim 13 including generating object code from the low-level computational constructs.
Claim 21
Dependent Claim 24 words
The method of claim 13 wherein new high-level computational constructs can be defined without modifying any computer program represented by an intentional program tree.
Claim 22
Dependent Claim 18 words
The method of claim 17 wherein a new reduction enzyme is defined for the new high-level computational construct.
Claim 23
Dependent Claim 137 words
A computer-readable medium containing instructions for causing a computer system to reduce a program tree, the program tree having a plurality of high-level computational constructs, the computer system having a reduction enzyme for each of a plurality of computational constructs, each reduction enzyme for replacing a node representing the high-level computational construct with a subtree representing an implementation of the high-level computational construct, each node of the subtree representing a low-level computational construct, by: for each of a plurality of nodes of the intentional program tree, identifying a reduction enzyme for the high-level computational construct represented by the node from among the reduction enzymes; and invoking the identified reduction enzyme passing a reference to the node wherein the identified reduction enzyme replaces the referenced node with a subtree in which each node represents a low-level computational construct.
Claim 24
Dependent Claim 137 words
A computer-readable medium containing instructions for causing a computer system to reduce a program tree, the program tree having a plurality of high-level computational constructs, the computer system having a reduction enzyme for each of a plurality of computational constructs, each reduction enzyme for replacing a node representing the high-level computational construct with a subtree representing an implementation of the high-level computational construct, each node of the subtree representing a low-level computational construct, by: for each of a plurality of nodes of the intentional program tree, identifying a reduction enzyme for the high-level computational construct represented by the node from among the reduction enzymes; and invoking the identified reduction enzyme passing a reference to the node wherein the identified reduction enzyme replaces the referenced node with a subtree in which each node represents a low-level computational construct.
Claim 25
Dependent Claim 24 words
The computer-readable medium of claim 19 wherein the identifying includes searching for a reduction enzyme that matches the high-level computational construct of the node.
Claim 26
Dependent Claim 44 words
The computer-readable medium of claim 20 wherein each reduction enzyme has an associated match function and wherein the searching includes invoking the match functions passing a reference to the node until a match function indicates that the associated reduction enzyme can reduce the node.
Claim 27
Dependent Claim 53 words
The computer-readable medium of claim 19 wherein a plurality of reduction enzymes are provided for each high-level computational construct, each reduction enzyme for a high-level computational construct providing a different implementation of the high-level computational construct, and wherein the identifying selects one of the plurality of reduction enzymes for the high-level computational construct.
Claim 28
Dependent Claim 126 words
A computer-readable medium containing instructions for causing a computer system to reduce a computer program that is specified without using a computer programming language, the computer program being specified using a plurality of high-level computational constructs, by: for each of a plurality of high-level computational constructs, receiving an indication of the high-level computational construct; in response to receiving the indication of the high-level computational construct, storing a node in a program tree, the node referencing the indicated high-level computational construct and any operands of the high-level computational construct; and invoking a reduction enzyme for the high-level computational construct of the node, the reduction enzyme for replacing the node with one or more nodes that represent an implementation of the high-level computational construct using low-level computational constructs.
Claim 29
Dependent Claim 126 words
A computer-readable medium containing instructions for causing a computer system to reduce a computer program that is specified without using a computer programming language, the computer program being specified using a plurality of high-level computational constructs, by: for each of a plurality of high-level computational constructs, receiving an indication of the high-level computational construct; in response to receiving the indication of the high-level computational construct, storing a node in a program tree, the node referencing the indicated high-level computational construct and any operands of the high-level computational construct; and invoking a reduction enzyme for the high-level computational construct of the node, the reduction enzyme for replacing the node with one or more nodes that represent an implementation of the high-level computational construct using low-level computational constructs.
Claim 30
Dependent Claim 29 words
The computer-readable medium of claim 23 including displaying the computer program by generating a display representation of the high-level computational construct of the node; and displaying the display representation.
Claim 31
Dependent Claim 28 words
The computer-readable medium of claim 24 wherein the receiving of the indication of the computational construct is received relative to a displayed portion of the specified computer program.
Claim 32
Dependent Claim 15 words
The computer-readable medium of claim 23 including generating object code from the low-level computational constructs.
Claim 33
Dependent Claim 25 words
The computer-readable medium of claim 23 wherein new high-level computational constructs can be defined without modifying any computer program represented by an intentional program tree.
Claim 34
Dependent Claim 19 words
The computer-readable medium of claim 27 wherein a new reduction enzyme is defined for the new high-level computational construct.

References Cited (Backward Citations)

US4782444A Cited
US4827404A Cited
US5191646A Cited
US5148513A Cited
US5343554A Cited
US5161216A Cited
US5175843A Cited
US5327561A Cited
EP0546794A2 Cited
US5408603A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-06-07 2002-12-07 2003-06-08 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-06-07 2006-12-07 2007-06-08 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-06-07 2010-12-07 2011-06-08 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag