An advantage of having Ron run the site, is that he can decide this.
Admittedly, my focus on the core algorithm may not be right for someone
totally new to Marpa. Perhaps it's better on my own Marpa site.
-- jeffrey
On 08/27/2014 10:22 PM, Ruslan Shvedov wrote:
On Wed, Aug 27, 2014 at 8:43 PM, Jeffrey Kegler
<[email protected]
<mailto:[email protected]>> wrote:
Thanks! The blurb by intent focuses on the Marpa algorithm
itself, and not its implementation in Marpa::R2.
Yes it does (and you as the author surely know better), but that
prompted my suggestion in the first place -- the Marpa homepage is
hardly intended only for academics.
I just thought that implementation and applications make an algorithm
interesting to more people and thus deserve mentioning alongside it.
To this end, a paragraph for each of implementation, applications, and
highlights of the algorithm would make the blurb interesting to more
readers.
Let's consider the following statements:
Marpa can parse LRR, LL(k) and LR(k), and LALR grammars. (1) and
Marpa can parse C, XML, JavaScript, SQL, IDL ... (2)
(1) is more theoretical; (2) is more practical, but they look
complimentary and hopefully work well together.
The rest of Ron's page goes on to address
implementation/applications/highlights.
Sure, and the blurb can contain links to the other sections of the page.
As an aside, one thing that I dislike in the promotion of other
technologies is the mixing in of prototypes, experiments and
future plans with well-tested and production systems. Of course,
when software first comes out, everything is a future or an
experiment and nothing has a long track record. But at this point
I know that Marpa is in use for production in several places, and
I'd like to form a list of as many of these as it's possible to
make public.
Very true (and a useful thing to know for me, because I admit to
having never thought about it like that), but prototypes, experiments
and future plans is what production code comes from, so they can be
useful to mention (clearly marked as such, of course) along with
production uses.
-- jeffrey
rns
On 08/27/2014 06:00 AM, Ruslan Shvedov wrote:
Looks very good; I'd suggest adding 3 paragraphs: about
implementation, applications, and highlights as preliminary
drafted below ([](...) is markdown syntax for hyperlinks):
Marpa is implemented as a [C library](libmarpa-repo), which is
currently used from
[Perl](https://metacpan.org/release/Marpa-R2), [C](...),
[Go](...), and [C++](...), and can be used from any other
language which supports linking with C libraries. The next big
step will be using Lua as an extension language to libmarpa.
Current Marpa applications include parsers for [C](...),
[JavaScript](...), [OMG's Interface Definition Language
(IDL)](...), [SQL](...), [XML 1.0](...), [JSON](...),
[XPath](...) [to name a few](link to other Marpa applications
later in the page).
[The Perl interface to
Marpa](https://metacpan.org/release/Marpa-R2) supports
[precedence parsing and n-ary
associativity](https://metacpan.org/pod/distribution/Marpa-R2/pod/Scanless/DSL.pod#Synopsis)
out
of the box.
On Tue, Aug 26, 2014 at 9:55 PM, Jeffrey Kegler
<[email protected]
<mailto:[email protected]>> wrote:
I asked Ron Savage to create a new web site to be the public
face of Marpa -- an "unofficial official" web site. (Ron has
editorial control, and mine
<http://jeffreykegler.github.io/Marpa-web-site/> remains the
"official official" web site.) Ron generously agreed and it
is under construction here <http://savage.net.au/Marpa.html>.
While rethinking all this, I wrote up a new top-level
description of Marpa, aimed at those who are totally new to it:
The Marpa parser is intended to replace, and to go well
beyond, recursive
descent and the yacc family of parsers. It is a new
algorithm, based
on prior work by Jay Earley, Joop Leo, John Aycock and R.
Nigel Horspool.
* Marpa is fast. It parses in linear time
* All unambiguous grammars, unless they have unbounded middle
recursions which are unmarked. (The LR-regular, or LRR,
grammars.)
* Ambiguous grammars, if they are the unions of a
finite set of LRR grammars.
* All the grammars that recursive descent parses.
(These are the LL(k) grammars, a subset of LRR.)
* All grammars that the yacc family parses.
(These are the LALR grammars, a small subset of LR(k),
which is in
turn a subset of LRR.)
* Marpa is powerful. Marpa will parse anything you can
write in BNF,
including any mixture of left, right and middle recursion,
as well
as cycles.
* Marpa is flexible. Like recursive descent, Marpa allows
you to stop
and do your own custom processing. Unlike recursive descent,
Marpa
makes available to you detailed information about the parse
so far --
which rules and symbols have been recognized, with their
locations,
and which rules and symbols are expected next.
Comments welcome.
Jeffrey
--
You received this message because you are subscribed to the
Google Groups "marpa parser" group.
To unsubscribe from this group and stop receiving emails from
it, send an email to
[email protected]
<mailto:[email protected]>.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the
Google Groups "marpa parser" group.
To unsubscribe from this group and stop receiving emails from it,
send an email to [email protected]
<mailto:[email protected]>.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google
Groups "marpa parser" group.
To unsubscribe from this group and stop receiving emails from it,
send an email to [email protected]
<mailto:[email protected]>.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google
Groups "marpa parser" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to [email protected]
<mailto:[email protected]>.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "marpa
parser" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.