Meta-S 4.0 Released

Quinn Tyler Jackson <qjackson@shaw.ca>
6 Feb 2003 00:13:11 -0500

          From comp.compilers

Related articles
Meta-S 4.0 Released qjackson@shaw.ca (Quinn Tyler Jackson) (2003-02-06)
| List of all articles for this month |

From: Quinn Tyler Jackson <qjackson@shaw.ca>
Newsgroups: comp.compilers
Date: 6 Feb 2003 00:13:11 -0500
Organization: Compilers Central
Keywords: parse, tools, available
Posted-Date: 06 Feb 2003 00:13:11 EST

Jackson Solutions is happy to announce the release of version 4.0 of
the Meta-S Grammar Development System.


Meta-S is a visual grammar development system that allows you to
iteratively design, develop, and test grammars just as you would write
a program. Once you are confident that a grammar is behaving
correctly, you generate a portable C++ parser class that represents a
grammar that behaves exactly as in the IDE.


# Meta-S grammars are:


        * Type 0 adaptive


        Grammars that contain both predicates and binding can emulate an
infinite tape Turing Machine.


        * dynamic


        Grammars are compiled at run time, thus allowing for dynamic
changes to the grammar, or loading from text sources.


# Meta-S grammars allow you to, without external code:


        * build parse trees and symbol tables


        Example:


        R ::= "DECLARE" ## $d.v<-(id) ## "AS" ## $(d.v).dt<-(type);


        The above example adds id to the declared variables table, and
remembers the declared variable's data type.


        * effect sophisticated semantic checking


        Example:


        R ::= "FOR" ## ($v(id)<v=d.v>)<(v).dt=numeric_type> ## "=" ...


        The above example verifies that the variable in a BASIC-type FOR
statement has been previously declared, and that it is a numeric_type
before continuing with the parse.


        * generate custom errors


        Example:


        R ::= "FOR" ## ($v(id)<v=d.v /"undeclared variable"/>) ...


  The above example generates the run-time parsing error "undeclared
variable" if the variable referenced in the FOR statement has not been
previously declared.


# Using the integrated profiler, you can:


        * test grammar efficiency without writing code


        Characters/Sec., Lines/Sec., Ticks/Hit, Ticks/Miss


        * guarantee production coverage against test data


          View how many times each production hits and misses.


# Some of the example grammars included with version 4.0:


        * C++ (this grammar is still experimental)


        * C# (conforms to published Microsoft C# specification)


        * HTML/XML (grammar adapts to the stricter rules of XML based upon
input encountered)


        * Examples of classically context-sensitive languages such as:


                - a^n b^n c^n
                - a^n b^m c^n d^m (cross agreement)
                - a^n b^m c^mn
                - w w (redoubling, ie. dogdog or catcat)


For more information, visit:


        http://www.meta-s.com


Quinn Tyler Jackson


Post a followup to this message

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