Để tạo ra bất kỳ loại phân loại nào, trước tiên bạn cần tự hỏi mình một số câu hỏi:
- Các đối tượng tôi sẽ đặt vào bất kỳ mối quan hệ nào được xác định đúng?
- Nếu vậy, họ thực sự tồn tại?
- Tôi có tự giới hạn mình chỉ một loại mối quan hệ cụ thể giữa các đối tượng không, hay có một yêu cầu đặt ra cho hệ thống chỉ sử dụng các quan hệ hợp pháp?
Thông thường, khi một người nghe một câu hỏi giống như câu hỏi bạn đã hỏi, câu trả lời dự kiến sẽ đưa ra một số giả định. Ví dụ, điều tự nhiên là giả định rằng vì tất cả các ngôn ngữ này là ngôn ngữ nên chúng phải tạo thành một hệ thống phân cấp theo khái niệm ngôn ngữ chung hơn hoặc chúng phân vùng không gian của tất cả các ngôn ngữ hoặc chúng là tập hợp con của nhau.
Ngôn ngữ lập trình
Thật không may, không có điều nào ở trên có vẻ đúng. Có lẽ chỉ các ngôn ngữ lập trình có một định nghĩa đồng ý nhất. Ngôn ngữ lập trình là ngôn ngữ mã hóa chương trình. Mã hóa có nghĩa là một từ trong ngôn ngữ có thể được hiểu là một chương trình (một chuỗi các hành động). Ngôn ngữ lập trình máy tính là một tập hợp con trong số này. Ví dụ về ngôn ngữ lập trình không phải máy tính: danh sách tạp hóa, được hiểu là chỉ dẫn cho người mua trong siêu thị, DNA được giải thích bằng cách phiên mã peptide, bản ghi âm nhạc tương tự phục vụ như một chương trình cho máy ghi âm.
Do đó, ngôn ngữ lập trình máy tính là ngôn ngữ lập trình máy tính.
Ngôn ngữ kịch bản
Không được xác định rõ. Nó là mở để giải thích những gì thuật ngữ này có nghĩa. Trong lịch sử, dường như các ngôn ngữ lập trình không có trình biên dịch để tạo mã máy đã được gọi theo cách này. Theo tiêu chuẩn ngày nay, điều này sẽ đưa mọi ngôn ngữ lập trình phổ biến sans Nhà lắp ráp vào danh mục này. Ngay cả những ngôn ngữ được gọi là ngôn ngữ cấp thấp như C yêu cầu thời gian chạy với các thủ tục có sẵn, do đó, các nhị phân thu được bằng cách biên dịch chương trình C không hoàn toàn là mã máy, mà còn gọi đến thời gian chạy mọi lúc.
Ngôn ngữ đánh dấu
Không được xác định rõ. Bất cứ khi nào thuật ngữ này được sử dụng, ý định dường như là để mô tả một ngôn ngữ lập trình với từ vựng rất hạn chế, chủ yếu được sử dụng để tạo hình ảnh trực quan hoặc âm thanh. Có thể khó thấy XML là một chương trình gì đó, nhưng nếu bạn nhìn vào đánh dấu Man hoặc TexInfo, bạn sẽ thấy các ký tự "đặc biệt" thực sự là hướng dẫn của trình thông dịch.
Cũng có thể đưa ra một diễn giải "lập trình" cho ngôn ngữ XML, một thứ có thể diễn ra như sau:
< := put interpreter in the reading node mode
! := if reading node, start CData/Comment mode
else if not in read text mode, signal error
-- := if in start CData/Comment mode, start comment
else if in comment, put in end comment mode
else if in end comment mode, signal error
...
Điểm mấu chốt: sự phân chia này cho đến ngày hôm nay, dường như không có ý nghĩa lắm, nó chỉ có thể mang đến cho bạn một số trực giác về loại ngôn ngữ mà bạn phải đối mặt, nhưng nó sẽ không cung cấp cho bạn định nghĩa nghiêm ngặt.