Conseils d'espace
Afin de réduire la taille de votre programme et d'économiser de l'espace, les conseils suivants peuvent être utiles.
- Utilisez plusieurs déclarations par ligne. Il y a une petite surcharge (5 octets) associée à chaque ligne du programme. Deux de ces cinq octets contiennent le numéro de ligne de la ligne en binaire. Cela signifie que quel que soit le nombre de chiffres que vous avez dans votre numéro de ligne (le numéro de ligne minimum est 0, le maximum est 65529), il faut le même nombre d'octets. Mettre autant d'instructions que possible sur une ligne réduira le nombre d'octets utilisés par votre programme.
- Supprimez tous les espaces inutiles de votre programme. Par exemple :
- 10 PRINT X, Y, Z
- 10PRINTX,Y,Z
- Supprimez toutes les déclarations REM. Chaque instruction REM utilise au moins un octet plus le nombre d'octets dans le texte du commentaire. Par exemple, l'instruction 130 REM CECI EST UN COMMENTAIRE utilise 28 octets de mémoire. Dans l'énoncé 140 X=X+Y ; REM MAJ SOMME, le REM utilise 14 octets de mémoire, y compris les deux-points avant le REM.
- Utilisez des variables au lieu de constantes. Supposons que vous utilisiez dix fois la constante 3,14159 dans votre programme. Si vous insérez une déclaration :
- 10 P=3.14159
- Un programme n'a pas besoin de se terminer par un END; ainsi, une instruction END à la fin d'un programme peut être supprimée.
- Réutiliser les mêmes variables. Si vous avez une variable T étant utilisée pour contenir un résultat temporaire dans une partie du programme et que vous avez besoin d'une variable temporaire plus tard dans votre programme, utilisez-la à nouveau. Ou, si vous demandez à l'utilisateur du terminal de répondre OUI ou NON à deux questions différentes à deux moments différents de l'exécution du programme, utilisez la même variable temporaire A$ pour entreposer la réponse.
- Utilisez GOSUB pour exécuter des sections d'instructions de programme effectuant des actions identiques.
- Si vous utilisez la version 8K et que vous n'avez pas besoin des fonctionnalités de la version 8K pour exécuter votre programme, envisagez d'utiliser la version 4K à la place. Cela vous donnera environ 4,7K pour travailler avec une machine 8K, par opposition au 1,6K dont vous disposez sur une machine 8K exécutant la version 8K de BASIC.
- Utilisez les éléments nuls des matrices ; par exemple, A(0), B(0,X).
utilise trois octets de plus que :
Remarque : Tous les espaces entre le numéro de ligne et le premier caractère non blanc sont ignorés.
dans le programme, et utilisez P au lieu de 3,14159 à chaque fois que cela est nécessaire, vous économiserez 40 octets. Cela se traduira également par une amélioration de la vitesse.
Informations d'allocation d'entreposage
Les variables numériques simples (non matricielles) comme V utilisent 6 octets ; 2 pour le nom de la variable et 4 pour la valeur. Les variables de chaîne de caractères non matricielles simples utilisent également 6 octets ; 2 pour le nom de la variable, 2 pour la longueur et 2 pour un pointeur.
Les variables matricielles utilisent un minimum de 12 octets. Deux octets sont utilisés pour le nom de la variable, deux pour la taille de la matrice, deux pour le nombre de dimensions et deux pour chaque dimension ainsi que quatre octets pour chacun des éléments de la matrice.
Les variables de chaîne de caractères utilisent également un octet d'espace de chaîne de caractères pour chaque caractère de la chaîne de caractères. Cela est vrai que la variable de chaîne de caractères soit une simple variable de chaîne de caractères comme A$, ou un élément d'une matrice de chaîne de caractères comme Q1$(5,2).
Lorsqu'une nouvelle fonction est définie par une instruction DEF, 6 octets sont utilisés pour entreposer la définition.
Les mots réservés tels que FOR, GOTO ou NOT, et les noms ou les fonctions intrinsèques telles que COS, INT et STR$ n'occupent qu'un octet de mémoire programme. Tous les autres caractères des programmes utilisent chacun un octet de mémoire de programme.
Lorsqu'un programme est en cours d'exécution, l'espace est dynamiquement alloué sur la pile comme suit :
- Chaque boucle FOR ... NEXT active utilise 16 octets.
- Chaque GOSUB actif (celui n'étant pas encore revenu) utilise 6 octets.
- Chaque parenthèse rencontrée dans une expression utilise 4 octets et chaque résultat temporaire calculé dans une expression utilise 12 octets.