Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Флейм > Стоит ли считать HTML к языком программирования?


Автор: 4ell 10.12.2012, 22:36
Забавная ситуация вышла у меня сегодня в моем учебном заведении. Не будем тыкать пальцами. 
С сегодняшнего дня к моему плану добавился предмет под названием "Компьютерные сети и их администрирование".
Но как ни странно большая часть курса будет посвящена веб технологиям и нас будут "учить" пяти "языкам программирования":
  • html
  • css
  • javascript
  • sql
  • php
Препод, с пеной у рта, доказывал мне что html это язык программирования, согласился правда что css не стоит к ним причислять.
Даже не знаю что и думать, либо я дурак, либо программистами стоит считать всех кто "написал" hello world на php.
Ладно javscript, ладно php. Но ведь html, css, sql ну ни в какие ворота!

Автор: CompWorm 10.12.2012, 23:32
html - с классической точки зрения не является языком программирования, а всего лишь сполобом разметки страницы. так написано во всех учебниках. это скорее интерпретируемые программой, в данном случае браузером, данные.

с другой стороны можно впасть в заблуждение и подкопаться, что он представляет собой набор инструкций, задающих поведение программы-хоста, отрисовывающей страницу... 
такой подкоп неверен, ибо тогда любой конфигурационный файл можно считать программой, а если конфиг записан в XML  smile , то ещё и его неподумав можно назвать языком программирования)))))) 
Ошибка тех, кто так говорит заключается в попытке причислить "язык разметки" к скриптам, то есть "языкам сценария".

сами по себе "сценарные языки" являются языками программирования, но в чём отличие их от классических ЯПов - это уже полемика на уровне религиозных воин... можно сюда ещё дотнет вспомнить с его байткодом и растянуть палемику на 100 страниц...

вывод - препод неправ. пусть покажет хоть в одном издании где HTML - ЯП.

Автор: Фантом 10.12.2012, 23:42
Цитата(CompWorm @  11.12.2012,  00:32 Найти цитируемый пост)

вывод - препод неправ. пусть покажет хоть в одном издании где HTML - ЯП. 


Вообще говоря, если погуглить словосочетание "язык программирования HTML", то найдется много ссылок, в том числе и на желаемые издания.  smile

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

Автор: CompWorm 10.12.2012, 23:56
жаль что развалили образование... нас вот учили цитатами с википедии в инсте smile 

проблема в том что в преподы часто берут зелёных выпускников и аспирантов, проплативших аспирантуру. 
мне вот сразу по окончанию инста предложили на бирже труда в преподы пойти. я не хотел, но обходной листок подписать таки надо было))) так я из этого учебного заведения еле выбрался - всеми правдами и неправдами не хотели отпускать и соглашались на всё! вместе с тем преподавательского образования у меня нет хрен знает чему их учить.
был круче случай - в инсте один из наших постоянных прогульщиков прополз в аспирантуру и его там, как и всех на второй год запрягли преподавать)))) мы уссывались со смеху)))))))))

я это к чему, 4ell - не наезжай на препода, время щас такое. сам учись  smile 

Автор: Данкинг 10.12.2012, 23:57
А по javascript какие вообще сомнения могут быть?

Автор: CompWorm 11.12.2012, 00:03
Цитата(Фантом @  10.12.2012,  23:42 Найти цитируемый пост)
Вообще говоря, если погуглить 

стало любопытно, https://www.google.ru/search?q=%D0%BA%D0%BD%D0%B8%D0%B3%D0%B0+%D1%8F%D0%B7%D1%8B%D0%BA+%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F+HTML&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ru:official&client=firefox-a - два каких-то самопальных без авторов и прочей атрибутики есть.
возможно это они в свете HTML 5 так решили превознести его  smile 

Автор: 4ell 11.12.2012, 00:04
JavaScript, php - языки программирования, не спорю.
Думаю правильно будет сказать что на языке программирования можно написать программу.
На оставшихся разве можно?
CompWorm - статьи из википедии слово в слово под диктовку и у нас практикуется.
Зато есть интернет, подобные форумы куча хорошей литературы, а если еще желание тогда вряд ли кто-то тебя остановит.
Просто обидно что платишь деньги, причем не малые.
А в итоге ни знаний, ни денег...

