m
WPCleaner v1.29 - Nieprawidłowo zakończone <code> - Link zewnętrzny bez opisu (przy użyciu WP:CHECK)
[wersja przejrzana] | [wersja przejrzana] |
Usunięta treść Dodana treść
Linia 1:
{{dopracować|w artykule opisano skok ''bezwarunkowy'', napisać coś więcej o skoku ''warunkowym'' (odsyłając do [[instrukcja warunkowa|instrukcji warunkowej]])}}
{{spis treści}}
'''Instrukcja skoku''' – [[instrukcja (informatyka)|instrukcja]] w [[język programowania|językach programowania]], która powoduje [[przepływ sterowania|przekazanie sterowania]] w inne miejsce, tzw. ''skok''. Występuje w tak odległych od siebie językach, jak [[Fortran]], [[Algol (język programowania)|Algol]], [[COBOL]], [[SNOBOL]], [[Basic]], [[C (język programowania)|C]]/[[C++]], [[Perl]], [[Pascal (język programowania)|Pascal]], [[PHP]]<ref>Od wersji 5.3 [http://php.net/manual/en/control-structures.goto.php PHP: goto - Manual]</ref> i wielu innych. Miejsce skoku identyfikuje się za pomocą numeru wiersza programu (zwykle w [[język interpretowany|językach interpretowanych]]) bądź [[etykieta (informatyka)|etykiety]] (najczęściej w [[język kompilowany|językach kompilowanych]]).
== Przykład ==
Linia 25:
Obserwacja ta znalazła zastosowanie w konstrukcji [[procesor]]ów i wyrażenia tego w języku [[asembler]]a, gdzie dostępne są te właśnie instrukcje (instrukcje skoku bezwarunkowego <code>JMP</code> i warunkowego <code>Jxx</code> w architekturze [[x86]], gdzie <code>xx</code> symbolizują stan [[flaga (informatyka)|flag]] [[rejestr stanu|rejestru stanu]] zmienianego przez część instrukcji procesora).
Pierwsze języki, przede wszystkim ze względu na nacisk na łatwość konstrukcji [[kompilator]]ów nie odbiegały znacząco zasobem instrukcji od asemblera, np. w pierwszych wersjach [[Fortran]]a jedyną instrukcją warunkową był właśnie skok – nie można było warunkowo przypisać wartości czy wykonać grupy poleceń. Z czasem do popularnych języków (wyrosłych na podstawie Fortrana) zaczęto dodawać inne instrukcje kontroli przepływu: wykonania warunkowego (<code>if (''warunek'') { ''polecenie1'' } else { ''polecenie2'' }</
te same instrukcje z wielopoziomowymi pętlami (<code>X: foreach $a(@A) { foreach $b(@B) { …; if (…) { last X; }} }</code>), [[wyjątek|wyjątki]], [[iterator]]y, [[funkcja wyższego rzędu|funkcje wyższego rzędu]], [[wątek (informatyka)|wątki]] itd., co uczyniło z instrukcji skoku instrukcję na wskroś przestarzałą.
|