Ý nghĩa của các từ không cố định, nhưng tôi có thể cung cấp cho bạn giải thích của tôi.
Một phép tính là một cái gì đó mà chúng ta tính toán theo nghĩa của các phương trình tung hứng (nghĩ rằng thao tác của chuỗi Taylor hoặc tính toán các tích phân trong phân tích). Một phép tính cho chúng ta biết các quy tắc thao túng là gì, nhưng không phải là quy tắc nào chúng ta nên sử dụng trong một tình huống nhất định.
Một ngôn ngữ lập trình là thứ cho chúng ta biết cách tính toán. Nó cho chúng ta biết chính xác làm thế nào để sử dụng các quy tắc. Chúng tôi thường cho máy tính sử dụng các quy tắc, vì nó nhanh hơn nhiều. Các quy tắc có thể là không xác định, và có thể có những lý do rất tốt cho chúng là không xác định. Có thể về bản chất của tính toán đó là tính không xác định (nghĩ các quy trình giao tiếp đồng thời) hoặc sửa một chiến lược cụ thể có thể gây bất lợi cho các kỹ thuật thực hiện và tối ưu hóa.
Ví dụ, các -calculus là một equational lý thuyết. Có các biểu thức và phương trình cho chúng ta biết khi các biểu thức bằng nhau. Các phương trình không cho chúng ta biết cách áp dụng chúng, mặc dù mọi người thường có các chương trình nghị sự ẩn và họ trình bày các phương trình để sau này họ có thể rút ra các chiến lược đánh giá hữu ích từ chúng. Nhưng trong bản chất của nó λ -calculus là một loạt các phương trình. Nó không phải là một ngôn ngữ lập trình.λλ
Ngược lại, Standard ML là ngôn ngữ lập trình. Nó được đưa ra về mặt ngữ nghĩa hoạt động, nghĩa là các quy tắc tính toán. Có những khái niệm xuất phát về sự bình đẳng (tương đương theo ngữ cảnh, tương đương quan sát, v.v.) mà chúng ta có thể đặt lên trên nó để nghĩ về nó như một loại tính toán.
Tất nhiên, thường có những kết nối hữu ích giữa một phép tính và biểu hiện của nó như một ngôn ngữ lập trình. Chuẩn hóa hợp lưu chỉ là một cách chuyển từ tính toán sang ngôn ngữ lập trình (mặc dù đáng buồn là một số người đã biến nó thành một tôn giáo của các loại). Sự tương tác giữa các ngôn ngữ tính toán và lập trình rất quan trọng: ngôn ngữ lập trình thực sự có thể được sử dụng, nhưng tính toán giải thích những gì các chương trình nói về.
Chỉ để làm phiền mọi người, tôi cũng nói rằng giả vờ rằng không có sự khác biệt giữa tính toán và biểu hiện hoạt động của nó đôi khi dẫn đến những quan điểm sai lệch về lập trình và tôn giáo nhỏ trong cộng đồng lập trình. Bạn có thể cố gắng đoán ngôn ngữ tôi có trong tâm trí. (Đó là một ngôn ngữ rất tuyệt!)