Автор: CompWorm 11.12.2012, 00:06
Данкинг, там сомнения про css, html и SQL у автора, если я всё правильно понял...

Автор: Данкинг 11.12.2012, 00:16
А, там ещё и SQL. А чё: раз language - значит, язык. smile 

Автор: Фантом 11.12.2012, 00:18
Цитата(4ell @  11.12.2012,  01:04 Найти цитируемый пост)

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

Тогда полезно задуматься над вопросом, что такое программа.   smile   Попробуйте сочинить какое-нибудь определение "программы" (причем такое, чтобы чисто декларативный код на Прологе в рамках этого определения программой являлся, а  рецепт из "Книги о вкусной и здоровой пище" - нет). Это совсем не так просто, как кажется.  smile 

Автор: CompWorm 11.12.2012, 00:31
Цитата(4ell @  11.12.2012,  00:04 Найти цитируемый пост)
Думаю правильно будет сказать что на языке программирования можно написать программу.

я выше писал о классическом, можно сказать школьном, понимании программирования.
в широком смысле ты даёшь очень скользкое определение.

что по-твоему есть программа? особеено, когда речь идёт о javascript, lua, pawno итп )) если ты козырнёшь классическим "это набор исполняемых инструкций бла бла бла" то тогда любые данные можно считать "программой".
пример:
сравни например html файл и  exe. и там и там некоторый исполнятор считывает заголовок, в случае html - тег <html> и какие-то заголовки, в случае exe - заголовок PE, понимает, что за формат ему попался и начинает выполнять инструкции, пока не достигнет точки выхода. 

Автор: 4ell 11.12.2012, 00:34
SQL - Structured Query Language язык запросов, но не язык программирования. Можно считать что по определению авторов он уже не ЯП.

Фантом - да чтобы это определить нужно придумать другой язык, русский не совсем для этих целей подойдет.
Хотя можно сделать ооочень длинное определение в котором определить кучу критериев.
Так вот чтоб такого не делать, можно дать хотя бы приближенноe определение, 
можно например сказать что ЯП это формальный язык позволяющий записать алгоритм, который в последствии может быть выполнен на ЭВМ.

Теперь смотрим на html. Встроенных средств для записи алгоритмов нет, css, sql - аналогично. Отсюда вывод.
Можно конечно пойти дальше и начать спрашивать а что такое алгоритм. И продолжать эту игру с терминами можно до бесконечности.

Еще, хочу добавить одну вещь, на языке программирования можно написать любой алгоритм, который только существует. 
Вот например алгоритм нахождения n-го числа фибоначчи. Напишите мне его на чистом html. Причем следует учесть что это не достаточный признак ЯП.

Автор: CompWorm 11.12.2012, 00:43
Цитата(4ell @  11.12.2012,  00:34 Найти цитируемый пост)
Хотя можно сделать ооочень длинное определение в котором определить кучу критериев.

тебе придётся это сделать. препод не отступит наверняка так просто))) он тоже щас на другом форуме этот вопрос задал  smile 

Цитата(4ell @  11.12.2012,  00:34 Найти цитируемый пост)
Теперь смотрим на html. Встроенных средств для записи алгоритмов нет, css, sql - аналогично. Отсюда вывод.

чо?! блокнот! блокнот же есть чтобы записать код  smile
Цитата(4ell @  11.12.2012,  00:34 Найти цитируемый пост)
можно например сказать что ЯП это формальный язык позволяющий записать алгоритм, который в последствии может быть выполнен на ЭВМ.

код можно и на парте нацарапать гвоздём, а выполнить позже  smile

Добавлено через 5 минут и 16 секунд
4ell, я не просто так троллю. ты должен суметь понять и формализировать что конкретно я там неправильно написал. иначе борьба с преподом закончится эпик фейлом

Автор: 4ell 11.12.2012, 00:51
Цитата

чо?! блокнот! блокнот же есть чтобы записать код  

Ахах, блокнот, круто! Но если серьезно, то есть определенный минимум конструкций из которых можно построить язык полный, по Тьюрингу.
Цитата

код можно и на парте нацарапать гвоздём, а выполнить позже    

Спасибо, повеселили smile

