Przepływ sterowania: Różnice pomiędzy wersjami

[wersja nieprzejrzana][wersja nieprzejrzana]
Usunięta treść Dodana treść
utworzenie
 
mNie podano opisu zmian
Linia 1:
W [[Informatykainformatyka|informatyce]] '''przepływ sterowania''' oznacza kolejność, w jakiej pojedyncze wyrażenia lub instrukcje są wykonywane w paradygmacie [[Programowanieprogramowanie imperatywne|programowania imperatywnego]]. W [[Językjęzyk programowania|języku programowania]] instrukcja przepływu sterowania może zmienić przepływ sterowania tak, aby wyrażenia wykonywane były w innej kolejności, niż ta, w jakiej są wypisane w [[Kodkod źródłowy|kodzie źródłowym]]. Pojęcie przepływu danych jest prawie zawsze ograniczane do pojedynczego [[Wątekwątek|wątku]] aplikacji, ponieważ dotyczy ono wykonywania instrukcji po jednej naraz.
 
Rodzaje instrukcji przepływu sterowania różnią się w zależności od języka, ale mimo to mogą być pogrupowane ze względu na efekt, jaki powodują:
Linia 10:
[[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 [[COBOL]]u).
 
Na najniższym poziomie języka maszynowego lub [[Assembler|assembleraasembler]]a, zmianę przepływu sterowania realizuje się poprzez ingerowanie w [[licznik programu]]. W wielu [[Procesor|procesorachprocesor]]ach 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, wykorzystując wyłącznie ten ograniczony i uproszczony zestaw, nie zniekształcając przy tym zapisanego za ich pomocą algorytmu.
 
[[Kategoria:Informatyka]]