This is the wrong online version of the EBNF standard, or the wrong chapter title with mr. Pattis?

I am reading EBNF chapter: Syntax Description Notation . Richard E. Pattis . His material is very helpful and clear to me. But before that, I read the ISO / IEC 14977: 1996 (E) standard ... I see EBNF notation and syntax with mr. Richard E. Pattis is not the same as in the standard. I don't understand the reason for this ...

For example, the standard records:

a) Language terminal characters are quoted so that any character, including one used in Extended BNF, can be identified as a terminal character of the target language.

But mr. Pattis does not use quotation marks in his own patterns. Also, it uses an awkward way to write non-terminal characters as terminal: for example |

char it fits into a field (this is like a border around char in MS Word). Regular text editors cannot do this. Therefore, this method is inconvenient.

In addition, the standard entries are:

d) Each rule is clearly definitive, so there is never any ambiguity as to where the rule ends.

But mr. Patti doesn't use any trailing symbols in her own designs.

According to the standard, "=" char is the defining character, but mr. Instead, Patty uses "⇐" instead.

etc.

Example chapter code:

digit   ⇐ 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
integer ⇐ [+|-]digit{digit}

      

For comparison: in the ISO / IEC 14977: 1996 (E) standard, each digit is isolated with quotes, and the semicolon is used as the final character:

decimal digit = ’0| ’1’ |2| ’3’ |4| ’5’ |6| ’7’ |8| ’9’;

      

The existence of the word "EBNF" in the chapter title confuses me ... Maybe the word "BNF" should be written instead of "EBNF" in the chapter title? Or maybe I found the wrong version of the standard?

Additional question: does anyone know the addresses of forums where I can ask my questions about EBNF and its standard? I haven't found anything ...

With all respect, Andrew

+3


source to share


1 answer


My tutorial is the first lecture I give in my view for programming classes. I teach EBNF as a mini-programming language that includes named rules (like functions) and control structures (sequence if, loop, recursion). Students learn to be language lawyers (by determining if strings conform to EBNF rules) and programmers (by synthesizing EBNF rules from English descriptions, including positive and negative examples).

So my goal is not to teach anyone the ISO standard, but to teach the simplest form of EBNF to absolute beginners.



Rich Pattis

0


source







All Articles