Добавлено через 6 минут и 38 секунд
Цитата

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

ок, CompWorm ты не правильно интерпретировал сочетание "средства записи алгоритмов", я подразумевал специальные конструкции которые позволяют задавать определенный ход выполнения и изменение состояния исполнителя.

Автор: DviRUS 11.12.2012, 10:54
Слава богу у нас таких "Учитилей" небыло...
Тыкни пальцем чтоб знали своих героев... smile

Автор: Poseidon 11.12.2012, 14:01
Цитата(4ell @  10.12.2012,  22:36 Найти цитируемый пост)
Препод, с пеной у рта, доказывал мне что html это язык программирования
Нормальная ситуация. Моему другу за этот же вопрос снизили оценку на экзамене. А знакомую тот же препод отправил на пересдачу, т.к. на дополнительный вопрос: "Чем отличаются локальные сети от глобальных?" правильным ответом было "Глобальные - это те, у которых расстояние между крайними точками более 100 метров". И никакими аргументами ничего доказать нельзя было. Я вообще удивляюсь как мне удалось сдать тот экзамен, учитывая, что мне попался вопрос про протоколы передачи данных и я начал рассказывать про TCP/IP, FTP, HTTP и т.д. А оказывается самый главный протокол в интернете - www - не упомянул. Как я тогда выкрутился - не знаю. Так что ничего страшного, бывает и хуже smile

Добавлено через 2 минуты и 28 секунд
Кстати, по теме. По-моему html и SQL ну никак нельзя считать языками программирования. Таким макаром можно и rtf назвать языком программирования. Чем этот формат принципиально от html отличается?

Автор: LSD 11.12.2012, 14:26
Цитата(4ell @  11.12.2012,  01:51 Найти цитируемый пост)
Но если серьезно, то есть определенный минимум конструкций из которых можно построить язык полный, по Тьюрингу.

http://en.wikipedia.org/wiki/Unrestricted_grammar являются полными по тьюрингу. 
Я не могу сходу сказать является ли HTML неограниченной грамматикой, но и утверждать обратное тоже не возьмусь.

Автор: Фантом 11.12.2012, 14:48
Цитата(4ell @  11.12.2012,  01:34 Найти цитируемый пост)
SQL - Structured Query Language язык запросов, но не язык программирования. Можно считать что по определению авторов он уже не ЯП.

В таком случае какой-нибудь Фортран (FORmula TRANslator) вообще не язык.  Впрочем, языками программирования в рамках такого определения являются только PL/1 и PL/M (поскольку PL - это "programming language").  smile 

Цитата(4ell @  11.12.2012,  01:34 Найти цитируемый пост)
Фантом - да чтобы это определить нужно придумать другой язык, русский не совсем для этих целей подойдет.
Хотя можно сделать ооочень длинное определение в котором определить кучу критериев.
Так вот чтоб такого не делать, можно дать хотя бы приближенноe определение, 
можно например сказать что ЯП это формальный язык позволяющий записать алгоритм, который в последствии может быть выполнен на ЭВМ.

В таком случае HTML является языком программирования. Это запись алгоритма отображения страницы в броузере.

Цитата(4ell @  11.12.2012,  01:34 Найти цитируемый пост)

Теперь смотрим на html. Встроенных средств для записи алгоритмов нет, css, sql - аналогично. Отсюда вывод.
Можно конечно пойти дальше и начать спрашивать а что такое алгоритм. И продолжать эту игру с терминами можно до бесконечности. 

Не такая уж это игра, из нее (при аккуратном подходе) следует довольно много интересных результатов. И, кстати, формальное определение алгоритма как раз существует, так что дальше двигаться необязательно

Цитата(4ell @  11.12.2012,  01:34 Найти цитируемый пост)

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

Вот последнее - это уже теплее. Т.е. язык программирования должен обладать полнотой по Тьюрингу.

Однако в природе есть нечто, что принято называть "языками программирования", хотя тьюринг-полнотой они не обладают (редко, но такое встречается), и намного чаще встречается то, что является тьюринг-полным, но что не принято называть языком программирования. 

В частности, CSS3 и SQL со стандартными расширениями тьюринг-полны.  smile На них можно записать любой существующий алгоритм. HTML действительно неполон, но вот такая штука, как TeX (который тоже "язык разметки") тьюринг-полнотой обладает.

