Skip to main content

Co to jest punkt sekwencji?

Punkt sekwencji w programowaniu komputerowym to moment, który występuje podczas wykonywania programu, gdy wartość zmiennej została całkowicie obliczona, bez żadnych zmian w stosunku do poprzednich operacji i żadnych obliczeń w przyszłym wyrażeniu.Istnieje wiele miejsc, w których istnieją punkty sekwencji i mdash;Zdefiniowane przede wszystkim w standardzie języka C;na przykład przed wykonaniem kodu wewnątrz funkcji, na końcu wyrażeń kontrolnych w stwierdzeniach takich jak i if i na końcu jakiegokolwiek pełnego wyrażenia, takiego jak prosty linia kodu c.Niektóre powody zdefiniowania punktu sekwencji jest unikanie sytuacji, które są niejednoznaczne, skutkować niezdefiniowanym zachowaniem lub mogą mylić kompilator i wygenerować kod, który jest nieprzewidywalny.W wielu przypadkach programiści nie martwią się wyraźnie o punkt sekwencji, chociaż w utworzeniu kompilatora koncepcja jest bardzo ważna dla zapewnienia poprawnego wykonywania kodu.

Przykład punktu sekwencji w języku programowania C jest INstwierdzenie a ' a + b;.W tym wyrażeniu półkolis jest punktem sekwencji;Po zakończeniu wyrażenia wartość A zostanie oceniona i nie zostaną na nim żadnych resztkowych obliczeń do momentu rozpoczęcia następnego wyrażenia.Znak równy nie jest punktem sekwencji, ponieważ wartość A może być modyfikowana przez kompilator w dowolnej kolejności w całym wyrażeniu.

Główną zasadą punktu sekwencji jest to, że nie ma dostępu do żadnej zmiennej więcej niż raz między punktami dla dowolnegocel inny niż obliczenie zmiany jej wartości.Naruszenie tej reguły najlepiej wyraża się przy przypisywaniu wartości do tablicy.Jeśli istnieje zmienna A i tablica o nazwie I, to gramatycznie w C, możliwe jest napisanie wyrażenia I [A] ' A ++.Tutaj zmienna jest dostępna więcej niż raz w celu innego niż ocena jej bieżącej wartości;mianowicie, jest używany jako indeks do tablicy I. Oznacza to, że kompilator może zwiększyć a przed użyciem jako indeks lub po jego użyciu, tworząc nieprzewidywalne zachowanie, na które nie można polegać w programie.

Punkt sekwencji. Punkt sekwencjiZasadniczo może być postrzegane jako sposób na zapewnienie, że stwierdzenia mogą i będą konsekwentnie oceniane i wykonywane przez kompilatora.Pozwala to również kompilatorowi zastosować strategie optymalizacji, ponieważ zdefiniowane zachowanie jest przewidywalne.W ramach standardu języka C istnieją trzy główne przypadki punktów sekwencji, a mianowicie, gdy funkcja rozpoczyna się wykonywanie, w punkcie logicznych operatorów i przecinków, a na końcu kompletnego wyrażenia, które kończy się półkolisem, jak większość stwierdzeń C robi.