Quando si usa l’espressione “linguaggio di markup” ci si riferisce a un linguaggio che permette di descrivere i dati attraverso una formattazione specifica che utilizza i cosiddetti tag, che non sono altro che dei marcatori.
L’HTML è uno degli esempi più noti di linguaggio di markup: esso consente di descrivere, semplicemente, le pagine per il web attraverso dei tag predefiniti.
Più tecnicamente, un linguaggio di markup può essere definito come un gruppo di regole attraverso le quali vengono descritti i meccanismi di rappresentazione di un testo. Si è soliti distinguere tra i linguaggi di markup di tipo descrittivo e procedurale.
I linguaggi di markup di tipo procedurale specificano quali sono le procedure di trattamento del testo e indicano le istruzioni da eseguire affinché la porzione di testo referenziata possa essere visualizzata.
I linguaggi di markup di tipo descrittivo lasciano che sia il software a scegliere quale rappresentazione debba essere applicata al testo.
L’HTML è un tipo di linguaggio di markup descrittivo, ma lo sono anche l’XML e l’SGML. Come è facile intuire, questi linguaggi si rivelano più pratici e più vantaggiosi, in quanto si focalizzano sui problemi strutturali di leggibilità e, soprattutto, non dipendono in fase di lettura dal programma da cui sono stati originati.
I linguaggi di markup di tipo descrittivo, in sostanza, assicurano che tra la struttura e la visualizzazione vi sia una corretta separazione.
L’HTML è, come detto, uno dei più famosi, e viene impiegato per formattare e per impaginare i documenti ipertestuali (HTML è, infatti, l’acronimo di HyperText Markup Language, che vuol dire, letteralmente, linguaggio a marcatori per ipertesti) disponibili sotto forma di pagine web. A svilupparlo è stato niente meno che il papà del web, cioè Tim Berners-Lee, alla fine degli anni ’80. Questo linguaggio di formattazione descrive le modalità di visualizzazione grafica – quello che viene definito come layout – del contenuto di una pagina web (contenuto che può essere sia in forma testuale che in forma non testuale) tramite dei tag di formattazione.
Attenzione a non confondere un linguaggio di markup con un linguaggio di programmazione, visto che si tratta di due realtà ben diverse. L’HTML non può essere ritenuto un linguaggio di programmazione perché, anche se supporta l’inserimento di oggetti esterni come filmati e immagini, non presuppone alcuna definizione di strutture di controllo, di funzioni, di strutture dati o di variabili in grado di realizzare programmi. Si tratta di un linguaggio di pubblico dominio che deriva dal SGML.
L’SGML (Standard Generalized Markup Language) non è altro che un metalinguaggio che serve a definire i linguaggi che devono essere adottati per stendere i testi che verranno trasmessi con strumenti informatici: i cosiddetti DTD, cioè Document Type Definition, che definiscono la struttura logica che i documenti di un certo genere sono tenuti a rispettare. Lo scopo principale dell’SGML è quello di individuare la cosiddetta marcatura descrittiva, e cioè un linguaggio di marcatura generica che comprende linguaggi specifici atti a individuare le caratteristiche strutturali dei documenti.
Una variante dell’HTML è l’XHTML, cioè l’eXtensible HyperText Markup Language, il linguaggio di marcatura di ipertesti estensibile, che in sostanza abbina i vantaggi offerti dall’HTML con alcune delle caratteristiche più importanti dell’XML. Si basa, tra l’altro, su un impiego più restrittivo, sia dal punto di vista della sintassi che dal punto di vista della validità, dei tag HTML, con i fogli di stile a cascata che impongono la resa grafica.