Co różni język programowania od języka znaczników?

Pewnego razu grupa uczniów zwróciła nauczycielowi uwagę, że wplatanie w ich przedmiot „programowania” nie jest dobrym pomysłem, bowiem nie czują się oni do tego przygotowani (na wcześniejszym etapie kształcenia). Mianem „programowania” uczniowie określili wykorzystanie HTML i CSS do utworzenia prostych wizualizacji danych. Zarzut ten był jednak chybiony. HTML nie jest językiem programowania. Czym jest zatem HTML?

Języki programowania

HTML (HyperText Markup Language) to hipertekstowy język znaczników. Jest on powszechnie wykorzystywany do tworzenia dokumentów hipertekstowych tj. takich, które są ze sobą powiązane hiperłączami (zob. wstęp do encyklopedii linków). Przy pomocy HTML tworzona jest struktura dokumentu złożona z elementów (liniowych, blokowych). Dokument hipertekstowy, oprócz tekstu, zawiera także znaczniki, które ten tekst opisują (oznaczają), np. określają rolę, znaczenie lub formatowanie danego tekstu w dokumencie.

Przykład SGML

Standard Generalized Markup Language (SGML) to standardowy, uogólniony język znaczników służący do ujednolicania struktury i formatu różnego typu danych. SGML w odróżnieniu od języków znaczników przeznaczonych do konkretnych zastosowań, takich jak HTML, nie jest zbiorem określonych znaczników i reguł ich użytkowania, lecz ogólnym, nadrzędnym językiem służącym do definiowania dowolnych znaczników i ustalania zasad ich poprawnego użytkowania. Język SGML jest wykorzystywany przeważnie do dwóch celów: (1) definiowania znaczników przeznaczonych do konkretnych zastosowań; przykładem jest język HTML oraz (2) ujednolicania zasad pisania i przekazywania dokumentów tekstowych w obrębie dużych organizacji [Staszelis i Wypych 1996].

Definicja języka, jaki można stworzyć dzięki SGML, jest sformalizowana w postaci tzw. DTD (Document Type Definition). DTD jest szeregiem formalnie zapisanych definicji i deklaracji, które określają składnię i wyrażenia danego języka, tj. zestaw znaczników i reguły ich użycia.

SGML pozwala stworzyć języki precyzyjnie opisujące różne typy dokumentów. Przykładowo pozwala określić, jakie elementy (z ogółu możliwych) muszą wystąpić w dokumencie, a które są jedynie dopuszczalne. Pozwala także sprecyzować ile razy dany element może wystąpić (jedno- lub wielokrotnie). Tagi mogą być sparametryzowane i posiadać atrybuty. Te z kolei przyjmują odpowiednie wartości. DTD zawiera elementy struktury dokumentu, ale nie przesądza o tym, jak będą one prezentowane na ekranie/wyświetlaczu i czy w ogóle będą zaprezentowane. Decyduje o tym oprogramowanie, np. przeglądarka internetowa, która potrafi zinterpretować tagi [Staszelis i Wypych 1996].

hexagon

Rozwój języków programowania przebiegał od asemblerów do języków strukturalnych (np. C lub Pascal) i obiektowych. Języki opisujące dokumenty zmieniały się od języków komend kierowanych bezpośrednio do urządzeń wykonawczych (np. „bold”, „italic”), do wyrażeń opisowych, typu „tytuł”, „autor”. W tym miejscu warto zauważyć, że tekst (dokument elektroniczny) można uznać za swoisty program, który jest wykonywany przez „procesor”, np. przeglądarkę.

HTML to aplikacja SGML służąca do tworzenia stron internetowych (dokumentów hipertekstowych). Język ten jest stale rozwijany. „Markup” oznacza „znacznik” lub „oznakowanie”. Oznakowanie jest rezultatem „znakowania” (w żargonie – tagowania). Polega ono na wstawieniu do dokumentu odpowiednich, jednoznacznych i wcześniej ustalonych, znormalizowanych znaczników – tagów. Tag to znacznik, element schematu oznakowania. Znacznik wyróżnia pewien element strukturalny tekstu. Tagi zapisywane są w nawiasach ostrokątnych. Wyróżnia się tag otwierający <nazwa> oraz zamykający </nazwa> (<nazwa> otamowany element </nazwa>). Istnieją także tagi, które „zamykają się same w sobie”, np. <br/>.

Tzw. parser to program, który porównuje otagowanie (oznakowanie) zawarte w dokumencie np. hipertekstowym z definicją języka sformułowaną w postaci DTD. Parser sprawdza także poprawność gramatyczną samego DTD [Staszelis i Wypych 1996].

HTML nie jest językiem programowania

Języki programowania umożliwiają tworzenie programów komputerowych, których zadaniem jest przetwarzanie danych, wykonywanie obliczeń i algorytmów oraz kontrolowanie (obsługa) zewnętrznych urządzeń. Języki programowania różnią się m.in. składnią, semantyką oraz bibliotekami. Języki, w których nie da się realizować obliczeń, w tym języki znaczników, nie są uznawane za języki programowania. HTML jest zatem językiem znaczników, podczas gdy np. powszechnie wykorzystywane przy tworzeniu witryn internetowych — PHP i JavaScript są językami programowania.

Więcej o językach programowania:
Domka P., Łokińska M. (2010). Programowanie strukturalne i obiektowe. Warszawa: Wydawnictwa Szkolne i Pedagogiczne.
Staszelis, J., Wypych, W. (1996). Po tagach poznacie… PCKurier, 20, 61-66.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *