Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.compilers > #1537

Yacco2 - Inroduction to some of its features

Path csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!usenet.blueworldhosting.com!feeder01.blueworldhosting.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news.iecc.com!.POSTED!nerds-end
From Dave Bone <cc.yacco2@yahoo.ca>
Newsgroups comp.compilers
Subject Yacco2 - Inroduction to some of its features
Date Thu, 26 Feb 2015 09:10:55 -0800
Organization Compilers Central
Lines 47
Sender news@iecc.com
Approved comp.compilers@iecc.com
Message-ID <15-03-001@comp.compilers> (permalink)
NNTP-Posting-Host news.iecc.com
Mime-Version 1.0
Content-Type text/plain; charset=us-ascii
X-Trace miucha.iecc.com 1425235569 83330 2001:470:1f07:1126:0:676f:7373:6970 (1 Mar 2015 18:46:09 GMT)
X-Complaints-To abuse@iecc.com
NNTP-Posting-Date Sun, 1 Mar 2015 18:46:09 +0000 (UTC)
Keywords tools, available
Posted-Date 01 Mar 2015 13:46:08 EST
X-submission-address compilers@iecc.com
X-moderator-address compilers-request@iecc.com
X-FAQ-and-archives http://compilers.iecc.com
Authentication-Results iecc.com; spf=none spf.mailfrom=cc.yacco2@yahoo.ca spf.helo=nm30-vm3.bullet.mail.ne1.yahoo.com; dkim=pass header.d=yahoo.ca header.b="DLasJYoc"; dmarc=pass header.from=yahoo.ca policy=none
Xref csiph.com comp.compilers:1537

Show key headers only | View raw


Hi Compiler people,
I would like to in(tro))duce you to some of Yacco2's features for your cerebral considerations/investigations.
At www.ctan.org, you will find the Yacco2 project with a link to its
distribution pdf describing ``how to install'', and documents to read
in acclimatizing / acquainting yourself to Yacco2.

For the Computer Science people consideration/study:
1)    Nondeterministic Lr(1) multi-threaded grammars. 2 grammar types: monolithic and threaded
1.5) Nested parallel parsing with compiler writer grammar code to  arbitrate on potential multiple outcomes .
       The arbitration is within each grammar's context to deal with its called threads's outcomes.
       A grammar can have many different arbitration code points throughout it.
1.6) Due to threading Yacco2 handles without any ambiguity subset / super set grammar expressions:
       For simple example, try defining a grammar that defines an identifier and also a keyword
2)    Modular grammars can be reused/shared in other projects
       For example, the C++ comment type can be recycled into another project's language definition
3)    Look ahead boundary expressions tuneable per threaded grammar
4)   Wild card grammar expressions
5)   Optimizations on threading versus procedural grammars dispatching
6)   C++ emitted user syntax-directed code
7)   Full C++ inheritance/template facilities open to grammar writer: Yacco2's  input / output containers use this
8)   API has complete tree based creators/walkers with token filters
9)   Ambiguity avoidance
10) Out-of-the-box error reporting where a grammar is used to process error(s). Self dealing with errant self ;}
11) Various dynamic tracing facilities for debugging: both global to the project, and specific to a grammar
12) Bottom-up and top-down (recursive decent) parsing genre mixture supported

Document(s) generation:
1) All grammars can produce pdf  documents using Cweb's cweave program and mpost's graphic program along with full TeX support.
    The grammar's expressions are drawn in the spirit of Pascal's railroad diagrams accompanied by their syntax directed code
2) Lr(1) tables can be  pdf / TeX generated
3) An overall compendium of your project  grammars with a table of contents with each grammar's  summary.
    Each grammar is described and contains its hierarchy of called grammars.

The distribution contains all the documents for Yacco2 including the generated grammar documents in the ../docs folder.
There is a Quality Assurance folder that tests out the distribution against various published grammars verifying lrness.
For example grammars from Pager, Knuth, Deremer and Pennello, Spector, Kristensen and  Madsen.

The testout pdf document in ../docs folder uses one of Pager's
grammars to illustrate how one would go about using Yacco2 for one's
own project.

It is written as a ``literate program'' describing what one would go through to create your own compiler/translator.

Hope this entices yew to evaluate Yacco2 and its usefulness. I look forward hearing from yew.

Regards
Dave Bone

Back to comp.compilers | Previous | Next | Find similar | Unroll thread


Thread

Yacco2 - Inroduction to some of its features Dave Bone <cc.yacco2@yahoo.ca> - 2015-02-26 09:10 -0800

csiph-web