Mục lục:
Định nghĩa - Parser có nghĩa là gì?
Trình phân tích cú pháp là trình biên dịch hoặc thành phần trình thông dịch, chia dữ liệu thành các phần tử nhỏ hơn để dễ dàng dịch sang ngôn ngữ khác. Trình phân tích cú pháp nhận đầu vào dưới dạng một chuỗi các mã thông báo hoặc hướng dẫn chương trình và thường xây dựng cấu trúc dữ liệu dưới dạng cây phân tích cú pháp hoặc cây cú pháp trừu tượng.
Techopedia giải thích Parser
Trình phân tích cú pháp thường được sử dụng như một thành phần của trình thông dịch hoặc trình biên dịch. Toàn bộ quá trình phân tích cú pháp bao gồm ba giai đoạn:
- Phân tích từ vựng: Một bộ phân tích từ vựng được sử dụng để tạo ra các mã thông báo từ một luồng các ký tự chuỗi đầu vào, được chia thành các thành phần nhỏ để tạo thành các biểu thức có ý nghĩa.
- Phân tích cú pháp: Kiểm tra xem các mã thông báo được tạo có tạo thành một biểu thức có ý nghĩa hay không. Điều này làm cho việc sử dụng một ngữ pháp không ngữ cảnh xác định các thủ tục thuật toán cho các thành phần. Chúng hoạt động để tạo thành một biểu thức và xác định thứ tự cụ thể phải đặt mã thông báo.
- Phân tích ngữ nghĩa: Giai đoạn phân tích cú pháp cuối cùng trong đó ý nghĩa và ý nghĩa của biểu thức được xác thực được xác định và các hành động cần thiết được thực hiện.
Mục đích chính của trình phân tích cú pháp là để xác định xem dữ liệu đầu vào có thể được lấy từ biểu tượng bắt đầu của ngữ pháp hay không. Nếu có, thì bằng cách nào dữ liệu đầu vào này có thể được dẫn xuất? Điều này đạt được như sau:
- Phân tích cú pháp từ trên xuống: Liên quan đến việc tìm kiếm một cây phân tích để tìm ra hầu hết các dẫn xuất bên trái của luồng đầu vào bằng cách sử dụng một mở rộng từ trên xuống. Các ví dụ bao gồm trình phân tích cú pháp LL và trình phân tích cú pháp gốc đệ quy.
- Phân tích từ dưới lên: Liên quan đến việc viết lại đầu vào trở lại biểu tượng bắt đầu. Kiểu phân tích cú pháp này còn được gọi là phân tích cú pháp giảm ca. Một ví dụ là trình phân tích cú pháp LR.
Trình phân tích cú pháp được sử dụng rộng rãi trong các công nghệ sau:
- Java và các ngôn ngữ lập trình khác
- HTML và XML
- Ngôn ngữ dữ liệu tương tác và ngôn ngữ định nghĩa đối tượng
- Ngôn ngữ cơ sở dữ liệu, như SQL
- Ngôn ngữ mô hình hóa, như ngôn ngữ mô hình thực tế ảo
- Ngôn ngữ kịch bản
- Các giao thức, như các cuộc gọi chức năng từ xa HTTP và Internet