Бывают и более изысканные случаи. Есть PostScript, который вроде бы тоже язык разметки. Однако он же - по сути дела, немного модифицированный Forth (который язык программирования). Полны по Тьюрингу оба.  smile 

Цитата(4ell @  11.12.2012,  01:34 Найти цитируемый пост)
Причем следует учесть что это не достаточный признак ЯП.

А что будет достаточным?

Добавлено через 6 минут
Цитата(LSD @  11.12.2012,  15:26 Найти цитируемый пост)

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


"Обычный¨ HTML не является. А вот насчет HTML5 я тоже ничего сказать не берусь...

Автор: LSD 11.12.2012, 15:02
Цитата(Фантом @  11.12.2012,  15:48 Найти цитируемый пост)
"Обычный¨ HTML не является. А вот насчет HTML5 я тоже ничего сказать не берусь...

В чем принципиальная разница между "обычным" HTML и HTML5?

Автор: Akella 11.12.2012, 15:14
HTML - это язык, но язык разметки
думаю, что можно назвать это ЯП


Цитата(CompWorm @  10.12.2012,  23:32 Найти цитируемый пост)
это скорее интерпретируемые программой, в данном случае браузером, данные.

а XML, SQL, XAML, JS
интерпретируемых ЯП вагон

Автор: Фантом 11.12.2012, 15:14
Цитата(LSD @  11.12.2012,  16:02 Найти цитируемый пост)

В чем принципиальная разница между "обычным" HTML и HTML5? 

В том, что я не берусь утверждать, что знаю последний. smile

Автор: Freyzer 11.12.2012, 15:38
Цитата(CompWorm @ 10.12.2012,  23:56)
я это к чему, 4ell - не наезжай на препода, время щас такое. сам учись  smile

Реално, впервые слышу, что хотел бы услушылать

Автор: bilbobagginz 11.12.2012, 17:46
это как грицца 
Цитата

порнография - это вопрос географии

Если определять ЯП как обязательно полный по Тюрингу, то большинство DSL не пройдет.
А если рассуждать не узко, то можно разделять яп на разные подгруппы (одно такое разделение описано в педивикии),
Судя по такому определению и классификации, яп - набор инструкций  для выполнения (не указано кем конкретно).
Один из стандартных классов яп является семейство "декларативных ЯП"

Можно рассматривать HTML как т.н. "domain specific" подгруппу XML, 
т.е. как "declarative markup" язык: 
язык описания  документов компьютерными программами, понимающими этот язык (браузерами, например)
А т.к. "декларативные маркап языки" являются подмножеством множества "языки программирования", можно сказать ergo:
Код

\Rightarrow HTML \subset ЯП
\blacksquare

т.е. "что и требовалось доказать"

Ессно, знание HTML не является делом сложным, т.к. алгоритмики в нем практически нет (хотя размечать можно умнее и тупее, правильнее и кривее), и я не стал бы записывать знание ХТМЛ у себя в "рабословной по найму" (a.k.a. CV), 
и все же,  понимание как этот HTML преобразуется в DOM, а из него в то что видно в браузере - тоже дело не всегда тривиальное ;)

Мир всем.

Автор: LSD 11.12.2012, 18:10
Цитата(Фантом @  11.12.2012,  16:14 Найти цитируемый пост)
В том, что я не берусь утверждать, что знаю последний.

Переформулируем вопрос: почему ты уверен что "обычный" HTML не является? Ты можешь это доказать или это умозрительные заключения?

Автор: Arantir 11.12.2012, 19:31
Цитата(LSD @ 11.12.2012,  14:02)
Цитата(Фантом @  11.12.2012,  15:48 Найти цитируемый пост)
"Обычный¨ HTML не является. А вот насчет HTML5 я тоже ничего сказать не берусь...

В чем принципиальная разница между "обычным" HTML и HTML5?

Нету там разницы. HTML5 содержит теги, которые интерпретируются браузером во всякое видео/аудио, рисование и т.д.
Сам по себе HTML5 не предоставляет возможностей для создания хоть каких бы то ни было "подвижных" систем (алгоритмов, что либо выполняющих), как и другие версии HTML. По-этому он и не язык программирования.

