TỔNG HỢP
Trong khoa học máy tính, thuật ngữ cú pháp của ngôn ngữ máy tính đề cập đến tập hợp các quy tắc xác định sự kết hợp của các ký hiệu được coi là một đoạn hoặc tài liệu có cấu trúc chính xác trong ngôn ngữ đó. Điều này áp dụng cho cả ngôn ngữ đánh dấu, trong đó tài liệu đại diện cho dữ liệu và ngôn ngữ lập trình, trong đó tài liệu đại diện cho mã nguồn. Cú pháp của một ngôn ngữ xác định hình thức bề mặt của nó. Các ngôn ngữ máy tính dựa trên văn bản dựa trên các chuỗi ký tự. Mặt khác, ngôn ngữ lập trình trực quan dựa trên sự kết nối giữa các ký hiệu (có thể là đồ họa hoặc văn bản) và trên bố cục không gian. Các tài liệu xảy ra không hợp lệ về mặt cú pháp được cho là có lỗi cú pháp.
Cú pháp - hình thức - tương phản với ngữ nghĩa - ý nghĩa. Trong xử lý ngôn ngữ máy tính, xử lý ngữ nghĩa thường xảy ra sau xử lý cú pháp. Tuy nhiên, trong một số trường hợp, xử lý ngữ nghĩa là quan trọng để phân tích cú pháp hoàn chỉnh, và do đó chúng được thực hiện đồng thời hoặc cùng nhau. Trong một trình biên dịch, phân tích cú pháp bao gồm giao diện người dùng, trong khi phân tích ngữ nghĩa bao gồm phụ trợ (và kết thúc giữa trong trường hợp giai đoạn được phân biệt).
CÁC CẤP ĐỘ CỦA TỔNG HỢP
Cú pháp ngôn ngữ máy tính thường được phân biệt thành ba cấp độ khác nhau:
Việc phân biệt theo cách như vậy tạo ra tính mô-đun cho phép mọi cấp độ được mô tả cũng như được xử lý riêng biệt và thường là độc lập. Nó bắt đầu bằng một lexer biến chuỗi tuyến tính của các nhân vật vào một chuỗi tuyến tính của thẻ: đây được gọi là phân tích từ vựng hoặc lexing.
Thứ hai, trình phân tích cú pháp biến chuỗi tuyến tính của mã thông báo thành thứ được gọi là cây cú pháp phân cấp. Điều này được gọi là phân tích cú pháp .
Thứ ba, phân tích ngữ cảnh giải quyết các kiểm tra và đặt tên các loại. Bản thân giai đoạn phân tích cú pháp có thể được chia thành hai phần: cây cú pháp cụ thể hoặc cây phân tích cú pháp được xác định bởi ngữ pháp, nhưng nó quá chi tiết để sử dụng thực tế và cây cú pháp trừu tượng (AST), đơn giản hóa điều này thành một biểu mẫu cái đó có thể sử dụng được.
TỔNG HỢP CÁC SEMANTICS VERSUS
Cú pháp của một ngôn ngữ mô tả biểu mẫu của một chương trình hợp lệ, nhưng nó không cung cấp bất kỳ thông tin nào liên quan đến ý nghĩa của chương trình hoặc kết quả đi kèm với việc thực thi chương trình đó. Ý nghĩa được trao cho sự kết hợp của các ký hiệu được xử lý bằng ngữ nghĩa (hoặc mã hóa cứng hoặc chính thức trong triển khai tham chiếu). Không phải tất cả các chương trình đúng về mặt cú pháp đều đúng về mặt ngữ nghĩa. Tuy nhiên, một số lượng lớn các chương trình chính xác về mặt cú pháp lại không được hình thành phù hợp với các quy tắc của ngôn ngữ; và có thể (liên quan đến đặc tả ngôn ngữ cũng như tính hợp lý của việc triển khai) dẫn đến lỗi thực thi hoặc dịch. Trong một số trường hợp, các chương trình như vậy có thể hiển thị hành vi không xác định. Ngay cả tại những thời điểm khi một chương trình được xác định rõ ràng bằng một ngôn ngữ, nó vẫn có thể có một ý nghĩa mà người viết chương trình đó không có ý định.
Trong ví dụ về ngôn ngữ tự nhiên, có thể không thể cung cấp ý nghĩa cho một câu đúng ngữ pháp. Ví dụ,