Some time ago I posted an article on USENET asking about references on
parallel parsing. Since then I have received a lot of responses.
Here's a summary. I have edited the messages a little to save space;
I hope no one would accuse me of destroying his or her beautiful writing. :-)

The fastest way I know to do CF parsing is with Valiant's CF parser. It
works by recursively computing transitive closures of nxn Boolean matrices.
Both its sequential and concurrent running times are the same as for
transitive closure. The best concurrent transitive closure algorithm
I know is O(log^2 n), hence this is the best I know for the concurrent
implementation of Valiant's algorithm. I can't find a pointer to the
literature right now, but it appeared somewhere around 1974-5.
Vaughan Pratt

Reply-To: parker@vienna.njit.edu (Bruce Parker)

The only work I know of is the brief description given by
Karp and Ramachandran [1]. They show how to apply a result of
Miller, Ramachandran, and Kaltofen [2] that yields an AC^1
algorithm for the problem of deciding whether a given string
is in the language generated by a given CFG in CNF. Since
AC^1 (= NC^2, this yields an O(lg^2 n) time, polynomial processor
solution. I don't know about lower bounds.

Here are some refs that I have handy; I do
have some more but I cannot find them right now!
Bjorn
========
%A Fatemah Abdollahzadeh
%A Medhi Badii
%A D. J. Cooke
%T A New Grammar for Arithmetic Expressions in
a Parallel Processing Environment
%J Proceedings of the 1986 International Conference on Parallel Processing
%I IEEE
%D August 1986
%P 75-83
%K Mathematical analysis and computation, ambiguous context free grammars,
context sensitive grammars, phrase structure grammar, parsing,

| [Ned Irons told me over 10 years ago that he looked at it and didn't find
| much that he could speed up. Perhaps someone has had more luck since. -John]

Yes, indeed.
Neal Gafter, a recent Ph.D. graduate from Rochester (now at TI in Austin),
was able in his thesis to demonstrate the feasibility of parallelizing
each of the individual phases of a conventional compiler, including
parsing. As a matter of fact, he demonstrated the feasibility of parallel
incremental compilation, of which conventional compilation is just a
special case. An early discussion of his parsing algorithms can be found
in the proceedings of the 1987 ICPP (pp. 577-584). Full details appear
in his dissertation, available as UR CS TR 349. Shipping cost is $4.00.
To obtain a copy, send e-mail to tr@cs.rochester.edu, or U.S. mail to
TR Librarian, Computer Science Dept., Univ. of Rochester, Rochester, NY
14627.

I am aware of a thesis by Richard M. Schell at the University of Illinois
entitled "Methods for Constructing Parallel Compilers for Use in a
Multiprocessor Environment".

Reply-To: hoover@cs.UAlberta.CA (Jim Hoover)

You wouldn't know it from the title, but Larry Ruzzo's paper:
Walter L. Ruzzo, "Tree-Size Bounded Alternation", J. Computer and System
Sciences, 21, 1980, pp 218-235.
shows that CFL recognition can be done in O(log n)^2 time with a polynomial
number of processors. There may be an efficient parser lurking in the proofs.

Reply-To: skill@qucis.queensu.ca (David Skillicorn)

Perhaps I can save some time by responding to Chou's (chou@cs.ucla.edu)
request about parallel parsing directly.

There has indeed been a great deal of work in parallel parsing and
in parallel execution of other phases of compilation as well. Here is
a brief overview:

Parallel lexing: this is well understood. A log time (i.e. time logarithmic
in the length of the input) algorithm was discovered by Schell and
implemented and popularised by Hillis and Steele. It is very generally
applicable.

Parallel parsing: this has been studied by practitioners and theoreticians.
Many results are known. CFL can be parsed in polylog time using an
impractical number of processors. Subclasses can be parsed on a linear
number of processors in polylog time -- many such subclasses are known.
Their mutual inclusions and the largest such subclass are not known.
Deterministic CFL can be practically parsed in log time with reasonable
numbers of processors -- pathological examples will take much longer.

Semantic analysis: this is well understood for moderately parallel
architectures (work by Wortman et al., Vandevoorde). Some attempts
to attack it using attribute grammars have been tried (see Paris WAGA
proceedings). No results using large scale parallelism.

Optimization: some work using moderate parallelism.

Parallelizing parsing will obviously not make a dramatic difference
to compiler performance by itself because it's a small part of where
the time goes. People began with it because it's formally understood.
In any case, a parallel compiler wouldn't sensibly have a sequential
parser, so something had to be done.

The opportunities for speeding up compilation lie mainly in the later
phases, particularly optimization which is becoming steadily more
important. There are many opportunities for research here.

David Barnard and I maintain an electronic mailing list at Queen's.
If you want to be added to the list, send your physical and email
address to compile-request@qucis.queensu.ca. To send a message to the
list, post to compile@qucis.queensu.ca.

We also maintain an on-line bibliography on parallel compilation which
you may want if you'd like to read about work in the area. It's in
BiBTeX format. To request a copy send me email (skill@qucis.queensu.ca).
We invite all researchers in the area to tell us when they publish a
paper or tech report that's relevant.

The first Workshop on Parallel Compilation took place last May. Proceedings
may be obtained by sending $C15 to:
Heather Ball
Rm 215 Richardson Hall
Queen's University
Kingston Ontario
Canada K7L 3N6
A pro forma invoice may be requested from heather@qucis.queensu.ca for
those who need it.

We have recently completed a survey paper on the whole area of parallel
compilation. It will be available in the Queen's tech report series.
I'll post a further note when it's available.

Reply-To: cmk@ulysses.att.com

I have a collection of references on exactly this topic and I also
have submitted a new paper on this for the 2nd Intl Conf on Parsing
Technologies. If you are interested, let me know.

M. A. Palis and S. Shende, "Upper Bounds on Recognition of a Hierarchy of
Non-Context-Free Languages", to appear in Theoretical Computer Science. Also
Tech. Rpt. MS-CIS-88-56, Dept. of Comp. and Info. Science, Univ. of
Pennsylvania, July 1988.

We are currently implementing the parallel parser for tree adjoining
grammars on the Connection Machine. The paper is in preparation.

The algorithms cited above can be modified to obtain parse trees. In
unpublished work, I showed that the dCFL algorithm can be modified to
take O(log^2 n) time but using only n^2 log n processors.

Reply-To: Edoardo Biagioni <biagioni@cs.unc.edu>

Charles Fischer's 1975 dissertation at Cornell addresses the issue of
parallel parsing in general, though it starts out with simpler grammar
models than unrestricted context-free languages. He uses APL to express
the parallelism. I have found the work quite interesting and general.

Reply-To: ken@tucana.csis.dit.csiro.au

My colleague Neal Gafter did a thesis on parallel compilation. You can
get his thesis as a TR from the U of Rochester. Mail peg@cs.rochester.edu
for pricing.

@phdthesis{schell:thesis,
AUTHOR = {Schell, Jr., R. M.},
TITLE = {Methods for Constructing Parallel Compilers for use in
a Multiprocessor},
school = {University of Illinois at
Urbana-Champaign},
YEAR = {1979},}

There is a small but interesting section on 'Parsing a Regular Language' in
the article Data Parallel algorithms, W. Daniel Hillis and Guy L. Steele,
Jr., Communications of the ACM, December 1986, Volume 29, number12. The
article is about the connection machine, actually, and contains a further
reference to an article about connection machine Lisp.

I hope this is of any help,

Reply-To: torsten@cs.utexas.edu (Torsten Suel)

The following paper gives an algorithm for parsing cf-languages in iterative
and cellular automata. The algorithm is based on Younger's, the speed of
recognition is linear ( in the 2-dimensional case ) or quadratic ( in the
1-dimensional case ) time. It is

You can also find an article by Nijholt in the Proceedings of the
First International Workshop on Parsing Technologies (Pittsburgh,
August 1989). You can write to Nijholt at the above address; an e-mail
address that you will have to turn into something that works from the
States is utrcu1!utinu2!anijholt.

Last but not least, there will be an article on parsing context-free
grammars in parallel in a book that I am editing together with a
German colleague (U. Hahn, Freiburg), titled "Parallel Natural Language
Processing". It will be out in the Spring of 91, with Ablex.

Reply-To: eerke@cs.kun.nl (Eerke Boiten)

Here in the Netherlands, I know of two groups that work or have worked
on parallel parsing.
Matthijs Kuiper at Utrecht University (matthijs@cs.ruu.nl or
kuiper@cs.ruu.nl, don't know which) has written a thesis on Parallel
Attribute Evaluation. He also reads news, I think, so probably he'll
reply to you anyway.
At Twente University, the compiler construction group (prof. Anton
Nijholt, dr. Henk Alblas, et al.) has recently compiled a bibliography
on parallel parsing, which is available as a techreport. They are also
doing research on parallel parsing. I don't know their email adresses,
but their reachable via: PO Box 217, NL-7500 AE Enschede.
Hope this helps,

Reply-To: Kieron Drake <kieron@root.co.uk>

Until recently I was a lecturer at Queen Mary and Westfield College,
University of London, and I remember one character there starting
a thesis on parallel parsing algorithms for the DAP machine
(Distributed Array Processor, SIMD machine with 1-bit PE's). I can't
remember his name but he was supervised by Dr Keith Clarke and Professor
Peter Landin. Keith's e-mail address is:

keithc@cs.qmw.ac.uk

He's a very helpful guy. Hope this helps.

Reply-To: gafter@frog.csc.ti.com

OK, here is my bibliography on the subject. You should also ask David
Skillicorn, who is maintaining a bibliography and mailing list on the
topic. A message from him is enclosed.

@phdthesis{Sch79,
Author = "Schell, Jr., Richard Marion",
Title = "Methods for Constructing Parallel Compilers for use
in a Multiprocessor Environment",
School = "University of Illinois at Urbana-Champaign",
Year = 1979}

If you need a pro forma invoice you may request one from
heather@qucis.queensu.ca

2. A technical report "Parallel Compilation: A Survey" describing some
recent work at Queen's. It includes an implementation of the Hillis/
Steele (really Schell) lexing algorithm and our LL parsing algorithm.
A hard copy but slightly outdated copy of the bibliography on
parallel compilation is included.

3. An on-line bibliography on parallel compilation in BiBTeX format.
We ask everyone active in the area to keep us informed of their new
publications in the area.

Please send requests for the last two items to me (skill@qucis.queensu.ca).

I don't have the paper off hand, but if you are really interested,
let me know and I will go back to my pile of papers to dig it out.
The paper I remember is written by H.T. Kung from C.M.U. and Dr.
Chiang ?. The paper is adapting one of the parsing algorithm to
a triangular shaped systolic array. Kind of lengthy to read.
Took me 2-3 weeks to finish reading that paper in the past and
that is how I still remember it.

Reply-To: Greg Michaelson <greg@cs.heriot-watt.ac.uk>

Some work was done on this at the University of Edinburgh. You could
contact: s.michaelson@uk.ac.edinburgh for more details.

The article is by Yonezawa and Ohsawa. Yonesawa will be at OOPSLA
next week.

Reply-To: ht@cogsci.edinburgh.ac.uk

In Proceedings of the International Workshop on Parsing Technologies,
Carnegie Mellon, 1989 (Available from Joan Maddamme, Computer Science,
CMU, Pittsburgh, PA 15213-3890, Also a book soon from MIT Press --
Current Issues in Parsing Technology, Masaru Tomita editor) are a
number of papers, including a good brief survey by Nijholt. Also soon
to appear from Ablex: Parallel Models of Natural Language
Computation, Adriaens and Hahn, editors.

The abstract parallel chart parser described in my contribution to the
Pittsburgh workshop is available on request.

Reply-To: Jonathan Michael David Hill <hilly@cs.qmw.ac.uk>

I recently read on network news that you are interested in
parallel algorithms and implementations of parsing techniques .
I have developed and implemented parallel algoirthms for lexical
analysis and parsing .
Both algorithms exhibit SIMD parallelism and I have
implemented them on the AMT Distributed Array Proccessor which
contains 1024 processors (although a 4096 version is available
to me here , I have not ported the software ).
Both lexical analyser and parser have a time complexity logorithmic in
relation to the input length , although I have not got the
results with me at the present time , if I remember correctly
the parser can process about 2 million tokens per second .
If you are interested in the work I have done then e-mail or
write to me , and we can discuss this in more detail (or I
could send you a report on the work) .
=========================== MODERATOR ==============================
Steve Stevenson fpst@hubcap.clemson.edu
(aka D. E. Stevenson), steve@hubcap.clemson.edu
Department of Computer Science, comp.parallel
Clemson University, Clemson, SC 29634-1906 (803)656-5880.mabell
====================================================================
--