L'altro giorno stavo leggendo l'articolo Concetti fondamentali in Linguaggi di programmazione di C. Strachey , in cui leggevo qualcosa che mi era abbastanza strano. Citando direttamente (con la strana parte evidenziata da me):
Di fronte alla situazione come esiste oggi, dove v'è un metodo noto di descrivere una certa classe di grammatiche (noto come BNF o context-free), il primo istinto di questi matematici sembra essere quello di indagare i limiti della BNF -che puoi esprimere in BNF anche a costo di costruzioni ingombranti e artificiali? Questa potrebbe essere una domanda di un certo interesse matematico (qualunque cosa significhi), ma ha poca rilevanza per i linguaggi di programmazione in cui è più importante scoprire metodi migliori per descrivere la sintassi rispetto a BNF (che è già sia scomodo che inadeguato per ALGOL) piuttosto che esaminare i possibili limiti di ciò che già sappiamo essere una tecnica insoddisfacente .
C'è un motivo specifico per cui l'autore considera il BNF una tecnica insoddisfacente per descrivere le lingue? Potrebbe essere perché puoi descrivere solo la sintassi e non la semantica con una singola grammatica BNF (tuttavia, puoi estenderla per descrivere la semantica operativa trasformandola in una grammatica degli attributi)?