unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Mike Mattie <codermattie@gmail.com>
To: emacs-devel@gnu.org
Subject: Re: Being constructive [Was: Nit-picking]
Date: Sat, 12 Apr 2008 14:38:33 -0700	[thread overview]
Message-ID: <20080412143833.1901f439@reforged> (raw)
In-Reply-To: <20080412114611.GE1781@muc.de>

[-- Attachment #1: Type: text/plain, Size: 2724 bytes --]

On Sat, 12 Apr 2008 11:46:11 +0000
Alan Mackenzie <acm@muc.de> wrote:

> Hi, Eli!
> 
> On Sat Apr 12, 2008 at 01:30:27PM +0300, Eli Zaretskii wrote:
> 
> > [Moving this to emacs-devel, where it belongs.]
> 

[snip]

> I think it would be psychologically very uplifting for each of us to
> post, in a constructive non contentious fashion, what we are working
> on, what we are trying to achieve, and so on.  This was exactly what
> my previous post was meant to be.  Eli, could you possibly respond
> again to that last post with a summary of what _you_ are working on?
> We could develop a very positive constructive thread from this.  :-)
> 

I am working on a Parser Compiler that generates pure elisp parsers from
a macro DSL.

http://www.emacswiki.org/cgi-bin/emacs-en/ParserCompiler

There are many times when a regex has turned into a ad-hoc parser. My
goal is to make those small to medium size parsers compact and declarative.

I think it is very useful considering the Emacs design of using co-processes
for everything external. That's alot of small parsing jobs to hook up
some simple and not so simple tools. 

The architecture of the design is unique: the compiler itself is
programmable reducing the need for call-outs to handle the parts
of the grammar beyond the scope of the usual meta-operators.

There is often a claim that open-source chases head-lights but
this design for better or worse is unique. It's baking on
EmacsWiki while I evaluate it's properties.

For example if PEG and CFG are called grammar "classes" in the logical
sense it will be possible to mix those classes along with a grammar
specific class (user defined) with well defined behavior. That is
unique AFAIK (please cite related works if you know where this has
been done before).

When it is completed I will likely port it to mzScheme to compare
it against the performance of standard designs, and evaluate how
the design is expressed when I don't have to kludge abstraction 
facilities such as co-routines. I will always maintain the elisp 
version though because Emacs is always with me :)

It won't hit 0.1.0 until left-recursion is solved eliminating the
possibility of user defined infinite loops.

Currently it works well with right-recursive grammars, builds canonical
AST trees, and the code emitted looks like I wrote it by hand - the back-end
folds emitted elisp to take advantage of special forms that can be shared.

When it hit's 0.1.0 I'll post a mention again and submit it to ELPA.

It's my thank-you note to the Emacs community. If some-one wants to write
a counter thank-you note Elisp TCO is at the top of my elisp wish-list.

Cheers,
Mike Mattie

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

  parent reply	other threads:[~2008-04-12 21:38 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-04-09 21:09 23.0.60; M-( and M-) should not be bound in ESC map Drew Adams
2008-04-09 21:32 ` Andreas Schwab
2008-04-09 22:15   ` Drew Adams
2008-04-10  6:33     ` David Hansen
2008-04-10  9:20       ` Reiner Steib
2008-04-10  8:31     ` Andreas Schwab
2008-04-10 12:55   ` Richard Stallman
2008-04-10 13:45     ` Paul R
2008-04-10 15:49     ` Alan Mackenzie
2008-04-10 15:45       ` Juanma Barranquero
2008-04-10 16:24         ` Alan Mackenzie
2008-04-10 16:15           ` Juanma Barranquero
2008-04-10 21:09             ` David Kastrup
2008-04-10 22:34               ` Juanma Barranquero
2008-04-11  2:23             ` Glenn Morris
2008-04-11  5:03               ` Thomas Lord
2008-04-11  8:03                 ` tomas
2008-04-12  0:11                 ` Richard Stallman
2008-04-12  1:13                   ` Thomas Lord
2008-04-12  5:49                     ` David Kastrup
2008-04-12  7:31                       ` Alan Mackenzie
2008-04-12 14:03                         ` Thomas Lord
2008-04-12 20:07                           ` David Kastrup
2008-04-12 21:24                             ` Thomas Lord
2008-04-12 20:34                         ` Stephen J. Turnbull
2008-04-11  8:41               ` Paul R
2008-04-11  9:40               ` Juanma Barranquero
2008-04-10 17:10           ` Thomas Lord
2008-04-10 17:10             ` Paul R
2008-04-10 19:21               ` Stephen J. Turnbull
2008-04-12  0:11         ` Richard Stallman
2008-04-10 16:18     ` Drew Adams
2008-04-12  0:09       ` Richard Stallman
2008-04-12  0:09       ` Richard Stallman
2008-04-12  8:40         ` Nit-picking (was: 23.0.60; M-( and M-) should not be bound in ESC map) Eli Zaretskii
2008-04-12  9:35           ` Nit-picking Alan Mackenzie
2008-04-12 10:30             ` Nit-picking Eli Zaretskii
2008-04-12 11:46               ` Being constructive [Was: Nit-picking] Alan Mackenzie
2008-04-12 13:17                 ` Eli Zaretskii
2008-04-12 14:14                   ` Jason Rumney
2008-04-12 16:51                     ` Eli Zaretskii
2008-04-12 17:16                       ` Eli Zaretskii
2008-04-12 21:38                 ` Mike Mattie [this message]
2008-04-12 15:06         ` 23.0.60; M-( and M-) should not be bound in ESC map Drew Adams
2008-04-13  1:58           ` Richard Stallman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080412143833.1901f439@reforged \
    --to=codermattie@gmail.com \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).