US 11,748,067 B2
System and method for source code generation
Jason M. Smith, Woodinville, WA (US)
Assigned to ELEMENTAL REASONING, LLC
Filed by ELEMENTAL REASONING, LLC, Woodinville, WA (US)
Filed on Feb. 2, 2022, as Appl. No. 17/591,513.
Application 17/591,513 is a continuation of application No. 17/031,165, filed on Sep. 24, 2020, granted, now 11,275,566.
Claims priority of provisional application 62/904,884, filed on Sep. 24, 2019.
Prior Publication US 2022/0156049 A1, May 19, 2022
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 8/35 (2018.01); G06N 5/04 (2023.01); G06F 8/20 (2018.01)
CPC G06F 8/35 (2013.01) [G06F 8/20 (2013.01); G06N 5/04 (2013.01)] 8 Claims
OG exemplary drawing
 
1. A method for generating computer source code from a model such that a resulting source code is to be generated in a desired programming language, and the model and the generated source code form a correspondence of conceptual design, the method comprising:
including design patterns in a catalog of pre-existing design patterns;
creating formal definitions of the design patterns in the catalog in terms of elemental design patterns (EDPs);
selecting the design patterns according to original design decisions to provide an abstract form model representing an abstracted view of a computer program;
binding the selected design patterns to elements in the model to produce bindings;
using the formal definitions of the EDPs to re-express the initial model as the abstract form model;
repeating steps of the including, the creating, the selecting, the binding, and the using with respect to the abstract form model to further express the abstract form model;
mapping the EDPs of the abstract form model to constructs in one of a target programming language, assembly language, or bytecode language to produce mapped constructs;
emitting a graph of the mapped constructs as embodied in the abstract form model in the one of the target programming language, the assembly language or the bytecode language, thereby creating a source code implementation of the computer program that corresponds to the original design decisions; and
repeating steps of the including, the creating, the selecting, the binding, the using, the mapping, and the emitting to create the source code implementation.