We have decided to migrate the EBON architecture from Eiffel to JML-annotated Java to better integrate it with ongoing work in the Mobius project <http://mobius.inria.fr/>. Fintan Fairmichael and Dan Zimmerman, both project members, are helping with this effort during the Summer of 2007.
I've spent the last few days on the EBON project. I have designed most, but not all, of the the Meta-Object Graph data structures (basically the AST for the EBON parser) and have implemented around 80 classes and just over 600 lines of code.
Now I need to take a break from the project again to prepare for my defense and do thesis rewrites. I plan on returning after this is done, probably in early-to-mid June.
We have release our first EBON package. It contains a full scanner (lexer) for the BON specification language, complete with over 300 unit tests. Also included is our partially complete BON parser which is about 80% complete.
Now that I'm doing with my dissertation and job applications, the EBON project is restarting. To re-introduce myself to the current state of the scanner and parser, I'm using Gobo's getest to write a large number of unit tests for both. This has helped me discover a half dozen subtle bugs in the scanner specification after writing only 14 tests for a total of 307 assertions.
The primary author/driver of the EBON toolsuite (me, Joe Kiniry) is currently finishing revisions on his Ph.D. dissertation. I'll be defending sometime in the next couple of months. Work on EBON will start up again after that point in time. Note that EBON is briefly discussed in my dissertation as an example domain for my theory of reuse.
I'm very excited about this work, and many folks in the community are itching to get their hands on this technology, but you have to have your priorities...
I've rewritten the scanner to use the tokens generated by the grammar specification. The new scanner passes all test cases from the text as well as my two system specifications (Monitoring and Connector). Now I'm moving on to the parser to restructure the grammar rules for the new scanner.
A first-draft homepage is up. It is now part of the repository. I've checked out a snapshot of the ebon/docs directory on the shell server and added a cron job that should automatically update the web pages once a day so that our site is kept up-to-date.
The BON grammar is now processed without errors by geyacc. Now I need to understand how geyacc/gelex interact (see Parser Tasks for details) and get everything hooked up so that we can check the grammar for correctness.
I haven't yet written a home page. For a summary of the project either (a) go to the "Docs" link and read the quick summary, or (b) surf the CVS repository's "docs" directory and read "BON.txt".
The first by-hand pass converting the EBNF BON grammar to Geyacc format is completed. I'm now rechecking it for errors. Next we'll start running it through Geyacc iteratively until we have a working grammar. No semantic actions yet exist in the grammar because we haven't yet started writing any of the reflective data structures as of yet.
The KindSoftware CVS repository for the Extended BON Toolsuite project has been imported into the SourceForge CVS repository. The contents currently consist of a high-level specification of the BON Toolsuite, a BON EBNF grammar, a set of examples and testsuites, a CSS1 stylesheet for use in XHTML documentation, a BON scanner and the first 1/3 or so of the BON parser.
We have been okayed as a SF project. Joe will be importing the initial documentation and code in the next day or so. We've added Dr. Dan Zimmerman and a developer; he might be helping out with this research project in the coming weeks. We're still waiting on Tom Murray's user information to add him.