И вообще, никогда таким HTML не станет. Концепция разделения труда древняя как мир и до сих пор не утратила актуальности. Разделение вывода (вида) и бизнес-логики. Вот на чем построен HTML.
Дизайнеры могут работать с простым HTML, статическим выводом. А программисты могут работать со сложными серверными (и клиентскими, как JS) частями и не извращать дизайн своим математическим мышлением =)
Это дает возможность делать каждую из этих частей максимально эффективно и качественно.

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

Как-то так...

Автор: Фантом 11.12.2012, 20:18
Цитата(LSD @  11.12.2012,  19:10 Найти цитируемый пост)

Переформулируем вопрос: почему ты уверен что "обычный" HTML не является?

Доводилось видеть это в статьях и слышать от коллег по факультету (которые являются специалистами по этой части), насколько я помню, кто-то когда-то озаботился доказательством его тьюринг-неполноты. Точную ссылку сходу дать не берусь, это все-таки слишком далеко от области моих профессиональных интересов, но, если очень интересно, могу потрясти коллег.

Автор: 4ell 11.12.2012, 21:01
Вопрос сложен, формально дать определение языку программирования врядли получится. 
Поскольку как уже говорили выше как бы мы не старались появляются исключения из правил.
Например тот же пролог не является Тьюринг-полным. При этом неограниченные грамматики 
хоть полны по Тьюрингу, языками программирования не являются. Так же CSS3 + HTML не принято считать ЯП.

Может быть стоит определить ЯП более интуитивно, наример считать языком программирования язык, который
Предназначен для реализации на нем различных алгоритмов, и позволяет достаточно просто их записывать.

Автор: Фантом 11.12.2012, 21:43
Цитата(4ell @  11.12.2012,  22:01 Найти цитируемый пост)
Например тот же пролог не является Тьюринг-полным.

Как раз является. 


Цитата(4ell @  11.12.2012,  22:01 Найти цитируемый пост)

Может быть стоит определить ЯП более интуитивно, наример считать языком программирования язык, который
Предназначен для реализации на нем различных алгоритмов, и позволяет достаточно просто их записывать. 

Рецепты из поваренной книги?..  smile 

Автор: 4ell 11.12.2012, 21:55
Цитата

Как раз является. 

Упс... Правда, недоглядел. Но скажем языки пиксельных шейдеров уже не Тьюринг полные. Я это к тому что в природе такие языки есть.
Цитата

Рецепты из поваренной книги?

Рецепты написанны на русском языке, который неформален.
Но предположим у нас есть робот-повар, что нам мешает придумать язык для того чтобы было с одной стороны просто записывать рецепты
а с другой стороны они интерпретировались роботом однозначно?

Автор: Фантом 11.12.2012, 22:19
Цитата(4ell @  11.12.2012,  22:55 Найти цитируемый пост)
Но скажем языки пиксельных шейдеров уже не Тьюринг полные. Я это к тому что в природе такие языки есть.

Конечно. Как уже упоминали выше, этим свойством обладают почти все DSL, что не мешает людям считать их языками программирования.


Цитата(4ell @  11.12.2012,  22:55 Найти цитируемый пост)

Рецепты написанны на русском языке, который неформален.

Можно переписать поваренную книгу на эсперанто (в котором, как известно, нет ни одного исключения из правил, да и правил немного). 

Цитата(4ell @  11.12.2012,  22:55 Найти цитируемый пост)
Но предположим у нас есть робот-повар, что нам мешает придумать язык для того чтобы было с одной стороны просто записывать рецепты а с другой стороны они интерпретировались роботом однозначно?

Ничего, причем этот входной язык вполне может оказаться некоторым (в т.ч. и достаточно широким) подмножеством какого-либо естественного языка. Впрочем, "пиджин инглиш" и так подойдет, без урезания. smile

В конечном счете получается, что "язык программирования" - это то, что так называют (многие) люди. Никакого более удачного определения не придумать, поэтому в некотором смысле преподаватель был прав (во всяком случае, он далеко не единственный человек, считающий HTML языком программирования).

