Trong khoa học máy tính, cú pháp đặc biệt (tiếng Anh: syntactic sugar, nghĩa đen là "kẹo đường cú pháp") là cú pháp trong một ngôn ngữ lập trình được thiết kế để làm cho mọi thứ dễ đọc hay thể hiện hơn. Nó khiến ngôn ngữ "ngọt ngào hơn" cho con người sử dụng: mọi thứ có thể được thể hiện rõ ràng hơn, chính xác hơn, hay theo một cách khác mà một số người khác thích.

Ví dụ, nhiều ngôn ngữ lập trình cung cấp cú pháp đặc biệt để tham chiếu và cập nhật các phần tử của mảng (array). Một cách tóm tắt, tham chiếu mảng là một thủ tục với 2 đối số: một mảng và một vector chỉ số, có thể được biểu diễn như get_array(Array, vector(i,j)). Thay vì vậy, nhiều ngôn ngữ cung cấp cú pháp như Array[i,j]. Tương tự như vậy, cập nhật phần tử của một mảng là một thủ với 3 đối số, như set_array(Array, vector(i,j), value), nhưng nhiều ngôn ngữ cung cấp cú pháp Array[i,j] = value.

Một cách cụ thể, một cấu trúc trong ngôn ngữ được gọi là "cú pháp đặc biệt" nếu nó có thể được gỡ bỏ khỏi ngôn ngữ mà không gây bất kì ảnh hưởng tới chức năng của ngôn ngữ đó: chức năngnăng lực biểu hiện vẫn như cũ.

Các bộ xử lý ngôn ngữ, bao gồm trình biên dịch, bộ phân tích tĩnh, và các loại tương tự, thường mở rộng các cấu trúc đặc biệt thành các cấu trúc cơ bản hơn trước khi xử lý, và quá trình này được gọi là "desugaring" (dịch nôm na là "khử đường").

Nguồn gốc

sửa

Thuật ngữ gốc syntactic sugar được Peter J. Landin đặt ra vào năm 1964 để mô tả cú pháp bề mặt của một ngôn ngữ lập trình đơn giản giống như ALGOL.[1][2]

Ví dụ nổi bật

sửa
  • Trong COBOL, nhiều từ khóa trung gian là cú pháp đặc biệt có thể được bỏ qua. Ví dụ, câu MOVE A B. và câu MOVE A TO B. thực hiện chính xác cùng một chức năng, nhưng câu sau khiến hành động được thực hiện rõ ràng hơn.

Ghi chú

sửa
  1. ^ Landin, Peter J. (1964). “The mechanical evaluation of expressions” (PDF). The Computer Journal. Computer Journal. 6 (4): 308–320. doi:10.1093/comjnl/6.4.308. Truy cập ngày 21 tháng 7 năm 2014.
  2. ^ Abelson & Sussman 1996, Chapter 1, footnote 11.

Tham khảo

sửa

Bài viết này dựa trên nguồn lấy từ Từ điển trực tuyến miễn phí về máy tính trước ngày 1 tháng 11 năm 2008 và được hợp nhất theo các điều khoản "cấp lại giấy phép" của GFDL, phiên bản 1.3 hoặc mới hơn.