Related articles |
---|
[3 earlier articles] |
Re: Programming language specification languages rkrayhawk@aol.com (2001-09-25) |
Re: Programming language specification languages idbaxter@semdesigns.com (Ira D. Baxter) (2001-09-26) |
Re: Programming language specification languages vbdis@aol.com (2001-09-26) |
Re: Programming language specification languages wclodius@aol.com (2001-10-06) |
Re: Programming language specification languages joachim_d@gmx.de (Joachim Durchholz) (2001-10-06) |
Re: Programming language specification languages joachim_d@gmx.de (Joachim Durchholz) (2001-10-06) |
Re: Programming language specification languages neelk@alum.mit.edu (2001-10-10) |
Re: Programming language specification languages wclodius@aol.com (2001-10-20) |
Re: Programming language specification languages nmm1@cus.cam.ac.uk (2001-10-21) |
From: | neelk@alum.mit.edu (Neelakantan Krishnaswami) |
Newsgroups: | comp.compilers |
Date: | 10 Oct 2001 15:49:14 -0400 |
Organization: | Compilers Central |
References: | 01-09-087 01-10-020 |
Keywords: | design |
Posted-Date: | 10 Oct 2001 15:49:14 EDT |
On 6 Oct 2001 16:35:54 -0400, Joachim Durchholz <joachim_d@gmx.de> wrote:
>Nick Maclaren <nmm1@cus.cam.ac.uk> wrote:
>> What I want is something enough beyond BNF that I can define
>> type-consistency, scoping, aliasing and value-constraint rules. The
>> really fancy stuff can be said in English.
>
> Take a look at two-level grammars (van Wijngaarden). It's a sort of
> "grammars with attributes"; you stuff the types (and scoping
> information etc.) into the attributes.
I think that I'd rather use a structural operational semantics, since
there seems to be a *lot* more literature about specifying languages
with them. One of their really nice properties is that typechecking
and evaluation can be specified using the same formalism, so that if
you want to define more than typechecking it's easy to extend the
definition.
As for manipulating operational semantics (is that the right plural?),
you should probably use a theorem prover, like Coq or Twelf or Lambda
Prolog. They can help ensure that you don't screw up the algebra at
any stage. (I like Twelf, myself. It has very good Emacs integration.)
Neel
Return to the
comp.compilers page.
Search the
comp.compilers archives again.