Associative Computing
Kent State University
Computer Science Department


This page describes the ASsociative Computing (ASC) research at Kent State University. One goal of this research is to develop a parallel programming paradigm that is simple enough to be taught to high school students, suitable for a wide range of applications, easy to write, efficient to execute and that can be used on a wide range of computing engines from PCs and workstations to parallel computers. The ASC paradigm uses massively parallel searching and processing of unordered data. This approach to associative computing originated with the bit serial SIMDs of the 1970's when computers were quite expensive and unordered searching was only feasible on massively parallel bit serial machines. The continuing trend toward lower hardware prices and higher software costs suggests that some of this increase in hardware productivity should be used to improve programming productivity by using associative techniques even on conventional sequential as well as parallel machines. The current trend to Processor-In-Memory technology is very promising, since associative computing is very well suited to take advantage of the benefits of PIM designs.

Associative computing uses two dimensional tables as the basic data structure. It has an efficient, dynamic memory allocation mechanism which is associative, not address based, so pointers are not needed or used. ASC incorporates data parallelism at the base level, relieving programmers of the responsibility to specify low level auxiliary operations such as sorting, looping and parallelization.

Associative computing supports all of the standard data parallel and massively parallel computing algorithms. Associative computing combines numerical computation such as convolution, matrix multiplication, and graphics with non-numerical computing such as compilation, graph algorithms, rule based systems, and language interpreters. Symbolic languages are very efficient on associative processors.

Associative Computing has been a topic of research at KSU since 1980. This research has resulted in a series of programming languages and techniques. All are based on the principles mentioned above and detailed in ASSOCIATIVE COMPUTING (Plenum Publishing, 1992, ISBN 0-306-43987-5). The ASC language was the first language developed. ASC syntax and programming conventions are based on traditional computer languages such as C and Fortran. ACE/Anglish is a higher level language/programming environment. It is based on the same associative principles as ASC but instead of conventional syntax, it uses the associative calculus with pseudo natural language syntax - plurals, pronouns, multi-word identifiers and a two dimensional tabular data structure. Anglish is an ACE variant which uses an English like grammar to teach both story problem solving and associative programming. VACE is a Visual Basic version of ACE designed to explore the use of associative computing concepts with conventional voice recognition systems. HASC is the application of associative computing principles to a network of heterogeneous computers. Plain English is an extension to VACE. It is designed to achieve an effective word recognition rate of over 99.5% resulting in a command recognition rate greater than 95%. It is implemented as an Excel spreadsheet addin.