Pushdown Automata
Let us recall our story so far...
- Chomsky 1956, working with natural languages, had come up with the notion of context free grammars.
- The first Fortran compiler appeared around 1956/1957 for the IBM 704 computer. It was based on a specification by Backus 1954, but not using CFGs.
- By the time the Algol 1960 specification was written, though, a more formal syntax called Backus-Naur notation was used. It turns out that this Backus-Naur notation is equivalent to giving a CFG specification.
- Meanwhile, in Germany, Friedrich Bauer (1924 - 2015) had come up with (1955 -1957 patent) the notion of a stack and also used it to show a simple algorithm for expression evaluation.
- When we first introduced CFGs, we showed how arithmetic expression could be represented using a CFG.
- Turing (1946) had earlier used such an idea (without pulling out a data structure) for subroutine call handling.
- As an aside, Bauer later (1967) coins the term software engineering.
- It is reasonable to ask if maybe stacks could be useful for coming up with a platform neutral machine model for CFGs?
- Such a model, pushdown automata (PDA), was provided by Oettinger in 1961.