Home

Parallel attribute grammar evaluation


Author(s) : Willy Zwaenepoel Hans-juergen Boehm, 
Publisher : N/A
Publication Date : 1987
ISSN : N/A
Abstract : This paper reports on experiments with parallel compilation of programming languages. In order to take advantage of the potential parallelism, we express the language translation process as an attribute grammar evaluation problem. We see three primary benefits to using attribute grammars: First, since attribute grammars provide a functional specification of the language translation process, they are easily amenable to parallel implementation, with relatively little synchronization overhead. Second, as a high-level specification of the language, they allow parallel translators to be produced automatically, relieving the compiler writer from the burden of dealing with parallelism. Third, they provide a basis for a wide variety of language translation problems, ranging from traditional programming language compilation to more ambitious problems such as proof checking, text formatting, etc. We study the efficiency and the potential for parallelism of various attribute grammar evaluation methods and we present the design of a "combined " evaluator, which seeks to combine the potential for concurrency of dynamic evaluators and the (sequential) efficiency of static evaluators. We have used our methods to generate a parallel compiler for a large Pascal subset. Measurements on a network multiprocessor consisting of up to 6 SUN-2 workstations connected by an Ethernet network indicate that the parallel compiler outperforms its sequential counterpart by a factor of up to 3, with sequential compilation times and quality of produced code comparable to commonly available compilers. 1,