Re: parsing with small memory or on a large parallel machine

Dave Long <[email protected]> Wed, 1 May 2013 03:17:55 +0200
Newsgroups gmane.culture.people.kragen.discuss
Message-ID <[email protected]>
http://lists.canonical.org/pipermail/kragen-tol/2010-July/000921.html
> Can an approach like this be extended to parsing more general
> context-free languages? I feel sure that it can, but the way my mind
> works, I=92d have to work out the details on a specific language.


Seems likely, given that the reverse of a CFL is also a CFL, and we  =

have the following general argument:

Jeremy Gibbons, "The Third Homomorphism Theorem"
http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/thirdht.ps.gz
> The *Third Homomorphism Theorem* is a folk theorem of the  =

> constructive algorithmics community.  It states that a function on  =

> lists that can be computed both fro left to right and from right to  =

> left is necessarily a *list homomorphism* -- it can be computed  =

> according to *any* parenthesization of the list.

In other words, if it works as either a fold or a foldr (eg. operator  =

precedence), it will (can be made to) work as a parallel prefix.

Note that, even if it is possible, often languages are more  =

convenient to parse forwards than backwards (and then there's APL,  =

which I believe is more simply processed backwards than forwards).  I  =

wonder if the enclosed clauses of Algol-68 (if...fi, do...od, etc.)  =

were explicitly meant to be just as easily parsed in reverse, or if  =

it was simply a side effect of eschewing arbitrary choices?

-Dave

-- =

To unsubscribe: http://lists.canonical.org/mailman/listinfo/kragen-discuss