Чтобы создать любой вид таксономии, вам нужно сначала задать себе несколько вопросов:
- Объекты, которые я собираюсь поместить в какие-либо отношения, определены правильно?
- Если так, они действительно существуют?
- Я ограничиваю себя только определенным типом отношений между объектами, или существует установленное требование для системы использовать только законные отношения?
Как правило, когда кто-то слышит вопрос, подобный тому, который вы задали, ожидаемый ответ делает несколько предположений. Например, естественно предположить, что, поскольку все это языки, они должны образовывать иерархию в соответствии с более общей концепцией языка, или что они разделяют пространство всех языков, или что они являются подмножествами друг друга.
Языки программирования
К сожалению, ничего из вышеперечисленного, похоже, не соответствует действительности. Возможно, только у языков программирования есть определение, с которым большинство соглашается. Языки программирования - это языки, которые кодируют программы. Кодирование означает, что слово в языке может быть интерпретировано как программа (последовательность действий). Языки программирования являются подмножеством этих. Примеры некомпьютерных языков программирования: список покупок, интерпретируемый как указания для покупателя в супермаркете, ДНК, интерпретируемая путем транскрибирования пептидов, аналоговая музыкальная запись, служащая в качестве программы для магнитофона.
Таким образом, языки программирования являются теми, которые программируют компьютеры.
Скриптовые языки
Не четко определены Понятие этого термина открыто для толкования. Исторически сложилось так, что языки программирования, у которых не было компилятора для создания машинного кода, назывались так. По сегодняшним стандартам это поместило бы все популярные языки программирования без Ассемблеров в эту категорию. Даже так называемые низкоуровневые языки, такие как 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
...
Итог: это разделение на сегодняшний день не кажется очень значимым, оно может дать вам только некоторую интуицию относительно того, с каким языком вы столкнулись, но оно не даст вам точного определения.