8

Nowadays, it's very common to use BNF (or extensions thereof) to describe the syntaxes of various programming languages or their constructs. What was the situation like 60+ years ago? COBOL and BNF seemed to appear concurrently in 1959, and it seems obvious that CODASYL would not use BNF (or even know of it), but in all my searches I couldn't actually find the initial design notes or the first adopted syntax description for COBOL 60: what did they use to describe its first syntax? Was it really just plain textual wrangling, or did they have a separate formal notation system that's since fallen out of use?

petroleus
  • 130

1 Answers1

16

Here is a link to the COBOL 60 spec :

Initial Specifications for a COmmon Business Orientated Language (1960)

BNF was first used the same year to describe ALGOL, here is a chapter

ALGOL 60 - Chapter 6, Formal Specification and Software Development

You can see that COBOL, along with plain English descriptions, uses flowcharts and something similar to BNF

COBOL specification

And ALGO has BNF

ALGOL specification

The preface to the COBOL 60 spec has the following

COBOL preface

I would surmise that, given the objective to write a plain english programming language, they wanted the specification to also be in plain english and accessible to the average "businessman".

Compared to the ALGOL spec it's certainly easier to read.

I couldn't find a pdf copy of the ALGOL 60 revised report mentioned, but here is a text version

Revised Report on the Algorithmic Language Algol 60

This underlines a major benefit of BNC, you can type it on a VT100 terminal

Ewan
  • 83,178