Автор: 4ell 11.12.2012, 22:32
И все же, html не описывает как рендерить страницу, он описывает что рендерить.
Цитата(Фантом @  11.12.2012,  22:19 Найти цитируемый пост)
В конечном счете получается, что "язык программирования" - это то, что так называют (многие) люди.

Все таки этот язык не принято причислять к языкам программирования, об этом пишут практически везде. Чтоб не быть голословным
http://en.wikipedia.org/wiki/Programming_language#Definitions

Добавлено через 4 минуты и 7 секунд
Кстати, если человек только что изучил веб технологии и считает html ЯП. А человек который всю жизнь занимается программированием написал несколько книг и утверждает что он не является ЯП. Чье мнение более весомое?

Автор: Фантом 11.12.2012, 23:55
Цитата(4ell @  11.12.2012,  23:32 Найти цитируемый пост)
И все же, html не описывает как рендерить страницу, он описывает что рендерить.


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

Цитата(4ell @  11.12.2012,  23:32 Найти цитируемый пост)

Все таки этот язык не принято причислять к языкам программирования, об этом пишут практически везде.

Не спорю, но и примеры обратного, как я уже писал выше, найти несложно. 

Цитата(4ell @  11.12.2012,  23:32 Найти цитируемый пост)
Кстати, если человек только что изучил веб технологии и считает html ЯП. А человек который всю жизнь занимается программированием написал несколько книг и утверждает что он не является ЯП. Чье мнение более весомое? 

Ничье. Это только вопрос договоренности и привычек, ничего больше.

Автор: Arantir 12.12.2012, 00:15
А меня учили, что программирование - это чтение данных, обработка данных и вывод данных.
С этой точки зрения HTML - не язык программирования. С помощью HTML нельзя прочитать, обработать или выполнить данные. Этим занимается браузер, который написан как раз на языке программирования. А HTML выступает уже в роли самих данных.

Можно сказать, что HTML - это просто такой формат сохранения данных. Точно так же, как PDF, DOC (MS World) и подобные.

Добавлено через 7 минут и 43 секунды
Откройте калькулятор в windows и попробуйте полностью реализовать его функционал на том, что вы считаете языком программирования  smile 
Если получится - это действительно язык программирования. Если не получится - это лишь некоторый частный случай способов обработки данных.

Автор: Freyzer 12.12.2012, 07:14
Стоит ли считать HTML к языком программирования вот как написанна тема, вот также HTML, язык программирования.

Все время считал что это язык разметки.

Автор: LSD 14.12.2012, 12:11
Я все таки не понимаю на чем основано утверждение что неограниченные грамматики полны по Тьюрингу. Т.е. XSLT считается тьюринг полным, а XML нет, хотя любой XSLT документ является и XML документом.

Автор: Freyzer 14.12.2012, 12:59
Алгоритм, это хорошо но, перфокарта не позволит вывести интерфейс на экран. Может я ошибаюсь?  smile

Автор: CompWorm 14.12.2012, 13:50
Да при Тьюринге такого бардака не было   smile 
 

Автор: 4ell 14.12.2012, 20:49
Цитата(LSD @  14.12.2012,  12:11 Найти цитируемый пост)
любой XSLT документ является и XML документом

Тут то прикол в том что правила построения XML дополняются правилами XLST. Т.е. в принципе можно описать программу на xml
например так:
Код

<var name="i" value="0" />
<while>
    <precondition>
        <larger>
            <var name="i" />
            <than/>
            <value>10</value>
        </larger>
    </precondition>
    <body>
        <print><var name="i"></print>
    </body>
</while>

по уродски конечно не продуманно, но факт что поверх самого XML можно придумать язык программирования, но исполнять то его будет не парсер xml! А специальный интерпретатор.


Цитата(Freyzer @  14.12.2012,  12:59 Найти цитируемый пост)
Алгоритм, это хорошо но, перфокарта не позволит вывести интерфейс на экран. Может я ошибаюсь?

Диск с программой тоже не позволит вывести интерфейс на экран и что? Можно например вручную под микроскопом рассматривать этот диск и выписывать биты на листочек. Затем вручную разбирать машинные команды.

Автор: Samotnik 14.12.2012, 21:10
Цитата(CompWorm @  14.12.2012,  13:50 Найти цитируемый пост)
Да при Тьюринге такого бардака не было   smile 

