Tôi đã đọc bài báo Khái niệm cơ bản về ngôn ngữ lập trình của C. Strachey vào một ngày khác, trong đó tôi đọc một thứ khá lạ đối với tôi. Trích dẫn trực tiếp (với phần lạ được tôi nhấn mạnh):
Đối mặt với tình hình như nó tồn tại ngày hôm nay, nơi có một phương pháp thường được biết đến của mô tả một lớp nhất định của văn phạm tiếng (được gọi là BNF hoặc bối cảnh miễn phí), bản năng đầu tiên của các nhà toán học có vẻ là để điều tra các giới hạn của BNF -Điều gì bạn có thể thể hiện bằng BNF ngay cả với chi phí xây dựng rất cồng kềnh và nhân tạo không? Đây có thể là một câu hỏi về một số lợi ích toán học (bất kể điều đó có nghĩa là gì), nhưng nó có rất ít liên quan đến các ngôn ngữ lập trình trong đó điều quan trọng hơn là khám phá các phương pháp mô tả cú pháp tốt hơn BNF (điều này vừa bất tiện vừa không phù hợp với ALGOL) hơn là kiểm tra các giới hạn có thể có của những gì chúng ta đã biết là một kỹ thuật không đạt yêu cầu .
Có một lý do cụ thể mà tác giả coi BNF là một kỹ thuật không đạt yêu cầu để mô tả các ngôn ngữ? Có thể là do bạn chỉ có thể mô tả cú pháp chứ không phải ngữ nghĩa với một ngữ pháp BNF duy nhất (tuy nhiên, bạn có thể mở rộng nó để mô tả ngữ nghĩa hoạt động thông qua việc biến nó thành một ngữ pháp thuộc tính)?