长久以来,我一直认为使用HTML是在编程,毕竟它有本身的语法。但当我想知道HTML属于计算机语言的哪一类时,我才了解到使用HTML编写的内容并非程序,而是一种数据格式。编程
从HTML的定义上论证: HTML是用于建立网页结构的标记语言。而标记语言诞生之初就是为了促进数据交换和操做而建立的一种文档格式。浏览器
从程序的定义上论证: 程序是用来告诉计算机对数据进行处理的指令集合。尽管网页能够对数据进行处理,但处理的功能是浏览器以及JavaScript提供的,HTML编写的内容是做为一种数据被浏览器和JavaScript进行处理。dom
首先咱们来明确一下什么是计算机语言,根据《计算机科学导论》给出的定义:编程语言
计算机语言是指编写程序时,根据事先定义的规则(语法)而写出的预约语言的集合。设计
因为HTML并不能编写程序,因此HTML并不属于咱们一般所说的计算机语言。那HTML属于哪一类语言呢?ip
根据网上的一些回答,查阅到HTML应该属于DSL(domain-specific language),即领域特定语言。尽管百度百科给出的定义足以让你将HTML归类到DSL,但它并无说明DSL与计算机语言之间的关系,因此我查阅了Martin Fowler的《领域特定语言》,如下是书中对DSL的定义:ci
针对某一特定领域,具备受限表达性的一种计算机程序设计语言。文档
这里说的计算机程序设计语言就是上面提到的计算机语言。计算机语言提供普遍的能力:支持各类数据、控制、以及抽象结构等。而受限的表达性是指只支持特定领域所须要特性的最小集,即便用DSL,没法构建一个完整的系统。程序设计
虽然,两个问题给出的答案看起来是相悖的,但其实都没有错。若是你说的编程是指一个完整的系统,那HTML不是编程语言。若是你说的编程是指系统的某一部分,那HTML就是编程语言。class
上述的总结是我本人的观点,若是有不一样的观点欢迎你们在下方讨论。