Semantic analysis in a concurrent compiler

Traditional compilers are usually sequential programs that serially process source programs through lexical analysis, syntax analysis, semantic analysis and code generation. The availability of multiprocessor computers has made it feasible to consider alternatives to this serial compilation process. The authors are currently engaged in a project to devise ways of structuring compilers so that they can take advantage of modern multiprocessor hardware. This paper is about the most difficult aspect of concurrent compilation: concurrent semantic analysis.

[1]  Michael K. Donegan,et al.  Lexical analysis and parsing techniques for a vector machine , 1975, Programming Languages and Compilers for Parallel and Vector Machines.

[2]  Mary Zosel A parallel approach to compilation , 1973, POPL '73.

[3]  Laurent Trilling,et al.  An event-driven compiling technique , 1979, CACM.

[4]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[5]  John A. Miller,et al.  Distributed Compilation: A Case Study , 1982, ICDCS.

[6]  Jean-Loup Baer,et al.  Model, Design, and Evaluation of a Compiler for a Parallel Processing Environment , 1977, IEEE Transactions on Software Engineering.

[7]  Clarence A. Ellis,et al.  Parallel compiling techniques , 1971, ACM '71.

[8]  Susan L. Graham,et al.  Hashed symbol tables for languages with explicit scope control , 1979, SIGPLAN '79.

[9]  Charles N. Fischer,et al.  Crafting a Compiler , 1988 .

[10]  James Lowell Frankel The architecture of closely-coupled distributed computers and their language processors , 1983 .

[11]  Michael K. Donegan,et al.  Lexical analysis and parsing techniques for a vector machine , 1975 .

[12]  Charles N. Fischer On parsing context free languages in parallel environments. , 1975 .

[13]  Jacques Cohen,et al.  Upper Bounds for Speedup in Parallel Parsing , 1982, JACM.

[14]  Jacques Cohen,et al.  Estimating the Speedup in Parallel Parsing , 1985, IEEE Transactions on Software Engineering.

[15]  Daniel Edward Lipkie A compiler design for multiple independent processor computers. , 1979 .

[16]  Howard E. Krohn,et al.  A parallel approach to code generation for Fortran like compilers , 1975, Programming Languages and Compilers for Parallel and Vector Machines.

[17]  Jr. Richard Marion Schell Methods for constructing parallel compilers for use in a multiprocessor environment. , 1979 .

[18]  Lawrence C. Stewart,et al.  Firefly: a multiprocessor workstation , 1987, IEEE Trans. Computers.

[19]  Neil Lincoln,et al.  Parallel programming techniques for compilers , 1970, SIGP.