Asemblerowy język wysokiego poziomu

Asemblerowy język wysokiego poziomu to termin w informatyce określający język programowania wysokiego poziomu, posiadający cechy i elementy umożliwiające programowanie bliskie sprzętowi oraz tak implementowany, że istnieje bezpośrednie odwzorowanie instrukcji wysokiego poziomu danego języka na język asemblera (i tym samym język maszynowy).

Poziom języka

Podstawowym językiem programowania każdego komputera jest język maszynowy zrozumiały dla sprzętu, lecz niezrozumiały dla człowieka. Kolejnym krokiem – poziomem – języków stały się więc asemblery, a następnie języki wysokiego poziomu. W tym ostatnich językach programista tworząc kod źródłowy dla rozwiązania określonego zagadnienia, odseparowany jest od konkretnej maszyny i fizycznych (sprzętowych) środków realizacji obliczeń (takich jak np. rejestrów, adresów itp.), dzięki pewnemu abstrakcyjnemu środowisku dostarczanemu przez język programowania wysokiego poziomu.

Pewne języki programowania pozostają jednak na niższym poziomie abstrakcji („bliżej sprzętu”) niż inne. Można przykładowo uszeregować ciąg kilku wybranych języków od tych bliższych sprzętowi do najbardziej niezależnych: asembler, C, Pascal, Visual Basic.

W powyższym przykładzie widać, że np. język C choć jest niewątpliwie językiem wysokiego poziomu, posiada cechy i mechanizmy umożliwiające pisanie niskopoziomowe, tzn. bliskie sprzętowi (stąd zresztą jego zastosowania w programowaniu systemowym).

Istnieje grupa języków wysokiego poziomu, którą można w powyższej hierarchii umieścić pomiędzy asemblerami a językami wysokiego poziomu i uznać za „strefę pośrednią”. Języki te przez literaturę przedmiotu określane są właśnie jako asemblerowe języki wysokiego poziomu, rzadziej jako asemblery strukturalne. Ten drugi termin jest jednak mylący, gdyż część autorów publikacji stosuje takie określenie do rozszerzeń samych asemblerów, tzn. do makroasemblerów w których stosuje się instrukcje strukturalne na zasadzie preprocesora.

Cechy języków tej grupy

Języki należące do tej grupy posiadają następujące, podstawowe cechy:

  • są to języki wysokiego poziomu, a więc ich składnia i implementacja pozwala na programowanie kodu za pomocą odpowiednich instrukcji wysokiego poziomu, bez konieczności stosowania na ogół asemblera,
  • posiadają mechanizmy i cechy umożliwiające odwołania do fizycznych (sprzętowych) elementów systemu komputerowego (rejestrów, konkretnych adresów itp.),
  • istnieje łatwe i jednoznaczne odwzorowanie instrukcji wysokiego poziomu na instrukcje asemblera i języka maszynowego (oraz odwzorowanie w kierunku odwrotnym),
  • posiadają zaimplementowane mechanizmy programowania hybrydowego
    • dany język – asembler
    • dany język – język maszynowy.

Języki programowania

Przynależność danego języka do tej grupy języków jest dość umowna i płynna, kilka języków w literaturze przedmiotu jest jednak dość szeroko zaliczana do tej grupy języków. Są to przede wszystkim:

Zobacz też

Bibliografia