HTML:披着語言外衣的數據格式

長久以來,我一直認爲使用HTML是在編程,畢竟它有本身的語法。但當我想知道HTML屬於計算機語言的哪一類時,我才瞭解到使用HTML編寫的內容並非程序,而是一種數據格式。編程


爲何使用HTML不是在編程?

  • 從HTML的定義上論證: HTML是用於建立網頁結構的標記語言。而標記語言誕生之初就是爲了促進數據交換和操做而建立的一種文檔格式。瀏覽器

  • 從程序的定義上論證程序是用來告訴計算機對數據進行處理的指令集合。儘管網頁能夠對數據進行處理,但處理的功能是瀏覽器以及JavaScript提供的,HTML編寫的內容是做爲一種數據被瀏覽器和JavaScript進行處理。dom


HTML屬於計算機語言的哪一類?

首先咱們來明確一下什麼是計算機語言,根據《計算機科學導論》給出的定義:編程語言

計算機語言是指編寫程序時,根據事先定義的規則(語法)而寫出的預約語言的集合。設計

因爲HTML並不能編寫程序,因此HTML並不屬於咱們一般所說的計算機語言。那HTML屬於哪一類語言呢?ip

根據網上的一些回答,查閱到HTML應該屬於DSL(domain-specific language),即領域特定語言。儘管百度百科給出的定義足以讓你將HTML歸類到DSL,但它並無說明DSL與計算機語言之間的關係,因此我查閱了Martin Fowler的《領域特定語言》,如下是書中對DSL的定義:ci

針對某一特定領域,具備受限表達性的一種計算機程序設計語言。文檔

這裏說的計算機程序設計語言就是上面提到的計算機語言。計算機語言提供普遍的能力:支持各類數據、控制、以及抽象結構等。而受限的表達性是指只支持特定領域所須要特性的最小集,即便用DSL,沒法構建一個完整的系統。程序設計


雖然,兩個問題給出的答案看起來是相悖的,但其實都沒有錯。若是你說的編程是指一個完整的系統,那HTML不是編程語言。若是你說的編程是指系統的某一部分,那HTML就是編程語言。class

上述的總結是我本人的觀點,若是有不一樣的觀點歡迎你們在下方討論。

相關文章
相關標籤/搜索