2010-01-21 3 views
3

Все языки программирования языков разметки?Являются ли языки разметки языками?

Например, XML или HTML являются языками программирования?

+0

Dup ... Поиск в первую очередь. –

+0

@the_drow: Упоминать ссылку? – GManNickG

+0

Связанный, но не повторяющийся вопрос: http://stackoverflow.com/questions/145176/is-html-considered-a-programming-language –

ответ

5

Термин «язык программирования» не определен достаточно строго для того, чтобы у него был хороший ответ. Это зависит от контекста, в котором этот термин используется. Во многих контекстах (обычно, когда упоминаются языки, такие как C++, D или Java), «Ting Complete» должен быть «языком программирования». Однако XML и HTML соответствуют более мягкому набору критериев. У них есть грамматика и текстовые средства для выражения на компьютере того, что вы хотите. Поэтому в некоторых контекстах их можно рассматривать как декларативные языки программирования.

1

Это зависит от языка. Разумеется, существуют полные языки разметки (включая XMLish), они не распространены, хотя, поскольку они уродливы.

5

Язык разметки более точно можно назвать Языки описания данных. Они описывают ваши данные.

В то время как языки программирования используются для указания компьютеру выполнять логику.

+0

И где вы рисуете линию? TeX: разметка или язык программирования? XSLT: разметка или язык программирования (имея в виду, что XSLT ** является ** XML)? PostScript? ... S-выражения? M-выражение? Это действительно хорошо иллюстрирует, что программы * являются * данными. –

0

Поскольку термины наиболее часто используются, я бы сказал, что HTML и простой XML оба выходят за рамки языков программирования.

Тем не менее, довольно много HTML содержит биты и куски JavaScript, которые должны рассматриваться как язык программирования практически любым определением. Аналогично, «X» в XML не хватает eXtensible. Это (косвенно) означает, что вы можете прикрепить практически любое значение, которое вы хотите сохранить в XML. В этом случае структура исходного кода и структура XML могут быть прямыми отражениями друг от друга. Тем не менее, на самом деле это примеры того, что язык разметки является контейнером для исходного кода (или объектного кода, хотя это несколько реже) для кода, написанного на определенном отдельно определенном языке программирования, что не меняет того факта, что язык разметки сам по себе не является языком программирования.

Есть еще пограничные случаи (например, определение анимации в HTML с CSS), но в то время как они приближаются к границе, по крайней мере, право экспромтом никто не приходит в голову мне, что на самом деле кресты границы до такой степени, что вы однозначно назвать либо программирование язык.

Смежные вопросы