Eu estava lendo o artigo Conceitos Fundamentais em Linguagens de Programação, de C. Strachey outro dia, onde li algo que era bastante estranho para mim. Citando diretamente (com a parte estranha destacada por mim):
Confrontados com a situação, uma vez que existe hoje em dia, onde existe um método geralmente conhecido da descrição de uma determinada classe de gramáticas (conhecido como BNF ou livre de contexto), o primeiro impulso de estes matemáticos parece ser o de investigar os limites de BNF -O você pode se expressar em BNF mesmo ao custo de construções muito pesadas e artificiais? Isso pode ser uma questão de algum interesse matemático (seja lá o que isso significa), mas tem pouca relevância para linguagens de programação, onde é mais importante descobrir métodos melhores para descrever a sintaxe que o BNF (que já é inconveniente e inadequado para o ALGOL). do que examinar os possíveis limites do que já sabemos ser uma técnica insatisfatória .
Existe uma razão específica para o autor considerar o BNF uma técnica insatisfatória para descrever idiomas? Poderia ser porque você só pode descrever sintaxe e não semântica com uma única gramática BNF (porém, você pode estendê-la para descrever a semântica operacional, transformando-a em uma gramática de atributo)?