Pok-13-wyk-Slajd4
Języki pośrednie - wprowadzenie(1)
Istnieje wiele typów języków pośrednich. Wynika to z faktu, że nie da się stworzyć całkowicie uniwersalnego, a także efektywnego języka pośredniego, który jednocześnie odzwierciedlałby różnorodne mechanizmy języków źródłowych (od C do Lispa) i maszyn docelowych (liczbę rejestrów, potoków, poziomów pamięci notatnikowej, współbieżność ...)
Istniejące języki pośrednie ze względu na poziom abstrakcji można podzielić na:
- zorientowane na konkretną maszynę docelową
- zorientowane na język źródłowy (P-code dla Pascala, DIANA dla Ady, bajtkod maszyny wirtualnej Javy)
- uniwersalne (Janus, CIL)
Języki pośrednie można także klasyfikować według paradygmatu programowania na:
- imperatywne (P-code)
- deskryptywne (DIANA)
Przykładem imperatywnego, uniwersalnego języka programowania jest kod trójadresowy. Nazwa trójadresowy pochodzi od tego, że w typowej instrukcji o postaci: „x := y op z ” znajdują się trzy adresy – dwa dla argumentów i jeden dla wyniku. Kod trójadresowy można także interpretować jako liniową reprezentację drzewa składniowego, w którym wierzchołki wewnętrzne mają jawnie przypisane nazwy.