|
|
3 Summary of GoalsThe object of the proposed method is to create software method, computer language, and compiler allowing natural, structural, decentralized, fully parallel software to be created for all levels software design. Just as Object-Oriented software languages sought to structurally merge data structure design together with designing operations on the data, the proposed method seeks to merge design of data structure, data operation, and concurrency (defined both as parallel processing and all necessary synchronization) all into one clear, structural design process. The goal is accomplished by somewhat merging concepts of both control flow and data flow together into one structural language. Due to its characteristics, and for brevity’s sake, the proposed method was named and will be referred to as “Stress-Flow.” Rather than specifically start several different task threads communicating with one another as was the common method of prior art, the stress-flow method defines all elementary operations on its objects as small autonomous entities execution-wise, which run relatively small amount of code and then disappear. These autonomous entities, referred to as “Stress-Flow Atoms” are built in a way that allows clearly visible safe interactions with other stress-flow atoms. A program written completely in the spirit of stress-flow would consist of a very large number of stress-flow atoms. Most basic operations on code objects (members of objects/classes) would be stress-flow atoms. A practical implementation of this method always needs a large pool of processors (real or virtual) dynamically assigned to the stress-flow atoms as they need them. One way or another, each stress-flow atom is a separately executed mini-thread. No supervisory thread(s) of any sort exist – just a large number of micro threads constantly coming to life and interacting with neighbor mini-threads. A practical outcome of this characteristic is that algorithms and programs written with computer language using stress-flow are auto-scalable, i.e. they can run without modifications or special programmer effort on a machine with one, two, or very many processors. If a specific implementation had only one or two processors, it still would “pretend” that it has fifty or a hundred of them for a typical application tested in development of the stress-flow concept. Even in such simulated environment the system runs as plurality of independent threads without need of any supervisory thread. The stress-flow method relies on specific layout of each independent stress-flow atom as means to overlap them with others in a large variety of ways. Stress-flow provides a new, fully universal parallel software method and a new computer language. The new software method can be used with existing compilers the same way object-oriented code could have been written using non-object oriented compilers. But a specially constructed or modified compiler simply makes it far more convenient and far more efficient. As a secondary goal, stress-flow was intended as a powerful extension to pre-existing languages (script and visual) (in particular C++), allowing easy coexistence of stress-flow code with regular/previously written computer code. At the same time, stress-flow lends itself to visual composing of complex software far better than any prior-art object-oriented language and solves all problems of existing prior-art near data-flow visual programming systems. |
Send mail to
info@stressflow.com with questions or
comments.
|