Pok-12-wyk-Slajd8
Kontrola statyczna – przykład
Niektóre z kontroli przeprowadzanych statycznie są relatywnie proste do zaimplementowania. Na przykładzie przedstawionego programu w Adzie można zademonstrować, jakie zadania ma do wykonania kontroler zależności kontekstowych przy sprawdzaniu powtarzania nazw i przepływu sterowania.
W przykładzie mamy dwie zagnieżdżone pętle - jedna jest nazwana ext , druga - int . Etykiety pętli zostały umieszczone na początku pętli – przed instrukcjami loop oraz powtórzone po instrukcjach end loop kończących pętle. Kontroler zależności kontekstowych sprawdza, czy programista zamknął obie pętle zgodnie ze swoimi intencjami, czy też któreś zakończenie pętli jest w niewłaściwym miejscu (taki błąd bez użycia etykiet, jako błąd logiczny, a nie składniowy mógłby przejść niezauważony).Dla odmiany wystąpienie instrukcji exit (w Adzie jest to „bardziej strukturalne” goto ) musi być sprawdzone pod kątem użycia w konstrukcji, z której można tą instrukcją wyjść (sprawdzenie przepływu sterowania). Dodatkowo, dzięki użyciu etykiet, możemy sprawdzić, czy instrukcje te znajduje się w obrębie zamierzonych przez programistę instancji pętli (a nie dowolnej pętli).