2011.08.03 in #2Marpa::XS 0.8.0 was released
Marpa is a parser for any BNF based language. Jeffrey Kegler reports on the new release of his module with some interesting details.
2011.09.19 in #9Perl and Parsing 9: 'Use' and the Ruby Slippers
Jeffrey Kegler, in his Ocean of Awareness explains the 'use' statement of Perl. Probably way more than you'd every want to know about it. Unless of course, you would like to understand how it works. It's not easy so Jeffrey get some help from the Wizard of Oz.
2011.10.14 in #12Announcing Marpa::XS 0.016000
The Marpa parser for grammars is now fully implemented in C. Jeffrey Kegler keeps working on Marpa which is great. He also keeps blogging that makes it easy to report about the new releases.
2011.11.07 in #16Marpa v. Perl regexes: some numbers
Jeffrey Kegler pitches his Marpa engine against the regex engine of Perl. He says that in some cases Marpa is much faster than any regex could be. Then a discussion with Tom Christiansen makes the whole article even more interesting.
2011.11.18 in #17What is the Marpa algorithm?
We already saw a few articles by Jeffrey Kegler about his Marpa module. In this article he explains the theory and the algorithm behind it.
2011.11.21 in #18Which Marpa distribution to use?
Jeffrey Kegler continous his regular Marpa this time explaining about Marpa broadcast. This time he writes about the different use cases of Marpa::XS, Marpa::PP and 'Bare name' Marpa.
2011.11.30 in #19How to Parse HTML
I am very impressed by the persistence of Jeffrey Kegler in explaining what is Marpa and showing how it can be used. This time he picks up a piece of real world HTML code and shows how to parse it and how to deal with missing tags.
2011.12.07 in #20How to parse HTML, part 2
If you have been following the posts of Jeffrey Kegler - and I saw many people clicked on those links - then you might be interested in the second part of this article.
2011.12.22 in #22Trying Marpa to parse CSS
I am sure some of you are already fed-up with Jeffrey Kegler constantly writing about Marpa. So I am happy to tell you that this time it is Wolfgang Kinkeldei who shows how he used Marpa to parse CSS.
2012.01.05 in #24What! No Lexer?
Jeffrey Kegler writes about the apparent lack of a lexer in Marpa::XS.
2012.01.21 in #26Marpa and OO
Jeffrey Kegler writes about code reuse and the Marpa module and algorithm.
2012.02.25 in #31What's new with Marpa
Jeffrey Kegler has a new revision to the Marpa theory paper and provides some update on his plans and progress with Marpa::R2 and Milarepa.
2012.03.10 in #33Making the parsing game safe
In this post Jeffrey Kegler talks about problems where parsing has been avoided. As I understand that mostly means areas where we try to use regular expressions to extract information. We might call it parsing but we won't use the words 'grammar' or 'language' when describing the thing that needs to be parsed.
2012.03.12 in #34A Marpa mailing list
Jeffrey Kegler announced the creation of a Google mailing list for Marpa by Ruslan Zakirov.
2012.03.29 in #36The syntax of English is undecidable
It is only related to Perl as this was written by Jeffrey Kegler, author of the Marpa parser. It generated responses from some people who have not commented yet which is really nice. Broadening the Perl community.
2012.06.12 in #47Announcing Marpa::R2
It seems there was a lull in news about Marpa - the new parsing algorithm, but now Jeffrey Kegler has announced this new, alpha version of the package. This is faster then the previous versions and does not require Glib.
2012.06.20 in #48Marpa & customizing the Ruby Slippers
Jeffrey Kegler has released Marpa::R2, and I am wondering when D2 will be added. Anyway, what I really like is the 'situational awareness' that helps providing better error messages for when the parsing fails. That's actually one of the major issues I see with regexes: how do you know why it has not matched. This might be a better solution.
2012.07.08 in #50Two new interfaces to Marpa
Jeffrey Kegler has created Libmarpa - a C library for using Marpa and Marpa::R2::Thin, which is, not surprisingly, a thin layer of Perl above Marpa.
2012.08.08 in #55Marpa v. Perl regexes: a rematch
How fast can you find balanced sets of parentheses in a string of parentheses? That's the benchmark Jeffrey Kegler ran again with the latest version of Marpa. Plenty of links also included to the earlier results and to an explanation: What is Marpa?
2012.08.22 in #57Precedence parsing made simpler
Jeffrey Kegler explains how Marpa parses arbitrary BNF which was not the case with traditional parsers.
2012.09.18 in #61Parsing on your new hyper-quantum computer
If I understand it correctly, Jeffrey Kegler is solving the auto-threading problem for grammars. You write the grammar and Marpa will be able to execute it (or parts of it) on multiple cores without you doing extra work. Well, of course you first need to understand how Marpa works and how to build a grammar for it.
2012.10.16 in #65A configurable HTML parser, part 2
In this articles, there is way more than I ever wanted to know about HTML, and the specification of HTML. The thing is, that someone has to know if text is allowed immediately inside tags, or if there needs to be another element. Eg.
. Jeffrey Kegler discusses the topic, and using his Marpa project provides a parser to deal with the problem.
2013.05.30 in #97The Design of Four
'ack', 'cpanm', 'local::lib', 'perlbrew'. Four tools that do one thing, and do it exceedingly well. Jeffrey Kegler muses for a few instants on their streamlined design, and discusses on how they can be taken as examples of exquisitely effective interfaces.
2013.07.07 in #102Parsing Ada Lovelace
Jeffrey Kegler helps us understand Victorian English using Perl and Marpa.
2013.08.01 in #106A Marpa-powered C parser
With all the text processing capabilities of Perl, I am surprised there are no parsers for all the major languages and grammars written in Perl. Maybe Marpa will change this starting with MarpaX::Languages::C::AST released by Jean-Damien Durand.
2014.02.25 in #136Significant newlines? Or semicolons?
Jeffrey Kegler explains that the DSL of Marpa, which is written in itself, can be understood without requiring significant white-spaces, and without an end-of-statement mark.
2014.03 in #138Evolvable languages
Jeffrey Kegler shows some Perl code that is obviously incorrect, to the eyes of a long time Perl developer, but that seems natural. He then shows how could this syntax be allowed using a Marpa preprocessor.
2014.09.09 in #164Parsing: a timeline
Jeffrey Kegler writes about the history of parsing things and how it got to Marpa.
2014.11.02 in #171Reporting mismatched delimiters
You probably have already encountered the case when Perl reports a syntax error and provides a friendly suggestion: 'Might be a runaway multi-line "" string starting on line 5'. Apparently, in the general case it is quite hard to notice when delimiters don't match up. Jeffrey Kegler explains how this can be done using Marpa.
2014.11.17 in #174Parsing: top-down versus bottom-up
Jeffrey Kegler (JKEGL) compares top-down and bottom-up parsing, and explains why the latter has re-emerged as the approach of choice.
2015.12.13 in #230Grammar reuse
Tryting to cool the enthusiasm of a Perl 6 blog author using Marpa?
2016.08 in #266Parsing: an expanded timeline
While most of the article is, as the title says, a timeline of parsing, there are a number of Perl-related references.
2018.06.11 in #360Parsing with Pictures
Pingali and Bilardi, explains how using their new framework, they go on to show that all LL-based and LR-based algorithms are simplifications of their Earley parser.
2018.06.18 in #361Marpa and combinator parsing
In the post on procedural parsing, the subparsers were like combinators, in that they could be called recursively, so that a parse could be built up from components. Like combinators, each child could return, not just a parse, but a set of parses. And, as in combinators, once a child combinator returned its value, the parent parser could resume parsing at a location specified by the child combinator.
2018.06.20 in #361Parsing left recursions
A lot has been written about parsing left recursion. Unfortunately, much of it simply adds to the mystery. In this post, I hope to frame the subject clearly and briefly.
2018.07.09 in #364Undershoot: Parsing theory in 1965
Jeffrey Kegler revisits the question "Why, despite all evidence, is parsing considered solved?", this time supplying some more background.
2018.08.21 in #370Marpa and combinator parsing 2
Jeffrey second part of the series 'Marpa and combinator parsing'. A very detailed description and must read if you like the subject.
2018.08.28 in #371A Haskell challenge
Recently Michael Arntzenius noted that Haskell's native parser has trouble parsing Haskell list comprehensions, so much so that it is an obstacle to new language features. Michael wondered aloud if the Perl-based Marpa (a state of the art Earley/Leo implementation) could do better. Jeffrey Kegler, Marpa's author, took up the challenge. Here is his response.
2018.10.03 in #376Measuring language popularity
Measures of language popularity, even those based on usage in actual codebases, are far more rough than you might think according to Jeffrey. Jeffrey's main interest, as usual, is parsing and he proposes a way to improve the counts with more sophisticated parsing. In the meantime, those of you skimming his post for just the stuff about how the language statistics are gathered (apparently they are not based on actual line counts) should glance at the footnotes.
2018.10.15 in #378"Parsing: a Timeline", version 3.1
The timeline is a painless introduction to a fascinating and important story which is scattered among one of the most forbidding literatures in computer science.