JSON is Robot Barf
JSON has its place. But I think we're overusing it in places where a good notation would serve us better.
Continue reading {JSON is Robot Barf}
Kynetx Platform Update
We've had some changes in the Kynetx platform, KNS, over the last few weeks that I wanted to update people on. First, a few weeks ago, we cut over to a new parser. Yeah, if you're keeping score, this is number 3. The first parser was based on HOP. We replaced that with Damian Conway's Parse::RecDescent as chronicled in a blog post I did in September of 2008. The third (last?) parser is based on the ANTLR parser generator. Cid Dennis did most of the hard work of creating the new Parser and Mark Horstmeier did the Perl integration
Continue reading {Kynetx Platform Update }
Using ANTLR and PerlXS to Generate a Parser
As I mentioned earlier, we're anticipating changing out the current Parse::RecDescent based parser in the Kynetx platform with one that will perform better. We've been going down the path of using ANTLR, a modern parser generator that supports multiple target languages. That flexibility was one of the key thing that got us interested in ANTLR. We might want to generate Ruby or Javascript KRL generators at some point. But of course right now we want to generate a Perl parser since that's what the underlying Kynetx Event Service (KES) is written in (it's an Apache module). ANTLR doesn't support
Continue reading {Using ANTLR and PerlXS to Generate a Parser }
Parsing for a Cloud-Based Programming Language
If you follow my blog, you're probably all too aware that Kynetx provides a cloud-based execution engine for a programming language called the Kynetx Rule Language, or KRL. The execution engine is a big, programmable event-loop in the cloud and KRL is the language that is used to program it. As with any language, the first step in executing it is to parse it into an abstract syntax tree. The KRL parser has had it's ups and downs. A while ago, I reported on changing out the HOP parser for Damian Conway's RecDescent (note that the system is written
Continue reading {Parsing for a Cloud-Based Programming Language }
Parsing with Perl
The system we're building at Kynetx includes a domain specific language that uses rules to create JavaScript programs that get sent down to the browser. I've documented our decision to use a domain specific langauge and our choice of Perl in other posts. When I started this project, I was reading Mark Dominus' book Higher Order Perl and started using his HOP parser to play around with. One thing led to another an before you know it I had a full blown language parser in HOP without giving much thought as to whether or not I'd made the right
Continue reading {Parsing with Perl}
Fast, Interpreted XML Parsing
I'm in a presentation on a paper called A High-Performance Interpretive Approach to Schema-Directed Parsing (here's the PDF for the paper). Last year these authors presented a fast, validating XML parser (called Screamer) that outperforms Xerces (validating) and Expat (non-validating) by considerable amounts. The problem was that it compiled a custom parser for each XML schema. The fact that it required compiling code made it undeployable with products like DB2 (they work for IBM). This paper presents an interpreted version of Screamer, called iScreamer that is still fast, but doesn't require using a compiler. Instead it produces a parse
Continue reading {Fast, Interpreted XML Parsing}
XML Screamer, a Fast XML Parser
This afternoon I attended the XML session. The first speaker was Eric Perkins who spoke on XML Screamer, an integrated, high-performance XML parser/validator. This paper has been nominated for the best paper award. (See the paper.) XML parsers are slow. Many people think that the human readability of XML is what makes it slow. How fast should we be able to go? Reading through an input file should take about 10 cycles/byte (1GHz processor). Xerces-C does 6Mbytes/Sec/GHz. Expat is 12Mbytes/Sec/GHz. What's happening with all the other cycles? Eric walks through the steps required to parse a file. There are
Continue reading {XML Screamer, a Fast XML Parser}





