Looking for Beta Testers for Meta-S 5.0

Quinn Tyler Jackson <qjackson@shaw.ca>
31 Jul 2003 12:39:13 -0400

          From comp.compilers

Related articles
Looking for Beta Testers for Meta-S 5.0 qjackson@shaw.ca (Quinn Tyler Jackson) (2003-07-31)
| List of all articles for this month |

From: Quinn Tyler Jackson <qjackson@shaw.ca>
Newsgroups: comp.compilers
Date: 31 Jul 2003 12:39:13 -0400
Organization: Compilers Central
Keywords: parse, administrivia
Posted-Date: 31 Jul 2003 12:39:13 EDT

[This is a one time announcement.]


There have been some exciting changes to Meta-S (www.meta-s.com) in
the upcoming version 5.0, and I'm looking for a few more beta testers.
In particular, I'd like to find some testers on non-Windows, non-Intel
based systems to compile the portability test suite and ABN2CPP, in
order to certify the portability of the core parsing library.

The major addition in version 5.0 is the addition of Lua reduction
code to A-BNF grammars. While it is still possible to write C++
reduction code, Meta-S 5.0 now allows reduction code to be written in
the embedded language Lua (www.lua.org). Unlike any other visual
parsing development environment, this means you can single step
through reduction code entirely without leaving the grammar
development environment. Not only can grammars be instantiated
entirely at run-time, their semantic-checking reduction code can, too.
Grammar development was never as integrated -- no more abandoning
visual grammar development if you have to write semantic checking ad
hockery to get a grammar to parse that "special case".

The LPM engine itself has been tweaked and optimized to such a degree
that a Meta-S benchmark actually parses input more quickly than a
compiled, table-driven LR(1) counterpart. To the tune of about 60,000
CPS more quickly. It may seem counterintuitive that an interpreted
grammar instantiated at run-time could do that, but speed of parsing
has always been a high priority with Meta-S.

Meta-S grammars can be Turing Powerful, which means Meta-S grammars
can be written to accept any language that can be accepted.
Fortunately, Turing Power cannot be introduced into a language by
accident -- so if you do not need to write Type 1 or 0 languages, you
can avoid bumping into the halting problem simply by avoiding certain
A-BNF constructs. If you do need the power, it is there, however, and
writing something like a redoubling grammar can be as compact as:

      grammar Redouble
            S ::= #phi(A.X<-"") redouble;
            redouble ::= $C('[a-zA-Z]') #phi(A.X<-A.X C) #phi(N<=A.X) N |

If you are interested in testing, please email me at qjackson@shaw.ca,
with your name, affiliation, and any relevant experience.


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.