Un programme plus complexe et une programmation plus structurée

Ce programme est nettement plus complexe que celui du simple modèle de croissance car le nombre de branchements devient considérable. La liste en HPL est cependant encore publiée à la fin de l’article mais l’organigramme n’y figure pas. Seules figurent les attributions des registres aux variables du problème mathématique. Ce programme comporte en tout 63 lignes en HPL et il utilise une cinquantaine de registres sur les 172 disponibles dans la mémoire de la HP 9820 A. Par ailleurs, le style de programmation s’est quelque peu complexifié puisque de Reffye n’avait recours, dans son premier programme, qu’à des branchements directs de lignes (par l’instruction « GTO » = GO TO n°de ligne) alors que désormais il recourt le plus souvent à des appels de sous-routines (par l’instruction « GSB » = GO SUB « label »). Ces morceaux de programmes (ou routines) caractérisés et baptisés par des labels se terminent par l’instruction RET ( = RETURN ) qui commande un retour à l’endroit du programme qui succède à celui auquel la routine avait été appelée. Le branchement GOTO en revanche est un simple saut définitif. Pour sa part, il n’appelle pas un morceau du programme en tant que morceau fonctionnel autonome, c’est-à-dire qui serait situé à un sous-niveau hiérarchique et dont la machine pourrait s’extraire ensuite pour reprendre le fil principal et hiérarchiquement plus élevé du programme, contrairement à GOSUB. Lorsqu’on a recours à GOTO, on est donc obligé de maîtriser complètement ce qui se produit dans la suite rigoureuse et linéaire des lignes d’instructions et de faire que cette suite soit bien ce qui logiquement doit se produire. Lorsque des types de tâches sont répétés (et non seulement des tâches précises comme dans les simples boucles), cela dévore très vite de la mémoire puisque l’on doit reproduire à chaque fois le morceau de code qui leur correspond. Cela implique qu’il devienne très redondant. En revanche, parce qu’elles peuvent être appelées de différents endroits et surtout parce qu’elles peuvent renvoyer à ces mêmes différents endroits une fois leur sous-traitement effectué, les sous-routines permettent une programmation mieux hiérarchisée et moins redondante, donc plus économique en mémoire et plus souple.

En ce qui le concerne, le nouveau programme de de Reffye, dit « Simulation de la verse du caféier », reprend l’ancien programme de croissance, dit « Traçage de l’architecture », avec les mêmes attributions de registres pour les variables intervenant dans la croissance. Mais il est intéressant de remarquer que ce qui constituait le cœur du premier programme est instrumenté par le second sous la forme de routines : ce sont justement les équations de croissance de la tige et les équations de croissance des rameaux qui ont été reléguées dans deux sous-routines séparées. Donc la boucle principale est celle de la détermination et du traçage sur le plotter HP 9862de la forme de la courbure à chaque pas. Les processus de croissance sont appelés l’un après l’autre, mais chaque fois seulement après que la représentation des éléments architecturaux apparus dans l’étape précédente ait été calculée, avec l’éventuelle verse qu’ils occasionnent. Le calcul de la verse est donc lui aussi traité pas à pas après chaque pousse et avant chaque autre pousse : l’intrication mutuelle des sous-modèles est totale, comme on le voit.