Hyperpiler
AssigneeHoltworks, LLC
InventorBrian Holt
Life of this patent
Estimating the term…
Abstract
A method for an uncontrolled modeling language to be hyperpiled into a general purpose language is disclosed herein. The method overcomes previous limitations by allowing for a modeling language that is syntactically simple, while conceptually unlimited, while offloading the burdens of minutia and control structure to the hyperpiler.
Claims29
A computer-implemented method for forming a computer program for a targeted domain, the method comprising:
- accessing a plurality of initial entities specifying aspects of a computer program, each initial entity comprising at least one value;
- selecting a domain ruleset comprising a plurality of rules for processing the plurality of initial entities into a computer program for the targeted domain;
- based on the domain ruleset accessing a set of code templates, each code template comprising at least one string of program instructions to be incorporated into the formed computer program;
- applying the domain ruleset to the plurality of initial entities to generate a plurality of generated entities, at least one initial entity of the plurality of initial entities generating two or more generated entities in the plurality of generated entities;
- forming a plurality of entity-template pairs by pairing each of the plurality of generated entities with at least one code template from the set of code templates;
- forming a plurality of code snippets by inserting at least one value from the entity into the code template in each entity-template pair of the plurality of entity-template pairs;
- arranging the plurality of code snippets according to their paired entity values;
- and
- forming a computer program from the arranged plurality of code snippets.
A computer-implemented method for forming a computer program from an arranged plurality of code templates, the method comprising:
- accessing a plurality of entities specifying aspects of a computer program, each entity comprising a plurality of values, each entity comprising a first value identifying the entity, each entity comprising a second value corresponding to a code template, at least some entities comprising a third value designating a linear order, and at least some entities comprising a fourth value corresponding to a parent entity;
- selecting a domain ruleset comprising a plurality of rules for processing the plurality of entities into a computer program for a targeted domain;
- based on the domain ruleset, accessing a set of code templates, each code template corresponding to a second value of an entity, and each code template comprising at least one string of program instructions to be incorporated into the formed computer program;
- forming a plurality of entity-template pairs by pairing each entity of the plurality of entities with the code template of the set of code templates corresponding to the second value of the entity;
- forming a plurality of code snippets by inserting at least one value from the entity into the code template in each entity-template pair;
- inserting, recursively, by iterating at least one program loop over each code snippet, each code snippet of the plurality of code snippets paired with an entity comprising a fourth value into the code snippet paired with the entity corresponding to that fourth value;
- ordering sibling code snippets of the plurality of code snippets according to the third value of the paired entities;
- and
- forming a computer program from the arranged plurality of code snippets.
A non-transitory computer-readable medium that stores instructions causing a processor to perform functions to form a computer program for a targeted domain, from arranged entity-template pairs, by executing the following steps;
- accessing a plurality of initial entities specifying aspects of a computer program, each initial entity comprising at least one value;
- selecting a domain ruleset comprising a plurality of rules for processing the plurality of initial entities into a computer program for the targeted domain;
- based on the domain ruleset, accessing a set of code templates, each code template comprising at least one string of program instructions to be incorporated into the formed computer program;
- applying the domain ruleset to the plurality of initial entities to generate a plurality of generated entities, at least one initial entity of the plurality of initial entities generating two or more generated entities in the plurality of generated entities;
- forming a plurality of entity-template pairs by pairing each of the plurality of generated entities with at least one code template from the set of code templates;
- forming a plurality of code snippets by inserting at least one value from the entity into the code template in each entity-template pair of the plurality of entity-template pairs;
- arranging the plurality of code snippets according to their paired entity values;
- and
- forming a computer program from the arranged plurality of code snippets.
A non-transitory computer-readable medium that stores instructions causing a processor to perform functions to form a computer program from arranged entity-template pairs by executing the following steps:
- accessing a plurality of entities specifying aspects of a computer program, each entity comprising a plurality of values, each entity comprising a first value identifying the entity, each entity comprising a second value corresponding to a code template, at least some entities comprising a third value designating a linear order, and at least some entities comprising a fourth value corresponding to a parent entity;
- selecting a domain ruleset comprising a plurality of rules for processing the plurality of entities into a computer program for a targeted domain;
- based on the domain ruleset, accessing a set of code templates, each code template corresponding to a second value of an entity, and each code template comprising at least one string of program instructions to be incorporated into the formed computer program;
- forming a plurality of entity-template pairs by pairing each entity of the plurality of entities with the code template of the set of code templates corresponding to the second value of the entity;
- forming a plurality of code snippets by inserting at least one value from the entity into the code template in each entity-template pair;
- inserting, recursively, by iterating at least one program loop over each code snippet, each code snippet of the plurality of code snippets paired with an entity comprising a fourth value into the code snippet paired with the entity corresponding to that fourth value;
- ordering sibling code snippets of the plurality of code snippets according to the third value of the paired entities;
- and
- forming a computer program from the arranged plurality of code snippets.
Dependencies are inferred from the claim text.