A markup language is specification language that annotates content through the insertion of marks into the content itself. Markup languages differ from programming languages in that they treat data, rather than commands or declarations, as the primary element in the language.
Markup languages were initially developed for text document formatting systems, though they are not limited to text. In fact, the term markup was taken directly from the jargon of the publishing business, where editors and typographers would “mark up” draft documents to indicate corrections or printing effects. Markup languages are generally quite declarative and have little, if any, computational semantics. The marks inserted into the content are often called “tags” because that term is used by XML.