http://it.tut.by/325175

Автор: ksnk 14.12.2012, 21:41
Цитата(4ell @  14.12.2012,  20:49 Найти цитируемый пост)
Тут то прикол в том 

Давай тогда английский язык назовем языком программирования! А что? Все слова, которыми записываются программы традиционных языков - английские.  smile 

Автор: 4ell 14.12.2012, 21:53
Цитата(ksnk @  14.12.2012,  21:41 Найти цитируемый пост)
Давай тогда английский язык назовем языком программирования! А что? Все слова, которыми записываются программы традиционных языков - английские.    

Суть не в том чтобы объявить XML или английский языком программирования. Суть в том что добавив в них некоторые новые правила можно сделать их языками программирования.

Добавлено через 1 минуту и 17 секунд
Но дополнив язык, мы уже его изменили, т.е. это уже не тот прежний XML и не тот английский что был раньше. Это новый дополненный язык

Автор: Arantir 14.12.2012, 22:43
Код

проделка целое ДЕЛЕНИЕ(целое РАЗ, целое ДВА)
начать
    если ДВА не 0
        начать
            вернуть РАЗ делить ДВА
        кончить
    иначе
        начать
            вернуть исключение «Деление на ноль запрещено!»
        кончить
кончить
 smile  smile 

Разница между русским, английским, HTML и каким-нибудь C++ в том, что русский и английский можно использовать только для общения между людьми, HTML только разметки web-страницек, а C++ только для общения с ЕОМ.

Автор: CompWorm 16.12.2012, 13:25
Цитата(Arantir @  14.12.2012,  22:43 Найти цитируемый пост)

Разница между русским, английским, HTML и каким-нибудь C++ в том, что русский и английский можно использовать только для общения между людьми, HTML только разметки web-страницек, а C++ только для общения с ЕОМ

ты 1С видел?

Автор: LSD 17.12.2012, 16:53
Цитата(4ell @  14.12.2012,  21:49 Найти цитируемый пост)
по уродски конечно не продуманно, но факт что поверх самого XML можно придумать язык программирования, но исполнять то его будет не парсер xml! А специальный интерпретатор.

Можно и поверх HTML то же самое придумать, это не фокус.

Вопрос в другом, почему неограниченные грамматики считаются Тьюринг полными? Как там происходит вычисления?

Автор: diadiavova 18.12.2012, 11:34

Я думаю, здесь в вопросе сабжа кроется два вопроса, которые целесообразнее было рассматривать поотдельности: 
1. Считается ли хтмл ЯПом
2. Является ли он таковым

