• Compilation;
  • Concurrency;
  • Semantic analysis;
  • Modula-2;
  • Concurrent compilation


Concurrency is an attractive method for reducing the execution time of compilers. By dividing source programs into segments which can be compiled concurrently, the task of compiling programs can be accelerated.

Many of the difficult problems which arise when constructing a concurrent compiler occur in the implementation of the semantic analyser. This paper investigates the problems involved in designing the semantic analyser for a concurrent compiler for a modern, block-structured language. Several approaches to solving the problems which arise are presented. These solutions are then implemented as part of a concurrent Modula-2 + compiler, running on a shared memory multiprocessor. A performance evaluation of these semantic analysers is presented.