μTC is a language that has been designed for programming chip multiprocessors. Indeed, to be more specific, it has been developed
to program chip multiprocessors based on arrays of microthreaded microprocessors as these processors directly implement the
concepts introduced in the language. However, it is more general than that and is being used in other projects as an interface
defining dynamic concurrency. Ideally, a program written in μTC is a dynamic, concurrent control structure over small sequences of code, which in the limit could be a few instructions
each. μTC is being used as an intermediate language to capture concurrency from data-parallel languages such as single-assignment
C, parallelising compilers for sequential languages such as C and concurrent composition languages, such as Snet. μTC’s advantage over other approaches is that it allows an abstract representation of maximal concurrency in a schedule-independent
form. Both Snet and μTC are being used in a European project called AETHER, in order to support all aspects of self-adaptive computation.
Keywords Self-adaptive computing - concurrent languages - data-driven com-putation - programming chip multiprocessors