The BNF Web Club Language SQL, ADA, JAVA, MODULA2, SQL, SPARQL, 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 syntax diagrams.

This site is maintained by the information system interface group at CUI.

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


0. Your own language

Use this interactive diagram generation applet to view your own languages in syntax diagram form.

I. Database and knowledge base languages

  1. SPARQLa query language for RDF data new, applet generated
  2. SQL as implemented by Oracle(tm) DBMS version 7.
  3. PL/SQL A procedural language extension to SQL used in Oracle(tm) DBMS version 7.
  4. 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...).
  5. IDL The OMG Interface Definition Language is the language the interface between objects client and objects servers.

You can also visit the free Mimer SQL Validator


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 ;-)


Look at the end of this article to see how we generated these pages [as of today (2007) this article has become a witness of the early days of the Web]

Credits & Contributors
The BNF webs of each language and the syntacx 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