Récursivité

Une procédure P qui contient un appel à P dans son corps, est appelée procédure récursive. Bien que cette technique soit très puissante et utilisable dans les langages de programmation moderne, elle est interdite dans le langage AGT.

Par conséquent, dans le cas d’AlgoTouch, où les procédures sont en fait des macros, étant donnée une macro M, les cas suivants sont interdits:

  1. appel de M dans un bloc d’instructions de M (récursivité directe)
  2. appel de M dans une macro M2 appelée par M (récursivité croisée)
  3. appel de M dans une macro Mx appelée par une série d’appels de macros depuis la macro M. M appelle M1, qui appelle M2, … qui appelle Mx.

Exemple d’appel direct:

Define M
Do
  ...
  M ;
  ...
// ...
End

Exemple d’appel croisé:

Define M
Do
  ...
  M2 ;
  ...
// ...
End
Define M2
Do
  ...
  M ;
  ...
// ...
End