Cú pháp và ngữ nghĩa:

Một phần của tài liệu Giáo trình lý thuyết ngôn ngữ hình thức và ôtômát (Trang 76)

a) f(n1)=3n1 b) f(n 1)=n1 +3.

5.1.2. Cú pháp và ngữ nghĩa:

Để tiện lợi hơn trong đặc tả và hiện thực sự biên dịch, ta coi sự biên dịch bao gồm hai phép chiếu đơn giản hơn.

Thứ nhất là phép ánh xạ cú pháp (syntactic mapping), nó ánh xạ một chương trình viết trong ngôn ngữ nguồn sang cấu trúc là đối số của phép ánh xạ tiếp theo, đó là phép ánh xạ ngữ nghĩa (semantic mapping). Cấu trúc của phép ánh xạ cú pháp là cây cú pháp (syntactic tree). Sau đây là thí dụ cây cú pháp được xây dựng như thế nào trên chuỗi nhập vào là một câu tiếng Anh. Mỗi câu tiếng Anh được bẻ ra thành những ký hiệu cú pháp nhờ vào các luật văn phạm.

Thí dụ 1: The pig is in the pen có cấu trúc văn phạm được biểu diễn bằng cây cú pháp ở hình sau. Cây cú pháp với các nút có tên là ký hiệu cú pháp (ký hiệu không kết thúc) và lá có tên là ký hiệu kết thúc. <sentence> <noun phrasse> <adjective> <noun> <verb phrasse> <verb> <phrase>

<preposition> <noun phrase>

<noun> <adjective>

the pig is

Tương tự, một chương trình được viết trong ngôn ngữ lập trình có thể bẻ nhỏ thành các phần tử cú pháp, quan hệ với nhau bởi luật cú pháp, điều khiển ngôn ngữ lập trình.

Thí dụ 2: Chuỗi ký tự a + b ∗ c có cây cú pháp sau: <expression> <expression> + <term> ∗ <factor> <term> <term> <factor> <factor> <identifier> <identifier> <identifier> b c a

Qua hai thí dụ trên ta thấy rằng với mỗi câu của ngôn ngữ đêu tồn tại cây cú háp của nó. Quá trình tìm ra cây cú pháp của một câu, được gọi là quá trình phân tích cú pháp câu đó (syntactic analysis parsing). Quá trình phân tích cú pháp được thực hiện dựa trên cơ sở các luật cú pháp của ngôn ngữ (đó chính là các quy tắc hay luật sinh). Cú pháp của ngôn ngữ là tập luật sinh, nó cung cấp cho ta mối quan hệ giữa mỗi câu của ngôn ngữ với cấu trúc cú pháp.

Thứ hai là phép chiếu ngữ nghĩa, trong đó cấu trúc cú pháp của câu trong ngôn ngữ nguồn sẽ được ánh xạ đến vùng xuất – đó là ngôn ngữ đích (cuối cùng cũng là ngôn ngữ máy). Ngữ nghĩa của ngôn ngữ là phép ánh xạ nó kết hợp cấu trúc cú pháp của mỗi câu nhập vào với chuỗi ký hiệu trong ngôn ngữ nào đó, mà ta gọi là nghĩa của câu nguyên thuỷ (câu nhập vào). Đặc tả ngữ nghĩa của ngôn ngữ là vấn đề rất khó, nó chưa được giải quyết đầy đủ, đặc biệt với ngôn ngữ tự nhiên.

Mặc dù việc đặc tả cú pháp và ngữ nghĩa của ngôn ngữ lập trình hoàn toàn không phải là công việc đơn giản, cũng như cho đến bây giờ chưa tồn tại phương pháp tổng quát để đặc tả, song đã tồn tại hai khái niệm của lý thuyết ngôn ngữ, chúng được dùng để xây dựng sự đặc tả ngôn ngữ.

Thứ nhất là khái niệm về văn phạm phi ngữ cảnh. Hầu hết các luật miêu tả cấu trúc cú pháp đều có thể hình thức hoá như là văn phạm phi ngữ cảnh. Hơn nữa van phạm phi ngữ cảnh còn cung cấp sự miêu tả được coi là một phần của đặc tả trình biên dịch.

Thứ hai là khái niệm sơ đồ dịch trực tiếp cú pháp, nó được dùng để đặc tả phép ánh xạ từ ngôn ngữ này sang ngôn ngữ khác.

Một phần của tài liệu Giáo trình lý thuyết ngôn ngữ hình thức và ôtômát (Trang 76)

Tải bản đầy đủ (PDF)

(90 trang)