Skip to main content

O que é um ponto de sequência?

Um ponto de sequência na programação de computadores é um momento que ocorre durante a execução do programa, quando o valor de uma variável foi completamente calculado, sem alterações pendentes de operações anteriores e sem cálculos em uma expressão futura ainda sendo executada. Há vários locais em que existem pontos de sequência - definidos principalmente no padrão da linguagem C - como antes da execução do código dentro de uma função, no final das expressões de controle em instruções como "for" e "if" e no final de qualquer expressão completa, como uma simples linha de código C. Algumas razões para definir um ponto de sequência são evitar situações ambíguas, resultar em comportamento indefinido ou confundir o compilador e gerar código imprevisível. Em muitos casos, os programadores não se preocupam explicitamente com um ponto de sequência, embora, na criação de um compilador, o conceito seja muito importante para garantir que o código seja executado corretamente.

Um exemplo de um ponto de sequência na linguagem de programação C está na instrução A = A + B ;. Nesta expressão, o ponto e vírgula é o ponto de sequência; quando a expressão estiver concluída, o valor de A será avaliado e nenhum cálculo residual será realizado até que a próxima expressão comece. O sinal de igual não é um ponto de sequência, porque o valor de A pode ser modificado pelo compilador em qualquer ordem em toda a expressão.

A regra principal de um ponto de sequência é que nenhuma variável será acessada mais de uma vez entre os pontos para qualquer finalidade que não seja calcular uma alteração em seu valor. Uma violação desta regra é melhor expressa ao atribuir um valor a uma matriz. Se houver uma variável A e uma matriz chamada I, gramaticalmente em C, é possível escrever a expressão I [A] = A ++. Aqui, a variável é acessada mais de uma vez para uma finalidade diferente de avaliar seu valor atual; ou seja, é usado como um índice na matriz I. Isso significa que o compilador pode incrementar A antes de ser usado como um índice ou depois de ser usado, criando um comportamento imprevisível que não pode ser invocado no programa.

Um ponto de sequência basicamente pode ser visto como uma maneira de garantir que as instruções possam e serão consistentemente avaliadas e executadas por um compilador. Isso também permite que um compilador use estratégias de otimização, porque o comportamento definido é previsível. No padrão da linguagem C, há três instâncias principais de pontos de sequência, a saber, quando uma função começa a execução, no ponto de operadores lógicos e vírgulas e no final de uma expressão completa que termina com ponto e vírgula, como a maioria das instruções C .