在个人的印象中,html一直不被算做一门编程语言,也看到过有人将其理解为一门标记语言。
当前html5中出现的一些新特性,则使本人对这个问题越来越感到困惑,希望前辈们指点一二。
回复内容:
HTML 乃至任何置标语言(markup language)都不能算是编程语言(programming language),因为它们只是对于数据的标记,而不能用于对数据进行处理。参见
http://www.cs.tut.fi/~jkorpela/prog.html哪些 HTML5 的新特性让你困惑呢?
HTML 是标记语言,不具备图灵完备性,应该不算编程语言。HTML5感觉更像一个平台,而不是一个语言。html5 包含 html等基础标记,有人也把 css3 划归到html5里面,更具划时代意义的是html5 提供了很多 js 的api,通过 js 调用这些api可以做到很多完备编程语言的事情。
用一个不恰当的比喻,编程语言是厨师,编写一个程序就是做一道菜。html5 就像一个厨房,js 是一个厨师,css类似各种调料,html5 新的api 就像冰箱和各种厨具。厨房提供原料让厨师做菜。
一套(计算机)语言是制定了一系列特定语法结构所表征含义的协议。
HTML是人与HTML解析器(解析、呈现)之间的协议,一个特定的HTML文本试图通过HTML定义的标记规则来表征一个网页的
布局和内容,里面可以嵌入也可以从外部引用静态修饰布局和内容的另一个语言(协议)称为CSS,也可以嵌入或从外部引用动态设定布局和内容的一个「编程语言」,例如 JavaScript。
编程语言是人与程序编译器(compiler)或解读器(intepreter)之间的协议,规定了特定语法结构所表征的
执行过程,对于命令式编程语言(imperative programming language)和函数式编程语言(functional programming language),这种解读有所不同,但总得是表征执行性的内容,而非表征静态的布局和内容。
最基本的一个问题是,编程语言是为了解决一个问题,通过给计算机处理问题的逻辑指令从而得到相应结果的一种人机交互语言,html5是标记语言,其本质是信息载体,并不具备处理问题逻辑的能力,所以不是编程语言。
标记语言,不过,广义的HTML5包括了js API+CSS3,这就算是编程语言了?
算不上编程语言,就字面理解,编程至少重点是程序,需要通过繁杂的逻辑指令达到一定的功能或者是模拟一些行为,HTML5只是一门标记语言,重在标记和承载。
所以HTML5是一种信息的存储和管理。编程语言是逻辑处理和执行。
不具备图灵完备,不算编程语言
html作为一门标记语言,更重要的作用是作为信息的呈现载体,注重信息的呈现形式。
而编程语言的作用更多的在于对信息的收集,筛选和整理这个逻辑过程。
html5中出现了很多的新特性,但总体还是更偏重于信息的呈现方式,而不是对信息本身的处理。
当然,这只是对开发者来说。对于用户来说,究竟html5是不是编程语言无关紧要。
而且,不能因为现状就保证它会始终如此,毕竟它是在不断发展的,标记语言和编程语言的界限也会越来越模糊。谁说的清楚明天会变成什么样子。
这个问题问得很不严谨,所以你也很难得到一个满意的结论。
什么叫“编程语言”,没有一个清晰的定义。
如果把编程语言定义为“编程过程中用到的计算机语言”,那么可以把HTML5视为一种编程语言。
而如果把编程语言定义为“描述逻辑的计算机语言”,则HTML5几乎不算是。这里说“几乎”是因为CSS3还是有一点点逻辑描述能力的 :-)
HTML5叫做一种代码规范标准更合适
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn