Suivez-nous sur X

|
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z,
ALL
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
A propos d'Obligement
|
|
David Brunet
|
|
|
|
Test de HiSoft Basic 1.0
(Article écrit par Cécil B. de Mil et extrait d'Amiga News Tech - avril 1989)
|
|
L'un des tout premiers gestes d'un possesseur d'Amiga est d'insérer la disquette Extras dans le lecteur.
Après tout, elle est fournie avec le système et son nom laisse présager un contenu passionnant.
Si l'utilité de certains fichiers n'est pas toujours très claire, on comprend vite qu'en cliquant sur
l'icône de l'AmigaBasic, on se trouve plongé dans le monde de la programmation.
L'apprentissage de celle-ci est un alibi souvent avancé lors de l'achat d'un ordinateur, surtout lorsqu'il
est acheté dans un cadre familial. Cependant, les premières heures écoulées, la population se scinde en
trois parties : le premier groupe est composé de personnes qui, pour des raisons diverses, abandonnent
la programmation, le deuxième groupe de personnes découvre l'AmigaBasic et s'en trouvent satisfaits
(souvent, leur premier langage est le BASIC) et les membres du troisième s'irritent des contraintes
et des imperfections de l'AmigaBasic.
Le passage au niveau supérieur
Le BASIC HiSoft Basic intéressera principalement les participants des deux derniers groupes, même
si on peut penser qu'il pourrait réconcilier les plus timides avec l'informatique. Avant de le décrire,
il me faut expliquer brièvement ce à quoi on peut le comparer. Il ne faut pas chercher à démolir
l'AmigaBasic, car ce n'est pas la base du langage qui doit être mis en cause, mais plutôt son implémentation.
Après tout, il a de très vastes capacités dans l'interface avec le système (gestion des menus, de la
souris, fonctions graphiques), il dispose de structures permettant une écriture propre et une mise au
point rapide, ses instructions appartenant à la norme Microsoft.
On peut lui adresser trois reproches : l'absence de fiabilité (certaines opérations ont pour conséquence
une séance forcée de méditation transcendantale), une lenteur pénalisante et l'absence de certaines
fonctions (si on a pris des habitudes avec un autre langage). Il importe de distinguer les produits
"Basic" en fonction de leur caractère innovateur par rapport à l'AmigaBasic. En effet, il y a deux
options : soit vous cherchez à rendre l'AmigaBasic plus rapide et plus agréable à utiliser (c'est
l'optique AC-Basic/HiSoft Basic), soit vous cherchez à le remplacer par un BASIC différent (optique
de True Basic et de GFA Basic).
L'AC-Basic est un compilateur destiné à transformer les programmes interprétés de l'AmigaBasic
en programme à part entière. Moyennement efficace, il apporte fiabilité et rapidité en étant compatible,
mais sans proposer des fonctionnalités supplémentaires. Le langage True Basic est un BASIC
efficace, qui a la particularité d'exister sur d'autres machines et d'offrir, en conséquence, une
bibliothèque de fonctions identiques pour chaque système, au détriment d'un vocabulaire qui
lui est propre, il n'exploite pas en conséquence toutes les capacités de l'Amiga, mais peut être le
choix pour un portage d'une machine à l'autre. Le GFA Basic est un langage à part, car c'est un
dialecte de BASIC (avec sa syntaxe et son vocabulaire), totalement structuré, extrêmement étendu et
hyper-rapide. Les performances sont époustouflantes, mais requièrent une plus grande finesse dans
la programmation. L'interface avec le système est encore un peu bancal, car elle est trop inspirée
encore du programme Atari.
Un clone amélioré d'AmigaBasic
Le produit de HiSoft se range dans la catégorie des clones de l'AmigaBasic, il se veut résolument
compatible avec son aîné, mais à la différence de l'AC-Basic, il a été conçu pour en prendre la place.
Il s'agit en réalité d'un environnement complet, car à côté du paquetage BASIC, qui contient un
éditeur avec le compilateur intégré et le compilateur sous forme indépendante, HiSoft propose aussi
un kit pour le développement en langage assembleur (Devpac 2) qui fournit un débogueur (Monam 2),
utilisable sur les programmes BASIC compilés.
Évidemment, on peut s'interroger sur l'intérêt d'acheter deux logiciels (il est vrai que le débogueur
n'est absolument pas indispensable), cependant il est fort agréable de disposer d'un environnement similaire
pour apprendre ou développer dans deux langages vedettes sur Amiga (le BASIC et l'assembleur).
Les différences
Examinons tout d'abord les différences au niveau du langage, qui peuvent gêner la transition entre
l'interpréteur AmigaBasic et le compilateur HiSoft. Comme, le compilateur ne peut travailler que sur des
fichiers ASCII sans caractères de contrôle, il faut donc décompacter les fichiers issus de l'AmigaBasic
en les sauvant avec l'option ASCII. En contrepartie, l'utilisateur est libre de prendre l'éditeur de
son choix (même si l'environnement intégré éditeur-compilateur est très attirant).
Les instructions concernant la gestion de l'interpréteur sont le plus souvent absentes, car elles n'ont
pas de sens dans un programme compilé ; ainsi LOAD, SAVE, LIST, CONT, DELETE ne sont pas reconnues.
L'oubli des instructions COMMON (pour le partage des données entre programmes chaînés) et RESUME NEXT
(pour la gestion des erreurs) est légèrement ennuyeux, sans plus.
Des instructions ont été modifiées ou ajoutées. En voici la liste réalisée par votre serviteur :
- BIN$ : fournit la représentation en numérotation binaire d'un entier.
- BLOAD : charge un fichier binaire.
- BSAVE : sauve une zone mémoire dans un fichier binaire.
- CALL LOC : complémente la fonction CALL pour l'appel de sous-programmes.
- CLEAR : remet les variables à zéro, n'a pas tout à fait le même sens, puisqu'elle ne peut redéfinir
les espaces mémoire disponibles.
- COMMAN D$ : fournit les arguments de la ligne de commande qui a lancé le programme.
- COMMON SHARED : déclare que les variables et tableaux spécifiés sont accessibles par les sous-programmes.
- CONST : associe des noms de variables à des valeurs entières.
- CVFFP/MKFFP$ : convertit les réels simple précision en chaîne de caractères et vice-versa pour le stockage
dans des fichiers à accès direct.
- DECR/INCR : incrémente et décrémente une variable de un.
- DEF FN : définit une fonction (sur plusieurs lignes si nécessaires avec l'accès aux variables globales).
- DO..LOOP : sorte de super structure.
- WHILE/UNTIL..WEND : permet de tester au début ou à la fin de la boucle, ou d'en sortir très proprement par EXIT DO.
- EXIT ?? : permet de sortir de n'importe quelle définition, bloc ou instruction structurée, par exemple EXIT DO, EXIT
FUNCTION, EXIT IF, EXIT FOR, EXIT SELEC.
- FEXISTS : teste l'existence d'un fichier.
- FILL : opère un remplissage d'une zone par une couleur.
- LCASE$/UCASE$ : convertit une chaîne de caractères en minuscules ou en majuscules.
- LOCAL : définit une variable comme automatique dans un sous-programme, à chaque appel récursif
une nouvelle variable est créée.
- LOG10/LOG2 : complètent la fonction LOG en donnant les logarithmes en base 10 et en base 2.
- MDIR/RMDIR : crée et supprime un répertoire depuis un programme.
- PCOPY : envoie le contenu de l'écran sur l'imprimante sous la forme d'une recopie du contenu graphique.
- REDIM : redimensionne un tableau.
- REPEAT..END : structure de boucle extrêmement générale sans condition mais dotée d'une issue par EXIT.
- RESET : constitue un équivalent de CLOSE pour les fichiers.
- SELECT..CASE..END SELECT : structure de test pour une variable.
- STATIC : permet de spécifier si une variable persiste entre les appels, ou si un sous-programme n'est pas récursif.
- SYSTAB : retourne l'adresse d'un tableau contenant des pointeurs sur des données systèmes, à manipuler avec précaution !
- VARPTRS : fournit l'adresse du sous-programme, à utiliser avec CALLS.
- WINDOWS : permet la création de fenêtres avec beaucoup plus de paramètres que dans l'AmigaBasic.
En résumé, le HiSoft Basic dispose d'instructions structurées, plus nombreuses et plus cohérentes (avec
la possibilité de sortir par un EXIT dans tous les cas). Les plus agréables étant, à mon avis, le SELECT
CASE qui remplace avantageusement des quantités de IF.. THEN.. ELSE et le DEF FN multi-lignes, qui sont
une autre sorte de sous-programmes. Il dispose aussi de quelques fonctions pour l'interface avec les programmes
en langage machine, puisqu'il simplifie le chargement et l'appel des sous-programmes écrits dans ce langage.
Il offre enfin une plus grande liberté de plusieurs manières et dans celle des sous-programmes qui peuvent être
récursifs (s'appeler eux-mêmes).
En règle générale, les fonctions acceptent exactement les mêmes paramètres, à l'exception notable de CALL/CALLS
pour l'appel de sous-programmes en langage machine. L'HiSoft Basic diffère tout spécialement dans sa gestion
des nombres réels en simple précision pour lesquels il utilise un format moins précis, mais beaucoup plus rapide
(il utilise le format des Fas Floating Point de Motorola au lieu du format IEEE). De cette différence
pourraient découler des différences subtiles entre les versions interprétées et compilées, mais je n'ai pu le
mettre en évidence dans des programmes courants.
Il ressort de cette étude approfondie, qu'il est aisé d'écrire des programmes BASIC qui tourneront à la fois
sous l'interpréteur et sous forme compilée. Cependant, l'usage des fonctions nouvelles apportées par le HiSoft
Basic, est tout à fait compréhensible s'il concerne l'interface avec des routines en langage machine, ou des
structures de contrôle plus évoluées.
L'environnement intégré
Un des atouts de ce produit est l'environnement intégré, dans lequel on trouve un éditeur de texte et un compilateur,
dont les nombreuses options sont sélectionnables dans un menu. L'éditeur, rapide, est limité : il reconnaît
à peine la souris pour positionner le curseur, il fait appel exclusivement au clavier pour les manipulations de
blocs de texte, il n'a pas assez de fonctionnalités dans les menus. Cependant, on arrive à s'accomoder de ses
différences, car il y a de nombreux raccourcis de menus au clavier et les fenêtres de requête sont superbes
(ils proviennent de la bibliothèque de routines ARP, dont le but avoué est de remplacer AmigaDOS).
Le compilateur comprend un nombre impressionnant d'options, mais dans la réalité, on utilisera toujours les mêmes.
Il offre, entre autres, la possibilité d'inclure, au moment de la compilation, un fichier à l'intérieur du
programme (très utile si vous avez déjà mis au point un ensemble de routines), ou celle de générer des programmes,
soit indépendants, soit nécessitant la bibliothèque du HiSoft Basic pour fonctionner (dans le premier cas, vous
êtes libres de distribuer votre chef-d'oeuvre). Il est même possible de produire un code totalement indépendant,
ou des modules, qu'une édition de liens ultérieurs, permettra de lier à des programmes en C ou en assembleur.
Il propose notamment de nombreuses vérifications de la correction des opérations, des accès aux tableaux, un
débordement de la pile, le débordement des variables, ou l'ajout de numéros de lignes et de symboles pour
faciliter le débogage.
En raison de la vitesse du compilateur, on dispose aussi d'un pseudo-interpréteur, car il suffit de compiler
en mémoire pour exécuter le programme. Les programmes qui utilisent la bibliothèque partagée de HiSoft
permettent d'économiser la mémoire et puisque cette bibliothèque est présente dans le compilateur, il est
possible de conserver le compilateur, l'éditeur, l'éditeur et la source lors de l'exécution d'un programme
(ce n'est pas le cas avec le compilateur AC-Basic, plus gourmand).
L'interface avec le système fait appel au même mécanisme de l'AmigaBasic, on déclare au préalable les bibliothèques
et fonctions systèmes utilisées, pour pouvoir effectuer des CALL. En conséquence, le passage des paramètres
est toujours aussi peu pratique, mais on se débrouille (on est loin de la pléthore de fonctions du GFA Basic).
Le manuel en anglais, de près de 350 pages, est exemplaire, car il décrit le produit, il donne des conseils,
il commente un exemple complet et raffiné (les tours de Hanoï), il fournit un descriptif exhaustif et alphabétique
de toutes les fonctions et contient, pour le programmeur chevronné, des annexes fort intéressantes sur le portage
des programmes et l'interfaçage avec l'assembleur. Il est, de plus, livré avec le livre "AmigaBasic Inside and Out",
la version anglaise de l'excellent "Grand Livre de l'AmigaBasic" des éditions Micro-Application.
Nom : HiSoft Basic 1.0.
Éditeur : HiSoft.
Genre : programmation BASIC.
Date : 1989.
Configuration minimale : Amiga OCS, 68000, 512 ko de mémoire.
Licence : commercial.
Prix : 1100 FF environ.
|
|