Przerwanie () to kolejny mechanizm zmieniający przepływ sterowania do określonego podprogramu, lecz dzieje się to w odpowiedzi na sygnały lub zdarzenia zewnętrzne, a nie na stan samej aplikacji.

Samomodyfikowanie kodu źródłowego może być również użyte do zmiany przepływu sterowania, lecz przeważnie nie wiąże się ono z wykonaniem żadnej konkretnej instrukcji przepływu sterowania (wyjątek to ALTER w COBOLu).

Systemy efektów przez wykorzystywanie kontynuacji pozwalają m.in. na wykonywanie asynchronicznych operacji w synchronicznym kontekście. Są one dodawane do nowoczesnych języków funkcyjnych i eksperymentalnych, takich jak OCaml (od wersji 5) czy Koka.

Na najniższym poziomie języka maszynowego lub asemblera, zmianę przepływu sterowania realizuje się poprzez ingerowanie w licznik programu. W wielu procesorach jedynymi dostępnymi instrukcjami zmiany przepływu są skoki warunkowe i bezwarunkowe. Kompilatory języków wysokopoziomowych muszą zatem przetłumaczyć wszystkie istniejące w nich instrukcje sterujące, wykorzystując wyłącznie ten ograniczony i uproszczony zestaw, nie zniekształcając przy tym zapisanego za ich pomocą programu.

Przypisy

Kategoria:Programowanie komputerów