Re: EBNF open letter (Michael Parkes)
Wed, 14 Sep 1994 15:37:12 GMT

          From comp.compilers

Related articles
EBNF open letter (1994-09-11)
Re: EBNF open letter (1994-09-14)
Re: EBNF open letter (1994-09-17)
Re: EBNF open letter (Don Baarda) (1994-09-18)
| List of all articles for this month |

Newsgroups: comp.compilers
From: (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.

Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.