Serious poll for fellow lobsters: how many of you studied BNF in school, even if in brief? As the decades pass, I am increasingly curious about the evolution of software-related education and what is being taught in any given era. I mentioned BNF in a meeting of peers not too long ago and was surprised not at how few people knew of it, but at how little pattern there seemed to be to the spread of exposure.
BNF was in my senior level formal languages class. It didn’t get a lot of time. But we worked our way up to it, complexity-wise, so I was able to run with it many years later.
I graduated from undergrad 10 years ago.
Ten years ago it was part of the computer logic class (Turing tapes, push down automata). I remember working through examples by hand, and I didn’t take compilers.
I ran into it in at least two classes in undergrad, one on theory of computation (where it showed up in the bit on the Chomsky hierarchy) and the other on programming languages (where it showed up in the parsing bit).
I took an undergrad linguistics course, and was very pleased to discover that linguists use several sorts of purpose-specific regular expression, especially for describing phonetic transformations. These formalisms are intentionally not as powerful as regular grammars, because they’re trying to match it to what the problem domain actually needs, but it was very clearly designed with some understanding of the theory at some point.
Of course, natural-language grammars are a whole other subject, and a fascinating one. They have very little to do with BNF, although the same sort of hierarchy is present in most formalisms.
I don’t remember; I was deeply into parse theory long before I went to university, so I wouldn’t have noticed if it were mentioned in passing in the early classes. And then I wasn’t able to finish the degree, so it could very well have come up in an advanced class. Sorry to not be able to provide data. :)