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 DICE 2
(Article écrit par Cédric Beust et extrait d'Amiga News - octobre 1990)
|
|
Le compilateur C de Matt Dillon
Et celui-ci nous vient d'un illustre personnage puisqu'il s'agit de Matt Dillon (d'ailleurs, comme tous les
logiciels DP commençant par la lettre "d", celui-ci aurait dû vous mettre la puce à l'oreille...).
DICE signifie "Dillon's Integrated C Environment". Il s'agit d'un environnement presque complet
de programmation en C ANSI (je dis presque car les includes ne sont par inclus dans la
version gratuicielle) : préprocesseur, compilateur, assembleur, éditeur de liens et éditeur.
Il existe deux versions de DICE : la 2.01 (gratuiciel) disponible par approvisionnement classique
de DP et la 2.05 ("registered version") que l'auteur distribue lui-même par courrier pour la somme
de 40 $ et qui contient des caractéristiques supplémentaires : les mots-clés _near, _far et _chip,
calcul en virgule flottante (float et double), champs d'octets dans les structures,
pages de manuel (consultables directement à partir de l'éditeur de texte DME, qui est fourni dans les deux
distributions) plus d'autres aspects sur lesquels Matt est en train de travailler et qui feront
partie de la version suivante.
Le programme principal est dcc. Comme son nom l'indique, celui-ci est très semblable par ses
options au cc d'Unix. Celui-ci appelle lui-même les différentes phases de la compilation :
dcpp tout d'abord (le préprocesseur), puis dc1 (le compilateur), das (l'assembleur, une remarque
à son sujet : il ne s'agit pas d'un assembleur pour 68000, encore qu'il en soit très proche.
Il sert uniquement à transformer le code produit par del -- un fichier texte -- en un module objet)
et enfin l'éditeur de liens dlink, qui permet de créer des exécutables résidents (sans effort !).
Pour obtenir un tel résultat, Matt utilise une solution très élégante ne nécessitant
aucune participation de la part du programmeur : il transforme la bibliothèque amigalib (non fournie)
en une bibliothèque à son propre format (à l'aide de l'utilitaire libtos qui fait partie de la
distribution) qui ne fait aucune référence absolue aux variables de base, celles-ci étant
désormais référencées via le registre A4. Simple et très efficace.
Rapide
dcc est très rapide grâce à l'option -f. Celle-ci permet de tirer pleinement profit du fait que
certains des programmes qu'il appelle sont résidents. Si tel est le cas, ils sont appelés en
mémoire et non pas sur disque comme le fait par exemple le de Lattice (pardon, SAS). Ce qui fait
que dcc a toujours été plus rapide que le sur les exemples que j'ai testés, même en mettant
le maximum de programmes appelés par lc en mémoire. La comparaison n'est pas honnête dans
la mesure où l'on compare un chargement sur disque dur par rapport à un chargement en mémoire,
mais après tout, le n'avait qu'à proposer une telle option également...
Pas d'optimisations diaboliques
Le code minimal (c,o) est également très réduit du fait de l'utilisation d'autres astuces dans le
même genre. Le code produit se compare très favorablement à celui produit par le Lattice (et celui
de l'Aztec d'après Matt). Il ne dispose pas d'optimisations diaboliques comme celle consistant
à repérer les sous-expressions communes de façon à ne les calculer qu'une fois (par exemple dans
l'expression (a+b)*c + (a+b)*d) mais c'est un choix délibéré : Matt a jugé préférable de garder
une certaine simplicité à son compilateur afin d'assurer une maintenance plus facile.
La compatibilité ANSI est presque totale (elle est en fait la raison d'être de DICE)
allant même jusqu'à implémenter l'opérateur ## du préprocesseur et les variables spéciales
__FILE__, __LINE__, etc.
Ajoutons pour conclure que les sources de la bibliothèque C de DICE sont intégralement fournis
(en C) permettant aux utilisateurs de corriger eux-mêmes les (éventuels) bogues
qui pourraient s'y trouver.
Version commerciale à venir
Matt a fermement l'intention de faire de DICE un des rivaux principaux des deux compilateurs existant
sur le marché Amiga. Il est indéniable qu'en l'espace de six mois et parti de rien, DICE est déjà
presque à leur niveau. Une version commerciale est d'ailleurs prévue et ne saurait tarder à sortir.
Nom : DICE 2.
Développeur : Matt Dillon.
Genre : compilateur C.
Date : 1990.
Configuration minimale : Amiga OCS, 68000, 512 ko de mémoire.
Licence : partagiciel.
Prix : 40 $.
|
|