The art of computer programming, volume 3: (2nd ed.) sorting and searching
The art of computer programming, volume 3: (2nd ed.) sorting and searching
The Design and Analysis of Computer Algorithms
The Design and Analysis of Computer Algorithms
The Theory of Parsing, Translation, and Compiling
The Theory of Parsing, Translation, and Compiling
Efficiency considerations in program synthesis: a knowledge-based approach.
Efficiency considerations in program synthesis: a knowledge-based approach.
The tree machine: a highly concurrent computing environment
The tree machine: a highly concurrent computing environment
A hardware accelerator for speech recognition algorithms
ISCA '86 Proceedings of the 13th annual international symposium on Computer architecture
Hi-index | 0.00 |
The object of our research is the codification of programming knowledge for the synthesis of concurrent programs. We present sample rules and techniques that we show can be used to derive two concurrent algorithms: dynamic programming (for the class of problems that run in polynomial time on sequential machines) and array multiplication. For both derived concurrent versions the code runs in linear time. The concurrent versions are significant and complex algorithms, though they are not new and already have been reported in the literature. The synthesis knowledge for these derivations is embodied in seven synthesis rules. We expect these rules to generalize to other classes of algorithms. We have also discovered a pair of techniques called virtualization and aggregation. This pair of techniques (plus the seven rules) is shown to be powerful enough to synthesize Kung's systolic array architecture [Kung-76] from a specification of matrix multiplication.