Rótulos, identificados pelo sinal @ (arroba), definem endereços do plano de voo que podem ser acessados pela instrução executa ou mediante resultado dos testes condicionais seigual, semaior e semenor.
Todo rótulo é nomeado e seguido de dois pontos, indicando o início das instruções acessíveis a partir daquele endereço. Não deve haver dois rótulos com mesmo nome e não se deve utilizar acentos, cedilhas e outros caracteres especiais na nomeação. As posições dos rótulos no plano de voo devem anteceder os pontos em que serão acessados no código.
Por exemplo, @quadrado e @teste são rótulos nomeados adequadamente.
Testes condicionais realizados pelas instruções seigual, semaior e semenor comparam o primeiro argumento fornecido com o número no topo da pilha e desviam o fluxo de execução do plano de voo para o rótulo informado no segundo argumento. Observe o exemplo:
Exemplo
Ver online
Importar
# rótulo liga @incrementa: insere: 1 soma move semenor 5:@incrementa gira: 90 desliga
O rótulo @incrementa identifica o endereço do plano de voo em que se soma o número 1 e se move o foguete. A instrução semenor 5:@incrementa faz com que o computador do foguete "salte" daquela posição para o endereço identificado pelo rótulo. Assim que o valor no topo da pilha for igual a 5, o computador seguirá o fluxo normal, executando as instruções gira: 90 e desliga.
Há aplicações especiais para os rótulos, denominados procedimentos. Estes são abstrações criadas pelo usuário combinando instruções primitivas da linguagem, com o objetivo de reutilizá-las ao longo do plano de voo.
Todo procedimento é identificado e nomeado como rótulos, porém seu término é identificado pela instrução volta.
Exemplo
Ver online
Importar
# procedimento @movegira: $angulo move gira: $angulo volta liga repete: 3 # executa desvio executa @movegira: 90 fim desliga
A instrução executa @movegira desviará o fluxo de execução do plano de voo para o endereço identificado pelo rótulo, executará as instruções seguintes até encontrar a instrução volta, de onde retornará para o fluxo normal do plano.
O argumento $angulo de @movegira disponibiliza o valor atribuído àquela variável no escopo do procedimento. O valor 90, atribuído na mesma linha da instrução executa, é armazenado por $angulo e recuperado dentro do procedimento para utilização nos argumentos de instruções como gira, velocidade e repete.
Procedimentos podem reduzir o comprimento do plano de voo e uso de memória do computador do foguete, especialmente quando conseguem resolver trajetos semelhantes e são aplicados várias vezes.
A utilização de um ou mais argumentos aumenta o potencial de abstração dos procedimentos, na medida em que permite a aplicação do mesmo conjunto de instruções em classes de problemas semelhantes.