Tôi không biết nhiều về yacc, bison, flex hoặc lex và vui lòng sửa cho tôi nếu tôi sai nhưng ngôn ngữ lập trình cũng là máy Turing và máy Turing được định nghĩa là tuple trong đó , , , làm đầu vào, là hàm chuyển đổi trong đó = số bước ở bên trái, = số bước ở bên phải, = "chờ", là trạng thái ban đầu và là tập hợp các trạng thái kết thúc.
Làm thế nào tương tự là thực hiện một ngôn ngữ lập trình để thực hiện một máy Turing? Có thể nói rằng những gì được thực hiện khi ngôn ngữ lập trình được triển khai là một máy Turing như trên được xác định? Nếu có, tại sao chúng ta không thể sử dụng một mô hình giống như định nghĩa của máy Turing khi ngôn ngữ lập trình được xác định? Thay vào đó, một cái gì đó khác như BNF dường như là tiêu chuẩn.