Ocean of Awareness

Jeffrey Kegler's blog about Marpa, his new parsing algorithm, and other topics of interest

Jeffrey's personal website


Marpa resources

The Marpa website

The Ocean of Awareness blog: home page, chronological index, and annotated index.

Posts, in reverse chronological order


July 8 Undershoot: Parsing theory in 1965

June 20 Parsing left recursions

June 18 Marpa and combinator parsing

June 17 Marpa and procedural parsing

June 11 Parsing with pictures

June 4 Why is parsing considered solved?

May 28 Is a language just a set of strings?

May 14 Parsers and Useful Power

April 10 Version 3 of "Parsing: a timeline"


August 23 Parsing: an expanded timeline

March 22 Introduction to Marpa Book in progress

March 9 What parser do birds use?

January 6 What are the reasonable computer languages?


December 20 Top-down parsing is guessing

December 13 Grammar reuse

August 29 Fast handy languages

March 11 Linear? Yeah right.

March 2 PEG: Ambiguity, precision and confusion


November 15 Parsing: Top-down versus bottom-up

November 4 Removing obsolete versions of Marpa from CPAN

November 1 Reporting mismatched delimiters

September 7 Parsing: a timeline

September 1 Marpa has a new web page

August 18 Language design: Exploiting ambiguity

March 10 Evolvable languages

February 25 Significant newlines? Or semicolons?


August 1 A Marpa-powered C parser

July 7 Parsing Ada Lovelace

June 17 Marpa v. Parse::RecDescent: a rematch

June 10 Mixing procedural and declarative parsing gracefully

May 31 The Design of Four

May 27 Why Marpa works: table parsing

April 29 Is Earley parsing fast enough?

April 22 Marpa's SLIF now allows procedural parsing

March 23 What if languages were free?

March 20 The Interpreter Design Pattern

March 11 BNF to AST

January 13 A language for writing languages

January 8 Making DSL's even simpler

January 2 Announcing Marpa's Scanless interface


December 31 A self-parsing and self-lexing grammar

December 2 Smart whitespace and the Ruby Slippers

November 25 Announcing a full release of Marpa::R2

November 18 A Marpa tutorial: iterative parser development

November 11 A Marpa tutorial: pattern searches

November 4 A grammar that exemplifies, describes and parses itself

October 30 A Marpa DSL tutorial: Error reporting made easy

October 21 Configuring the Ruby Slippers for HTML

October 15 A configurable HTML parser, part 2

October 8 A Configurable HTML Parser

September 15 Parsing on your new hyper-quantum computer

September 13 A Marpa-based HTML reformatter

September 3 Marpa::R2 is beta

August 26 Domain-Specific Languages made simpler

August 22 Precedence parsing made simpler

August 12 The solved problem that isn't, is

August 7 Marpa v. Perl regexes: a rematch

July 31 Rudy Rucker and Kurt Goedel

July 26 Prefixing the Ruby Slippers, and the Bigfoot Maneuver

July 22 Partial parsing and error reporting

July 8 Two new interfaces to Marpa

June 26 The useful, the playful, the easy, the hard and the beautiful

June 20 Marpa & customizing the Ruby Slippers

June 12 Announcing Marpa::R2

April 12 Marpa v. Parse::RecDescent: some numbers

March 29 The syntax of English is undecidable

March 12 A Marpa mailing list

March 10 Making the parsing game safe

March 1 User experiences with Marpa: some observations

February 26 What's new with Marpa

February 15 A Marpa paper

January 21 Marpa and OO

January 13 Developing parsers incrementally with Marpa

January 5 What! No Lexer?


December 26 A new web site for Marpa

December 21 Marpa::XS is now 1.000000

December 14 How to parse HTML, part 3

December 12 Marpa::XS release candidate now available

December 7 How to parse HTML, part 2

November 30 How to Parse HTML

November 27 Marpa and the Ruby Slippers

November 21 Which Marpa distribution to use?

November 18 What is the Marpa algorithm?

November 7 Marpa v. Perl regexes: some numbers

October 30 Perl and Parsing 12: Beating up on the "use" statement

October 23 Marpa::XS is now beta

October 14 Announcing Marpa::XS 0.016000

October 8 Perl and Parsing 11: Are all Perl programs parseable?

October 6 Perl and Parsing 10: "Use" the Easier Way

September 19 Perl and Parsing 9: "Use" and the Ruby Slippers

September 12 Announcing Marpa::XS 0.010000

August 7 Changes to The Way Marpa Orders Parse Results

August 3 Announcing Marpa::XS 0.8.0

May 13 Bovicide 6: The Final Requirement

April 17 Announcing Marpa::XS

April 10 Bovicide 5: Parse-time Error Reporting

March 24 Perl and Parsing 8: The Where and Why of Rejection

March 17 Progress on Marpa::XS

February 16 Perl and Parsing 7: Do List Operators have Left/Right Precedence?

January 23 Why I Stuck With Perl

January 9 Perl and Parsing 6: Error Handling


December 26 Why the Bovicidal Rage? (Killing Yacc: 4)

December 15 Killing Yacc: 1, 2 & 3

December 5 Miniminalism: Philosophy, Tradition or Lunacy?

November 17 Better than Literate!

November 2 Marpa's Sudden Portability Adventure

October 11 Announcing Marpa 0.200000

October 7 Perl & Parsing: A Metapost

September 23 Perl and Parsing 5: Rewind

August 22 Perl and Parsing 4: The Golden Age of Right Parsing

July 6 Parsing Perl 3: Perl and Minimalism

June 28 Parsing Perl 2: Down the Garden Path

June 21 Jay Earley's Idea

June 19 Parsing with Ruby Slippers

June 5 Marpa is now O(n) for Right Recursions

May 2 BNF Parsing and Linear Time

April 21 Zooey Deschanel to star as Ada

March 28 High-level HTML Parsing

March 24 An HTML Pretty-printer

March 4 Opera 2.0

February 7 Spock and Data look at CPAN

January 5 Ringo Starr and Willy Sutton On Programming Languages


December 31 Marpa: Practical General BNF Parsing

December 21 Alpha Modules and Perl's use Statement

December 17 In Praise of NYTProf