Có ai có thể giúp cho việc này không:
Tôi đang cố gắng viết một ngữ pháp cho ngôn ngữ này? Tôi không biết làm thế nào để làm điều này. Tôi đã thử điều này:
Có ai có thể giúp cho việc này không:
Tôi đang cố gắng viết một ngữ pháp cho ngôn ngữ này? Tôi không biết làm thế nào để làm điều này. Tôi đã thử điều này:
Câu trả lời:
Hãy xem xét hai ngôn ngữ:
Hãy thuyết phục bản thân rằng .
Trong , số lượng 's là nhiều hơn gấp đôiVì vậy, phải có ít nhất một (khi không có 'S). Ngoài ra, cho mỗi lần thêm, ít nhất 2 phải được thêm vào. Bạn có thể tạo như:
là một chút khó khăn hơn. Số lượngít hơn gấp đôi số lượng Vì vậy, có thể có nhưng không phải là không 'S. Hãy xem xét "trường hợp cơ sở" của . Chuỗi có thể là một trong hai hoặc là . Chúng tôi sẽ để quy tắc đầu tiên tạo ra trường hợp cơ sở này. Sau đó, lưu ý rằng cứ thêm, chúng ta có thể tăng số lượng là bởi nhiều nhất . Vì vậy, chúng tôi có thể thêm, , hoặc là cho mỗi lần thêm . Chúng ta sẽ để quy tắc thứ hai xử lý việc này. Vì vậy, CFG cho trở thành:
Lưu ý rằng CFG bị đóng dưới liên minh, nghĩa là liên minh của hai CFG cũng là CFG. Vì vậy, để có được CFG cho, hãy để trạng thái bắt đầu của dẫn đến trạng thái bắt đầu của , hoặc của :
Phần còn lại của các quy tắc vẫn giống như trong hai ngôn ngữ. Có thể có một ngữ pháp đơn giản hơn, nhưng đây là lần đầu tiên xuất hiện trong tâm trí.
Bắt đầu với một ngữ pháp cho :