Pok-12-wyk-Slajd3

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Czym są zależności kontekstowe ?

Czym są zależności kontekstowe ?


Kontrola zależności kontekstowych polega na sprawdzeniu zgodności programu z regułami składniowymi i semantycznymi języka źródłowego.

Narzuca się jednak dość oczywiste pytanie - dlaczego niektóre reguły składniowe są sprawdzane dopiero teraz, a nie w trakcie wykonywania analizy składniowej ?

Odpowiedź jest ukryta w samej nazwie zależności kontekstowych. Rzeczywiście - zależności kontekstowe można sprawdzić stosując odpowiednią gramatykę kontekstową zamiast bezkontekstowej. Takie rozwiązanie jest jednak bardzo nieefektywne.

Gramatyka kontekstowa będzie stosunkowo skomplikowana, a analizator przetwarzający wejście zgodnie z jej regułami - bardzo powolny. Dlatego zazwyczaj stosuje się takie podejście, w którym definiujemy język za pomocą gramatyki bezkontekstowej (tak naprawdę opisującej szerszy język niż zadany), a następnie za pomocą akcji semantycznych dokonujemy sprawdzenia czy program jest zgodny z regułami składniowymi i semantycznymi języka źródłowego (czyli analizy zależności kontekstowych).

Analiza zależności kontekstowych jest wykonywana:

  • statycznie - w trakcie kompilacji programu źródłowego
  • dynamicznie - w trakcie wykonywania programu wynikowego

Proporcje liczby czynności wykonywanych w poszczególnych etapach są zależne od języka źródłowego, kompilatora i użytych opcji kompilacji.


<< Poprzedni slajd | Spis treści | Następny slajd >>