На первый вопрос ответ более или менее очевиден. Большинство источников говорит, что это не ЯП, хотя есть и те, кто либо настаивает на том, что он таковым является, либо не, как минимум, не спорят с такой формулировкой.
Причиной того, что язык не считается ЯПом, по всей видимости является то, что здесь тон задают программисты менстримовых языков. Для них в хтмл отсутствуют типичные для ЯПов конструкции( циклы, переменные и пр.), он слишком специализирован и вообще код больше похож на описание структуры данных, нежели инструкций, которые следует выполнять. В то же время, следует заметить, что среди приверженцев идеи о том, что это ЯП, далеко не все - лохи, что, в общем-то, продемонстрировала даже эта тема.
Ответ на второй вопрос затруднителен в силу того, что формального определения языка программирования не существует, а когда возникала традиция называть тот или иной язык языком программирования, критерии были разными. В силу этого обстоятельства, как уже писал Фантом, сформулировать критерии ЯПа таким образом, чтобы им удовлетворяли все языки, считающиеся таковыми, а все не считающиеся были отсяны - вряд ли возможно.
Прокомментирую несколько утверждений, прозвучавших в этой теме и кажущихся мне как минимум спорными.
Попытку разделения языков, исходя из того, всё ли они могут, вряд ли можно считать состоятельной, поскольку этот критерий делит языки не на япы и неяпы, а на языки общего назначения (General Purpose) и предметно-ориентированные (Domain Specific) и совсем непонятно, почему последним отказывается в праве называться япами, тем более, что традиционно некоторые из них так называются. Полнота по Тьюрингу - так же довольно зыбкий критерий, поскольку если его применять, то автоматное программирование придётся перестать считать программированием, поскольку автомат не является полным по Тьюрингу.
Наличие в языке алгоритмического инструментария - так же вряд ли надёжный критерий, поскольку в этом случае выпадают функциональное и логичекое программирование.
Не менее спорным я считаю аргумент, указывающий на то, что языки, описывающие некую структуру данных, не являются языками программирования. Если взять любой объектно-ориентированный язык, то бОльшая часть конструкций этого языка описывает структуру данных. Алгоритм там только внутри метода, да и там есть место для структур данных( взять тот же json, e4x в яваскрипте, да и не только). И если забить в поисковик что-то типа "эквивалентность алгоритмов и данных", то можно найти немало интересного по этому вопросу. Ну и наконец, если взглянуть на то, как происходит обработка кода машиной, то мы увидим, что на первоначальном этапе происходит парсинг. Результатом парсинга является абстрактное синтаксическое дерево, а что есть это дерево, как не структура данных? Выходит, что любой язык описывает структуру данных, и языки, более ориентированные на описание структур( такие как хмл) вполне подходят для написания программ и даже существуют реализации такого подхода.
Конфигурации. В конфигурацию обычно выводится та часть поведения программы, которую надо будет изменять во время исполнения, когда доступа к изменению кода не будет. При этом эффект должен быть таким же, как и от изменения программного кода. Достаточно ли этого, чтобы считать конфигурацию программой? Не знаю, но судить об этом так же категорично, как тут некоторые делали, не стал бы.
Ну и наконец хтмл. Самое странное, что его по сей день некоторые называют языком разметки гипертекста. Когда язык получил название, это действительно был язык, описывающий форматированный текст с гиперссылками. С тех пор кагбе многое изменилось: в нём появились элементы управления для отправки форм на сервер; сценарии; стили; изображения ( в том числе анимированные); встроенные объекты с зачастую чрезвычайно сложным поведением, к тому же способные взаимодействовать с документом; встроенные языки( такие как svg например) и всякая прочая мультимедия. В настоящее время с помощью этого языка пишутся клиентские части сложнейших веб-приложений, которые порой уже теснять свои десктопные аналоги. И что, не смотря на всё это он таки остался тем, что заложено в его названии? Конечно, вы скажете, что скрипты и прочее пишутся на других языках, поэтому не считаются, ну, а как же тогда быть с тем же яваскриптом и прочими скриптовыми языками? Яваскрипту для работы нужны объекты DOM, ActiveX, XPCOM или ещё что-то, а сам по себе он не в состоянии даже взаимдействовать с пользователем. Или взять язык XSLT. Считается языком программирования и даже полным по Тьюрингу, но все его вычислительные возможности кроются в языке XPath и без него он - ноль без палочки. А хтмл, в отличие от двух предыдущих примеров, по крайней мере самдостаточен, а возможность расширения скриптами и объектами заложена в самом языке.

ЗЫ
ЛСД, хслт как язык программирования полон по Тьюрингу, но его синтаксис основан на контекстно-свободной грамматике, полнотой по Тьюрингу не обладающей. Это общая тенденция и характерно дя большинства япов.
Применительно к грамматике полнота по Тьюрингу обозначает необходимый набор инструментов для её разбора: если для разбора к-с-грамматики достаточно автомата со стеком, то для тьюринг-полной грамматики этого мало.

ЗЫЗЫ
А вообще, надо в тему зазвать нашего главного специалиста по хтмл Иринузануду и как она скажет - так и будет smile 

Автор: irinazanuda 18.12.2012, 12:15
Однозначно--язык программирования и не надо бла-бла и камни в мой огород... с помощью этого ЯЗЫКА делается размётка и вёрстка... а так же чем я и занимаюсь гифками)))). раз можно писать код и вставлять разные картинки в него-- это уже свой стиль!!! , кроме того только для хтмл есть специальные правила и формулы, спец слова--тоесть отличный от других языков!!!! Все причиндалы, которыехарактеризующие принадлежность к языку есть!!!
PS: Ну, и как всегда ДядяВова прав, Унибомб хороший, тему можно закрывать

Автор: Freyzer 20.12.2012, 07:15
?  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)