Tính thủ tục của các RTN

Một phần của tài liệu bài toán phân tích cú pháp ngôn ngữ tự nhiên bằng máy tính (Trang 33 - 34)

Chương 3 Các mạng chuyển

3.3. Tính thủ tục của các RTN

Phương pháp biểu diễn nêu trên có mức độ trừu tượng tương đương với một hệ các quy tắc viết lại của văn phạm phi ngữ cảnh, theo nghĩa mọi quy tắc của văn phạm phi ngữ cảnh đều có thể chuyển thành một RTN tương đương. Tuy nhiên, cách biểu diễn bằng RTN có một đặc điểm quan trọng mà trong các hệ quy tắc viết lại khơng có, đó là các tiến trình (process). Khi ta sử dụng một văn phạm để xây dựng thủ tục đoán nhận một ngơn ngữ, thì các quy tắc viết lại chỉ ra cần làm cái gì; cịn ơtơmát nằm trong RTN lại mô tả làm như thế nào.

Để so sánh, giả sử ta dùng một hệ sản xuất để đoán nhận một ngôn ngữ phi ngữ cảnh và dùng một RTN để đốn nhận cũng ngơn ngữ đó. Khi thiết kế hệ sản xuất, ta tự do quyết định các câu hỏi như áp dụng quy tắc nào tiếp theo, phần dữ liệu nào sẽ xem xét tiếp theo, và thực hiện các thao tác "viết lại" trên dữ liệu đó như thế nào. Với RTN, quyền lựa chọn các quyết định tương tự như trên không thuộc về người thiết kế nữa, bởi vì chúng đã bị ẩn trong biểu diễn ngữ nghĩa của văn phạm. Hình thức biểu diễn bằng RTN thể hiện nhiều đặc tính của các ngơn ngữ lập trình thủ tục thường gặp, đặc biệt khi nó được dịch thành biểu diễn tuyến tính cho đầu vào của máy tính - lệnh nhảy goto có và khơng có điều kiện (các bước chuyển trạng thái), các nhãn lệnh (các tên trạng thái), và các lời gọi thủ tục (PUSH và POP).

Các điều khiển thủ tục có một đặc điểm quan trọng khơng bị ẩn trong ký hiệu, đó là cách trình thơng dịch thực hiện khi nó gặp một trạng thái có nhiều cung chuyển tiếp theo. Chế độ bình thường là lần lượt đi theo các cung chuyển, bắt đầu từ cung chuyển đầu tiên, thực hiện từ trên xuống và ưu tiên chiều sâu, đi theo các đường dẫn xa nhất có thể và chấp nhận đường đi đầu tiên đến được một trạng thái kết với một xâu vào rỗng và ngăn xếp rỗng.

Ở đây có sự khác nhau cơ bản so với cách tiếp cận hệ sản xuất, với hệ sản xuất, dạng viết lại của các quy tắc tự nó khơng giả định trước bất kỳ một tiến trình nào. Người xây dựng mạng chuyển RTN cần suy nghĩ theo tiến trình nhận dạng từ trên xuống, từ trái sang phải.

Như vậy, hình thức RTN cho phép ta dễ dàng theo dõi tiến trình phân tích. Các RTN mơ tả tiến trình, cịn CFG thì khơng. Do mỗi chương trình máy tính là một sự mơ tả tiến trình nên các RTN rất có giá trị khi được dùng để viết chương trình phân tích. Trên thực tế cũng có nhiều trình phân tích được điều khiển bởi các quy tắc của văn phạm. Sự khác nhau lớn nhất của hai hình thức này là vào thời điểm chạy chương trình, trình phân tích RTN "biết được" tại mỗi bước đã có sẵn những lựa chọn nào,

cịn các trình phân tích dựa trên văn phạm phi ngữ cảnh phải tìm trong dãy các quy tắc những quy tắc nào là có thể áp dụng được.

Một phần của tài liệu bài toán phân tích cú pháp ngôn ngữ tự nhiên bằng máy tính (Trang 33 - 34)