Щоб створити будь-яку систему таксономії, спочатку потрібно задати собі кілька питань:
- Чи є об'єкти, які я збираюся вкласти у будь-які відносини, визначені правильно?
- Якщо так, чи існують вони насправді?
- Чи обмежуюсь я лише певним видом відносин між об'єктами, чи існує встановлена вимога, щоб система використовувала лише законні відносини?
Як правило, коли ви чуєте запитання, подібне до того, яке ви задали, очікувана відповідь робить кілька припущень. Наприклад, природно припустити, що оскільки всі ці мови, вони повинні формувати ієрархію під загальнішою концепцією мови, або що вони розділяють простір усіх мов, або що вони є підмножинами один одного.
Мови програмування
На жаль, ніщо з перерахованого вище не здається правдою. Можливо, лише мови мов програмування мають визначення, яке найбільше погоджується. Мови програмування - це мови, які кодують програми. Кодування означає, що слово в мові можна інтерпретувати як програму (послідовність дій). Мови програмування комп'ютерів є підмножиною цих. Приклади некомп'ютерних мов програмування: продуктовий список, інтерпретований як вказівки для покупця в супермаркеті, ДНК інтерпретується транскрибуванням пептидів, аналогова музична платівка, яка слугує програмою для магнітофона.
Отже, мови програмування на комп’ютері - це ті, які програмують комп'ютери.
Мови скриптування
Не є чітко визначеними. Це є відкритим для тлумачення, що означає цей термін. Історично здавалося б, що мови програмування, які не мали компілятора для створення машинного коду, були названі таким чином. За сьогоднішніми мірками це ставить би кожну популярну мову програмування, як «Ассамблери», до цієї категорії. Навіть так звані мови низького рівня, такі як C, вимагають виконання з попередньо існуючими процедурами, тому двійкові файли, отримані шляхом компіляції програми C, не є повністю машинним кодом, але також закликають виконувати час виконання.
Мови розмітки
Не є чітко визначеними. Кожного разу, коли цей термін використовується, мабуть, описується мова програмування з дуже обмеженою лексикою, в основному використовується для створення візуального чи звукового зображення. Може бути важко бачити XML як щось програмування, але якщо ви подивитесь на розмітку Man або TexInfo, ви побачите, що "спеціальні" символи - це фактично вказівки перекладача.
Можна також дати "програмування" інтерпретації мови XML, що могло б виглядати так:
< := 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
...
Підсумок: цей поділ на сьогоднішній день не здається дуже значущим, він може лише дати вам інтуїцію щодо того, з якою мовою ви стикаєтесь, але він не надасть вам чіткого визначення.