The BNF Web Club Language SQL, ADA, JAVA, MODULA2, PL/SQL, ...

Browse and explore some of your favourite programming languages syntactic rules. See relations between the rules, understand them using both BNF (Backus-Naur Form notation) and syntactic diagrams.

These hyperdocuments were generated for pedagogical purposes and are related to 1st and 2nd year computer science courses at University of Geneva. The current page is handled by the database research group of CUI.

Look at the new applet to test your own languages.

Look at the end of this article to understand how we generate these pages.

More languages may eventually be added, whenever we find more time...


I. Database languages

  1. SQL as implemented by Oracle(tm) DBMS version 7.
  2. PL/SQL A procedural language extension to SQL used in Oracle(tm) DBMS version 7.
  3. SQL2 The revised ISO standard also called SQL92. (really huge, contains 638 grammar rules! Have a thought for the poor developpers of interpreters or compilers for this one...).
  4. IDL The OMG Interface Definition Language is the language the interface between objects client and objects servers.
Thanks a lot to all the people who sent me the SQL3 BNF. Due to the lack of practical interest for this standard "grand bazar" of the SQL family, we postpone the generation of the corresponding BNF-web documents up to a day where SQL3 will effectively take-off.

Anyway, Jacques Guyot developped a new Java applet/application to automatically display syntactic diagrams. See here. This definitely removes the need to generate BNF-web's, like those you can browse from this page. Besides that, our available time to manage the BNF-web club is so reduced that we do not plan to add any language anymore.

(Any volunteer to become "Distinguished BNF-Webclub Administrator (DBA) ? this could be nice for a motivated student in the field of computer languages... )


II. Procedural programming languages

  1. JAVA (html) (based on documentation from SUN microsystem ) JAVA (applet)
  2. JAVA (version française avec exemples et explications)
  3. Ada (ISO standard revised in 1994-95, also called Ada95)
  4. Modula-2 (as defined in "Programming in Modula-2", Niklaus Wirth, Springer-Verlag eds., Berlin, 1983.)


III. Non Procedural programming languages

  1. LISP (A very short grammar !)
  2. LAZY (Generation hyperviews on database)
  3. M5 (Information Systems specification language)

Please do not ask for adding C or C++ BNF descriptions. C programmers don't need syntax rules, they forge them with #define macros ;-)


Credits & Contributors
The BNF webs of each language and the syntactic diagrams were generated by "HyperGOS", a syntactic tools generator, developped at the University of Geneva by Jacques Guyot, Thibault Estier and Pascal Crausaz. HyperGOS is derived from GOS, a generic tool "a la Lex & Yacc", initialy developped by Jacques Guyot (some 15 years ago...) and extended since in many directions by many, many contributors, here at University of Geneva. The automatic diagram layout program was originally written by NGuyen Lai in 1981.

© 1994-1998 Thibault Estier | estier@cui.unige.ch
Jacques Guyot | guyot@cui.unige.ch