Tôi không chắc chắn rằng điều này sẽ mang lại cho bạn nhiều hơn bạn đã biết. Nhưng sau đó, tôi có thể không hiểu lý do khiến bạn băn khoăn về việc viết lại thuật ngữ. Nó giúp.
Như bạn có thể biết, ngữ pháp là các hệ thống viết lại chuỗi. Ở đầu phân cấp Chomsky, bạn có loại 0 ngữ pháp, xác định các khoảng cách đệ quy (RE) đệ quy và có sức mạnh tính toán của các máy Turing.
Vì vậy, điều đó cho bạn biết rằng các hệ thống viết lại nói chung có rất nhiều việc phải làm với việc thể hiện các thuật toán.
Vấn đề với các chuỗi nói chung là không có cách rõ ràng để gắn ngữ nghĩa với chúng. Nó là một loại viết lại vô định hình.
Điều mọi người thường quan tâm là thể hiện các thuật toán trong các lĩnh vực cụ thể có cấu trúc và thuộc tính. Các miền như vậy thường được xác định từ các thực thể cơ bản (nguyên tử) và được đóng bởi các hoạt động khác nhau, có thể được xác định bởi các mối quan hệ tương đương, v.v. Chúng thường được gọi là đại số.
Những miền này thường trừu tượng. Nhưng tính toán trên các yếu tố của chúng chỉ có thể được thể hiện trên các biểu diễn cụ thể. Các thuật ngữ là sự phản hồi tự nhiên của các yếu tố này vì chúng thể hiện cách các yếu tố có thể thu được cho các yếu tố khác bằng cách áp dụng các hoạt động, các yếu tố nguyên tử xuống cấp đệ quy (mặc dù các đặc tính chung không phải luôn luôn đi xuống). Các thuật ngữ là một loại cú pháp cấu trúc cây có thể được thao tác để thể hiện các thuật toán (như đối với chuỗi). Nhưng cấu trúc toán hạng toán tử cũng cho phép liên kết với chúng về ngữ nghĩa trong một số miền trừu tượng bằng phương pháp đồng cấu.
Thay vì có cái nhìn rất chính thức về wikipedia và nhiều văn bản về chủ đề này, chỉ cần xem xét các chương trình. Người ta thường nhận ra rằng một biểu diễn cú pháp thuận tiện của các chương trình là cái được gọi là Cây cú pháp trừu tượng (AST). Nhưng AST chỉ là một thuật ngữ để đại diện cho một đối tượng chương trình. Ngữ nghĩa học là một cách xác định các miền trừu tượng và liên kết các giá trị từ các miền này với AST (hoặc các cây con AST) bằng phương pháp đồng cấu. Các chương trình ở dạng AST có thể được chuyển đổi hoặc tối ưu hóa bằng cách áp dụng các quy tắc viết lại (Tôi không khẳng định rằng tất cả các tối ưu hóa có thể hoặc nên được thực hiện theo cách đó).
Chuyển đổi các biểu thức đại số cho các mục đích khác nhau có thể được thể hiện bằng cách viết lại thuật ngữ. Ví dụ, đơn giản hóa một số biểu thức. Các loại tính toán khác nhau cũng có thể được thể hiện một cách tự nhiên như viết lại thuật ngữ, chẳng hạn như tính toán của các công cụ phái sinh. Viết lại thuật ngữ đôi khi cũng được sử dụng để xác định các dạng chính tắc trong đại số, khi cùng một thực thể ngữ nghĩa có thể có một số biểu diễn cú pháp.
Tôi khuyên bạn nên xem bài viết trên wikipedia về chủ đề này .