Method and system for reducing an intentional program tree represented by high-level computational constructs
First Claim
1. A method in a computer system for generating executable code for a computer program, the method comprising the steps of:
- receiving an intentional program tree having nodes, each node representing a high-level computational construct of the computer program;
for each node representing a high-level computational construct, transforming the node into an implementation of the high-level computational construct, the implementation represented by one or more nodes representing low-level computational constructs; and
for each node representing a low-level computational construct, generating executable code that implements the low-level computational construct;
wherein the step of receiving an intentional program tree includes creating the intentional program tree by direct manipulation of the intentional program tree by a programmer; and
including the step of receiving a new high-level computational construct and receiving an implementation of the new high-level computational construct that uses low-level computational constructs, wherein the step of creating the intentional program tree includes adding a node to the intentional program tree representing the new high-level computational construct, and wherein the node representing the new high-level computational construct is transformed using the received implementation.
2 Assignments
0 Petitions
Accused Products
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.
46 Citations
55 Claims
-
1. A method in a computer system for generating executable code for a computer program, the method comprising the steps of:
-
receiving an intentional program tree having nodes, each node representing a high-level computational construct of the computer program; for each node representing a high-level computational construct, transforming the node into an implementation of the high-level computational construct, the implementation represented by one or more nodes representing low-level computational constructs; and for each node representing a low-level computational construct, generating executable code that implements the low-level computational construct; wherein the step of receiving an intentional program tree includes creating the intentional program tree by direct manipulation of the intentional program tree by a programmer; and including the step of receiving a new high-level computational construct and receiving an implementation of the new high-level computational construct that uses low-level computational constructs, wherein the step of creating the intentional program tree includes adding a node to the intentional program tree representing the new high-level computational construct, and wherein the node representing the new high-level computational construct is transformed using the received implementation.
-
-
2. A method in a computer system for generating executable code for a computer program, the method comprising the steps of:
-
receiving an intentional program tree having nodes, each node representing a high-level computational construct of the computer program; for each node representing a high-level computational construct, transforming the node into an implementation of the high-level computational construct, the implementation represented by one or more nodes representing low-level computational constructs; and for each node representing a low-level computational construct, generating executable code that implements the low-level computational construct; wherein each high-level computational construct has a function for transforming a node representing the high-level computational construct into a node representing an implementation of the high-level computation construct using low-level computational constructs and wherein the step of transforming the node representing a high-level computation construct includes invoking the function to transform the node.
-
-
3. A method in a computer system for generating executable code for a computer program, the method comprising the steps of:
-
receiving an intentional program tree having nodes, each node representing a high-level computational construct of the computer program; for each node representing a high-level computational construct, transforming the node into an implementation of the high-level computational construct, the implementation represented by one or more nodes representing low-level computational constructs; and for each node representing a low-level computational construct, generating executable code that implements the low-level computational construct; wherein each high-level computational construct has a function for displaying a representation of a node representing the high-level computational construct, and upon receiving the intentional program tree, for each node invoking the function of the high-level computational construct represented by the node.
-
-
4. A method in a computer system for generating executable code for a computer program, the method comprising the steps of:
-
receiving an intentional program tree having nodes, each node representing a high-level computational construct of the computer program; for each node representing a high-level computational construct, transforming the node into an implementation of the high-level computational construct, the implementation represented by one or more nodes representing low-level computational constructs; and for each node representing a low-level computational construct, generating executable code that implements the low-level computational construct including the step of before the step of transforming, preprocessing nodes to store indications to control the transforming to identify errors. - View Dependent Claims (5, 6)
-
-
7. A computer system for generating a computer program, the computer program having a plurality of high-level computational constructs, each high-level computational construct having a behavior, the computer system comprising;
-
means for creating an intentional program tree by direct manipulation of the intentional program tree, the intentional program tree having nodes representing the high-level computational constructs of the computer program; means for reducing the intentional program tree to a reduced program tree, the reduced program tree having nodes representing low-level computational constructs, each high-level computational construct having a reduction enzyme for reducing a node representing the high-level computational construct into one or more nodes that implement the behavior of the high-level computational construct, each of the nodes representing a low-level computational construct; means for adding a new high-level computational construct for use in creating the intentional program tree, the new high-level computational construct having a reduction enzyme, the new high-level computational construct for use in the intentional program tree; and means for generating executable code based in the reduced program tree.
-
-
8. A computer system for generating executable code for a computer program, comprising:
-
an editor with a graphical user interface through which an intentional program is input by a user in a syntax-independent manner, the intentional program being stored in an intentional program tree with high-level computational constructs; a reducer that reduces the high-level computational constructs of the intentional program tree to low-level computational constructs by replacing portions of the intentional program tree to form a reduced program tree; and a code generator for generating executable code based on the reduced program tree representation of the computer program. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A method in a computer system for generating executable instructions that implement a computer program represented by an intentional program tree, the intentional program tree having nodes representing high-level computational constructs that form the computer program, the method comprising:
-
for each node of the intentional program tree, selecting a reduction enzyme for the high-level computational construct of the node; and invoking the selected reduction enzyme to transform a portion of the intentional program tree relating to the node to represent the high-level computational construct using low-level computational constructs; and after invoking the selected reduction enzymes, generating executable code from the transformed representation of the intentional program tree to implement the computer program. - View Dependent Claims (23, 24, 25, 26, 27, 28, 29, 30, 31)
-
-
32. A computer-readable medium containing instructions for causing a computer system to generate executable code for a computer program, by:
-
receiving an intentional program tree having nodes, each node representing a high-level computational construct of the computer program; for each node representing a high-level computational construct, transforming the node into an implementation of the high-level computational construct, the implementation represented by one or more nodes representing low-level computational constructs; and for each node representing a low-level computational construct, generating executable code that implements the low-level computational construct;
wherein the receiving of an intentional program tree includes creating the intentional program tree by direct manipulation of the intentional program tree; andincluding receiving a new high-level computational construct and receiving an implementation of the new high-level computational construct that uses low-level computational constructs, wherein the creating of the intentional program tree includes adding a node to the intentional program tree representing the new high-level computational construct, and wherein the node representing the new high-level computational construct is transformed using the received implementation.
-
-
33. A computer-readable medium containing instructions for causing a computer system to generate executable code for a computer program, by:
-
receiving an intentional program tree having nodes, each node representing a high-level computational construct of the computer program; for each node representing a high-level computational construct, transforming the node into an implementation of the high-level computational construct, the implementation represented by one or more nodes representing low-level computational constructs; and for each node representing a low-level computational construct, generating executable code that implements the low-level computational construct; wherein each high-level computational construct has a function for transforming a node representing the high-level computational construct into a node representing an implementation of the high-level computation construct using low-level computational constructs and wherein the transforming of the node representing a high-level computation construct includes invoking the function to transform the node.
-
-
34. A computer-readable medium containing instructions for causing a computer system to generate executable code for a computer program, by:
-
receiving an intentional program tree having nodes, each node representing a high-level computational construct of the computer program; for each node representing a high-level computational construct, transforming the node into an implementation of the high-level computational construct, the implementation represented by one or more nodes representing low-level computational constructs; and for each node representing a low-level computational construct, generating executable code that implements the low-level computational construct; wherein each high-level computational construct has a function for displaying a representation of a node representing the high-level computational construct.
-
-
35. A computer-readable medium containing instructions for causing a computer system to generate executable code for a computer program, by:
-
receiving an intentional program tree having nodes, each node representing a high-level computational construct of the computer program; for each node representing a high-level computational construct, transforming the node into an implementation of the high-level computational construct, the implementation represented by one or more nodes representing low-level computational constructs; and for each node representing a low-level computational construct, generating executable code that implements the low-level computational construct; including before the transforming of a node, preprocessing nodes to store indications to control the transforming.
-
-
36. A computer-readable medium containing instructions for causing a computer system to generate executable code for a computer program, by:
-
receiving an intentional program tree having nodes, each node representing a high-level computational construct of the computer program; for each node representing a high-level computational construct, transforming the node into an implementation of the high-level computational construct, the implementation represented by one or more nodes representing low-level computational constructs; and for each node representing a low-level computational construct, generating executable code that implements the low-level computational construct; wherein each high-level computational construct has a function for displaying a representation of a node representing the high-level computational construct, and upon receiving the intentional program tree, for each node invoking the function of the high-level computational construct represented by the node.
-
-
37. A computer system for generating a computer program, the computer program having a plurality of high-level computational constructs, each high-level computational construct having a behavior, the computer system comprising:
-
a component that creates an intentional program tree by direct manipulation of the intentional program tree, the intentional program tree having nodes representing the high-level computational constructs of the computer program; a component that reduces the intentional program tree to a reduced program tree, the reduced program tree having nodes representing low-level computational constructs, each high-level computational construct having a reduction enzyme for reducing a node representing the high-level computational construct into one or more nodes that implement the behavior of the high-level computational construct, each of the nodes representing a low-level computational construct; a component that adds a new high-level computational construct for use in creating the intentional program tree, the new high-level computational construct having a reduction enzyme, the new high-level computational construct for use in the intentional program tree; and a component that generates executable code based in the reduced program tree. - View Dependent Claims (38, 39, 40, 41, 42, 43, 44, 45)
-
-
46. A computer-readable medium containing instructions that cause a computer system to generate executable instructions that implement a computer program represented by a program tree, the program tree having nodes representing high-level computational constructs that form the computer program, by:
-
for each node of the program tree, selecting a reduction function for the high-level computational construct of the node; and invoking the selected reduction function to transform a portion of the program tree relating to the node to represent the high-level computational construct using low-level computational constructs; and after invoking the selected reduction function, generating executable code from the transformed representation of the program tree to implement the computer program. - View Dependent Claims (47, 48, 49, 50, 51, 52, 53, 54, 55)
-
Specification