Sự khác biệt giữa ngữ pháp mơ hồ và không rõ ràng

Mục lục:

Anonim

Các Sự khác biệt chính giữa ngữ pháp mơ hồ và không rõ ràng là ngữ pháp mơ hồ là ngữ pháp không có ngữ cảnh trong đó tồn tại một chuỗi có thể có nhiều hơn một dẫn xuất ngoài cùng bên trái trong khi ngữ pháp rõ ràng là ngữ pháp không có ngữ cảnh mà mọi chuỗi hợp lệ đều có một dẫn xuất ngoài cùng bên trái duy nhất.

Ngữ pháp đề cập đến các quy tắc cú pháp trong ngôn ngữ tự nhiên. Năm 1956, các nhà khoa học máy tính đã giới thiệu một mô hình toán học về ngữ pháp để viết ngôn ngữ máy tính. Nếu có thể lấy tất cả các chuỗi của một ngôn ngữ bằng cách sử dụng một ngữ pháp nhất định, thì người ta nói rằng ngôn ngữ được tạo ra từ ngữ pháp đó. Ngữ pháp tự do theo ngữ cảnh là một loại ngữ pháp. Ngữ pháp này tạo ra ngôn ngữ không có ngữ cảnh. Ngữ pháp không có ngữ cảnh có thể mơ hồ hoặc không rõ ràng. Đối với một chuỗi cụ thể, nếu có hai hoặc nhiều dẫn xuất, ngữ pháp đó được cho là không rõ ràng. Đối với một chuỗi cụ thể, nếu chỉ có một dẫn xuất ngoài cùng bên trái duy nhất, thì ngữ pháp đó được coi là ngữ pháp rõ ràng.

Ngữ pháp mơ hồ, Ngữ pháp rõ ràng

Ngữ pháp mơ hồ là gì

Một ngữ pháp được cho là không rõ ràng nếu tồn tại hai hoặc nhiều dẫn xuất cho một chuỗi.

Hình 1: Ngữ pháp mơ hồ

Giả sử rằng có một ngữ pháp được định nghĩa như sau.

G = ({S}, {a + b, +, *}, P, S}. Quy tắc sản xuất như sau. S -> S + S | S * S | a | b. Giả sử rằng nó được yêu cầu tạo chuỗi a + a * b.

Cân nhắc, S -> S + S

Thay thế ‘a’ cho gần hết bên trái S sẽ cho kết quả sau.

S-> a + S

Thay thế S * S cho S như sau.

S-> a + S * S

Thay thế ‘a’ cho S bên trái nhất sẽ cho kết quả bên dưới.

S -> a + a * S

Thay thế ‘b’ cho S sẽ cho kết quả sau.

S -> a + a * b

Đây là chuỗi bắt buộc để tạo.

Khi sử dụng quy tắc sản xuất khác, nó sẽ cho

S -> S * S

Áp dụng S + S ở bên trái nhiều nhất S sẽ cho kết quả sau.

S -> S + S * S

Thay thế ‘a’ cho hầu hết bên trái S,

S -> a + S * S

Thay thế ‘a’ cho chữ S bên trái nhất,

S -> a + a * S

Thay thế ‘b’ cho S sẽ cho kết quả như sau.

S -> a + a * b

Một lần nữa, nó tạo ra chuỗi bắt buộc. Do đó, có nhiều hơn một dẫn xuất để tạo chuỗi. Do đó, nó là một ngữ pháp mơ hồ.

Ngữ pháp rõ ràng là gì

Trong một ngữ pháp không rõ ràng, một chuỗi nhất định có một dẫn xuất ngoài cùng bên trái duy nhất. Tham khảo các quy tắc sản xuất sau đây.

S -> L | a, L -> LS | NS

Hãy xem xét quy tắc S -> L. LS thay thế cho L.

S -> LS

Thay thế S, cho L đầu tiên.

S -> S S

Thay thế ‘a’ cho S ngoài cùng bên trái sẽ cho kết quả bên dưới.

S -> a S

Thay thế ‘a’ cho S sẽ cho kết quả sau.

S -> a a

Do đó, một chuỗi có một dẫn xuất ngoài cùng bên trái duy nhất. Vì vậy, nó là một ngữ pháp rõ ràng.

Sự khác biệt giữa ngữ pháp mơ hồ và không rõ ràng

Sự định nghĩa

Ngữ pháp không rõ ràng là một ngữ pháp không có ngữ cảnh mà tồn tại một chuỗi có thể có nhiều cây phân tích cú pháp hoặc dẫn xuất ngoài cùng bên trái. Ngữ pháp rõ ràng là một ngữ pháp không có ngữ cảnh mà mọi chuỗi hợp lệ đều có một cây phân tích cú pháp hoặc dẫn xuất ngoài cùng bên trái duy nhất.

Số gốc ngoài cùng bên trái

Trong ngữ pháp không rõ ràng, một chuỗi có thể có hai hoặc nhiều dẫn xuất ngoài cùng bên trái, nhưng trong ngữ pháp rõ ràng, một chuỗi có một dẫn xuất ngoài cùng bên trái duy nhất.

Phần kết luận

Ngữ pháp tự do theo ngữ cảnh có thể mơ hồ hoặc không rõ ràng. Sự khác biệt giữa ngữ pháp không rõ ràng và không rõ ràng là ngữ pháp không rõ ràng là ngữ pháp không có ngữ cảnh trong đó tồn tại một chuỗi có thể có nhiều hơn một dẫn xuất ngoài cùng bên trái trong khi ngữ pháp không rõ ràng là ngữ pháp không có ngữ cảnh mà mọi chuỗi hợp lệ đều có một dẫn xuất ngoài cùng bên trái duy nhất.

Thẩm quyền giải quyết:

1. "Ngữ pháp mơ hồ." Wikipedia, Wikimedia Foundation, ngày 17 tháng 7 năm 2018, Có sẵn tại đây. 2. “Thiết kế trình biên dịch | Ngữ pháp mơ hồ. ” GeeksforGeeks, ngày 10 tháng 2 năm 2018, có sẵn tại đây.3. “Ngữ pháp mơ hồ”, Học viện Neso, ngày 29 tháng 3 năm 2017, Có sẵn tại đây.

Hình ảnh lịch sự:

1. “Leftmostderivations jaredwf” của Jaredwf tại Wikipedia tiếng Anh - Được EdwardHades chuyển từ en.wikipedia sang Commons (Public Domain) qua Commons Wikimedia

Sự khác biệt giữa ngữ pháp mơ hồ và không rõ ràng