Obligement - L'Amiga au maximum

Mardi 16 avril 2024 - 16:28  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

Actualité (récente)
Actualité (archive)
Comparatifs
Dossiers
Entrevues
Matériel (tests)
Matériel (bidouilles)
Points de vue
En pratique
Programmation
Reportages
Quizz
Tests de jeux
Tests de logiciels
Tests de compilations
Trucs et astuces
Articles divers

Articles in english


Réseaux sociaux

Suivez-nous sur X




Liste des jeux Amiga

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


Trucs et astuces

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


Glossaire

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


Galeries

Menu des galeries

BD d'Amiga Spécial
Caricatures Dudai
Caricatures Jet d'ail
Diagrammes de Jay Miner
Images insolites
Fin de jeux (de A à E)
Fin de Jeux (de F à O)
Fin de jeux (de P à Z)
Galerie de Mike Dafunk
Logos d'Obligement
Pubs pour matériels
Systèmes d'exploitation
Trombinoscope Alchimie 7
Vidéos


Téléchargement

Documents
Jeux
Logiciels
Magazines
Divers


Liens

Associations
Jeux
Logiciels
Matériel
Magazines et médias
Pages personnelles
Réparateurs
Revendeurs
Scène démo
Sites de téléchargement
Divers


Partenaires

Annuaire Amiga

Amedia Computer

Relec


A Propos

A propos d'Obligement

A Propos


Contact

David Brunet

Courriel

 


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.

HiSoft Basic

É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).

HiSoft Basic

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.


[Retour en haut] / [Retour aux articles]