Pok-12-wyk-Slajd9

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Kontrola dynamiczna

Kontrola dynamiczna


Nie wszystkie kontrole zgodności typów mogą być wykonane statycznie. Niekiedy nawet zastosowanie analizy przepływu sterowania i analizy przepływu danych nie pozwala uniknąć konieczności przeprowadzania dynamicznej kontroli zgodności typów (o ile jest ona w danym języku źródłowym przewidziana).

W przedstawionym przykładzie w języku Ada, jeżeli użytkownik poda z wejścia liczbę nie mieszczącą się w zadanym zakresie, dynamicznie (w trakcie wykonywania programu) przeprowadzana kontrola zgodności wczytanych danych z zadeklarowanym zakresem typu okrojonego zgłosi wyjątek przekroczenia zakresu typu. Jeżeli jednak kod programu przetwarzałby znak po znaku i jawnie analizował poprawność danych, kompilator mógłby - na postawie analizy przepływu sterowania i danych - wyeliminować dynamiczną kontrolę zgodności typów.

Wykonywanie kontroli dynamicznej uzyskiwane jest za pomocą dodatkowego (zwykle opcjonalnego – zależnego od odpowiednich opcji kompilatora) kodu wplatanego w program wynikowy. Nieuniknione jest więc pogorszenie efektywności (wzrost rozmiaru i spowolnienie) kodu wynikowego. Czasami stosuje się więc takie podejście, w którym w trakcie uruchamiania i testowania kontrola dynamiczna jest włączana, w wersji finalnej - wyłączana.


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