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 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 décalage ("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 :
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 :
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 :
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 partagiciel, 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 : gratuiciel.
Téléchargement : paquatege du 1.2, source du 1.3.
|
|