Related articles |
---|
EBNF open letter 72634.2402@CompuServe.com (1994-09-11) |
Re: EBNF open letter mabp@bga.com (1994-09-14) |
Re: EBNF open letter fjh@munta.cs.mu.OZ.AU (1994-09-17) |
Re: EBNF open letter dbaarda@ozemail.com.au (Don Baarda) (1994-09-18) |
Newsgroups: | comp.compilers |
From: | mabp@bga.com (Michael Parkes) |
Keywords: | EBNF, attribute |
Organization: | Real/Time Communications - Bob Gustwick and Associates |
References: | 94-09-030 |
Date: | Wed, 14 Sep 1994 15:37:12 GMT |
In article 94-09-030 you wrote:
: Many years ago, Niklaus Wirth proposed a notation for defining the syntax
: of programming languages. This metalanguage is called "extended
: Backus-Naur Form," or EBNF. Although its earliest publication seems to
: have been in a very short article in the Communications of the ACM in
: 1977, it is still alive and well. Recent ANSI/IEEE and ISO/IEC standards
: have made use of it.
The concept of using EBNF for defining a language is a fairly old idea.
Moreover, BNF was used in the definition of Algol 60 to considerable
effect. However, the big problem is that BNF and EBNF only define the
language syntax. This is easy enough using many other notations.
The larger problem is defining the semantics. Once again, notations exist
for this problem as well. The best know being Attribute Grammars.
These grammars are usually a form of EBNF with additional attribution
to deal with the semantics. A number of tools currently exist including
the one I worked on called the Aston Compiler Constructor (ACC). An
attribute grammar can COMPLETELY define a language such as Pascal in about
6,000 lines assuming there is some target notation (such as the MC68000
instruction set). Basically, these tools are great and are used by
smart compiler writers everywhere. The final result is not only a
concise description of the programming language but is also an executable
commercial quality compiler. However, getting a standard for such
tools is almost impossible. Hence, it is not uncommon for some
compiler writers to translate LOW LEVEL language standard definitions
into HIGH LEVEL language specifications. This is my task a few years
ago when I developed an attribute grammar for (wait for it) COBOL !!!.
So in a nut shell, the technology already exists to do a great job
of formal programming language standards. However, nobody really
seems to care. Even though the definition of Pascal could be replaced
by a 6,000 line specification that was very precise and executable
this has simply not happened. We can speculate on the reasons but my
best guess is that the standards committee members prefer things the
way they are today. Anyway, good luck !!!
Mike Parkes.
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.