Free Grammars for Programming Languages
C/C++, COBOL, Ada 95, PL/I (etc) Grammars for Compiler Construction
Free Programming Language Grammars for Compiler Construction
Looking for an ANSI C grammar? ANSI C++ grammar? COBOL grammar? PL/I grammar? Ada 95 grammar? (And so on.) This page lists some places where you can get free grammars of various programming languages. These grammars may be in the Backus-Naur Form (BNF), extended Backus-Naur Form (extended BNF), or some form ready for input into a compiler parser generator like yacc, bison, and the like. These free programming language grammars can be useful as starting points if you are thinking of writing your own compiler or interpreter for that language.
The book Compilers: Principles, Techniques, and Tools (Aho, Sethi, Ullman), affectionately called the "Dragon Book", is frequently cited as the book on compiler design and construction. If you are using lex, flex, yacc or bison (or any of their workalikes), you may also find the O'Reilly book Lex & Yacc (2nd edition) useful when you build your compiler.
Free Programming Language Grammars for Building Compilers
- ANSI-ISO Pascal Grammar
This site contains the Yacc and Lex grammar for the Pascal programming language. The parsers and lexers generated by the grammer will be in C. They will accept as input a Pascal program.
- ANSI C++ Grammar
This is not exactly a grammar of ANSI C++, since it actually accepts a superset of C++ constructs. However, if you're thinking of writing your own grammar, this might serve as a starting point for your own. It is taken from the Working Paper (1996) for the Draft Proposed International Standard for Information Systems--Programming Language C++.
- GNU ANSI C/C++ Grammar
There's nothing like the grammar and source code of an existing world famous compiler, the GNU C/C++ Compiler, to use as a template for your own compiler design. This compiler, and consequently its grammar, is regularly updated to keep up with the ANSI standards.
- VS COBOL II Grammar
According to their website, "this grammar has been recovered from IBM's VS-COBOL II Reference Summary" and is supposed to be "fully-tested".
- COBOL Language Grammar
This grammar, in its current incomplete and uncorrected form, was apparently "recovered from IBM's COBOL Language Reference".
- OS PL/I V2R3 Grammar
Using an automated tool, the grammar given in IBM's OS PL/I V2R3 Language Reference is available from this website. It is apparently still incomplete.
- Ada 95 Grammar
This grammar of the Ada follows the Ada 95 Reference Manual. It is currently incomplete.
Can't Find What You're Looking For?
Search the site using Google.
How to Link to This Page
It will appear on your page as: