Obligement - L'Amiga au maximum

Vendredi 21 septembre 2018 - 17:43  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

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

 · Articles in english
 · Articles en d'autres langues


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Logiciels
 · Jeux
 · Scène démo
 · Divers


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


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


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


Contact

David Brunet

Courriel

 


Test de Draco 1.3
(Article écrit par Cédric Beust et extrait d'A-News (Amiga News) - juillet 1990)


Le Draco nouveau est arrivé

Je vous parlais lors de mon introduction à Draco de la sortie incessante de Draco 1.3. J'ai reçu de l'auteur il y a quelques semaines la dernière version en date et en voici la description.

Changements

Pas de bouleversements spectaculaires dans cette nouvelle mouture. Le compilateur est de quelques ko plus gros que son prédécesseur et implémente une liste de petites caractéristiques demandées par ses utilisateurs. En voici la liste :
  • "return" ajouté, comme en C.

  • "fallthrough" ajouté dans les "cases", c'est-à-dire que si cette instruction figure dans un des cas, l'exécution se poursuivra dans le cas suivant (c'est la même chose qu'omettre un "break" en C).

  • Davantage d'optimisations - les variables globales peuvent être initialisées statiquement. Par exemple :

    [3] int table := (1, 2, 3);

    Ceci peut se généraliser à des structures qui peuvent contenir des pointeurs sur elle-même.

  • Possibilité de déclarer des variables "extern" et "_chip" (placées dans la mémoire Chip, utile pour initialiser des graphiques ou des données de sons).

  • Possibilité d'initialiser une variable avec le contenu d'un fichier (tellement simple et tellement pratique). Par exemple :

    [100] char fichier := read "nom" <offset>
Voilà en gros les changements apportés.

Programmes annexes

Comme d'habitude, Draco ne vient pas tout seul. En prime, Chris Gray nous fait cadeau de quelques gourmandises sur sa disquette, toutes écrites en Draco, naturellement :

dis : dernière version de son désassembleur maintenant bien connu.

fdcompile : utilitaire très pratique pour ajouter des nouvelles bibliothèques dans Draco. Je vous rappelle brièvement que chaque bibliothèque a son propre "OpenLibrary" (par exemple OpenGraphicsLibrary) et son fichier associé (par exemple graphics.lib) dans le répertoire "drlib:". Pour ajouter une bibliothèque, il fallait écrire à la main toutes les interfaces de la bibliothèque concernée afin de ne pas avoir de références inconnues lors de la reliure. C'est ce fait automatiquement fdcompile.

Celui-ci prend en entrée un ".fd" (en principe délivré avec toute bibliothèque et qui contient les noms des fonctions, leur offset et les registres à utiliser lors de leur appel) et produit automatiquement un ".lib" utilisable directement par Draco (en fait, il est capable de générer davantage de chose). L'usage de fdcompile peut se généraliser pour d'autres langages étant donné que celui-ci peut produire un code source assembleur.

Empire : la dernière version, que Chris Gray ne pouvait pas diffuser avant d'avoir sorti la dernière version de son compilateur étant donné que c'est celle-ci qu'il a utilisée pour écrire ce jeu qui mériterait à lui seul un article entier. Peut-être en reparlerons-nous un jour.

HEdit : un éditeur de fichiers en hexa, pratique pour apporter quelques modifications rapides.

Je ne peux vous en dire plus car je n'ai pas eu le temps de tester à fond cette nouvelle version.

Draco par l'exemple (par Pascal Amiable)

Le meilleur moyen d'étudier le fonctionnement de Draco est de prendre un exemple des plus classiques et de voir les différentes étapes qui nous permettront de créer un programme exécutable. L'exemple choisi est bien entendu d'imprimer "bonjour tout le monde" à l'écran. Pour écrire le source, nous allons utiliser l'éditeur Ded, fourni avec le système Draco. Vous pouvez bien entendu utiliser l'éditeur de votre choix, mais celui-ci étant fourni sur la disquette, et de plus écrit en Draco lui-même, pourquoi aller chercher ailleurs ?

Positionnez-vous dans le répertoire de travail et tapez :

ded bonjour.d

Ensuite entrez le source suivant :

proc main()void:
    writeln("Bonjour tout le monde");
corp;

Sortez de l'éditeur en sauvegardant par la séquence de touches "Esc+e".

Compilez ce source avec la commande :

draco fichier1[.d] fichier2[.d]... fichierN[.d]

L'extension par défaut pour un fichier source Draco est ".d". Chaque fichier est bien entendu compilé indépendamment des autres. Si la compilation s'est bien passée un fichier portant l'extension ".r" est généré pour chaque source compilé (je vous avouerai que cette extension est assez douteuse, sans doute un héritage de CP/M). Au sujet des extensions, il vous savoir que les "includes" Draco portent l'extension ".g", ce qui permet de les distinguer à coup sûr des autres.

Dans notre exemple, il suffit de taper :

Draco bonjour

L'extension ".d" étant prise par défaut. Un fichier bonjour.r a logiquement été généré. Dans le cas où vous auriez fait une erreur en tapant l'exemple, modifiez le source et recompilez-le jusqu'à ce que le fichier objet soit généré.

On utilisera BLink pour générer un exécutable à partir du fichier objet. De nombreux exemples de procédures de génération de liens sont fournis sur la disquette Fish 201. Pour relier notre programme "bonjour", le script baptisé Draco:s/link.s, convient très bien :

execute link.s bonjour

Et là, ô miracle, un programme exécutable du nom de "bonjour" est créé. Pas mal, non ?

Le reste...

Deux mots sur la documentation, qui est abondante et très pédagogique (malheureusement en anglais, mais néanmoins facilement comprehensible). Je vous rappelle que la disquette Fish 77 est nécessaire pour posséder l'ensemble de la documentation.

Du point de vue compatibilité, il n'y a pas l'ombre d'un problème puisque Draco fonctionne aussi bien sous système 1.3 que 2.0 (les tests effectués sur Amiga 3000 se sont révélé très concluants).

Enfin, je vous signale que Draco est un logiciel Shareware, ce qui signifie que si vous l'utilisez régulièrement, vous avez le devoir moral d'envoyer la contribution demandée par l'auteur. Vous serez de plus déclaré utilisateur enregistré, ce qui vous permettra sûrement de recevoir les nouvelles versions du produit. L'adresse de l'auteur se trouve sur la disquette.

Conclusion

Nous sommes donc en présence d'un produit très professionnel que je ne saurais trop vous conseiller, ne serait-ce que par simple curiosité. En effet, pour le prix de revient d'un tel produit, il serait bête de s'en priver. Et puis qui sait, peut-être serez-vous, vous aussi, atteint par le virus de la programmation en Draco, virus bien inoffensif celui-là ?

Nom : Draco 1.3.
Développeur : Chris Gray.
Genre : langage de programmation.
Date : 1990.
Configuration minimale : Amiga OCS, 68000, 512 ko de mémoire.
Licence : freeware.
Téléchargement : paquatege du 1.2, source du 1.3.


[Retour en haut] / [Retour aux articles]