|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Depuis le début des années 1990, la programmation orientée objet (POO) a pris une place considérable en informatique et est en passe de devenir aujourd'hui le standard en matière de développement. Longtemps à la traîne dans ce domaine, l'Amiga dispose enfin d'un environnement complet pour programmer en C++ et vous initier aux joies de la POO. Le paquetage Maxon C++ est proposé en deux versions :
Afin d'offrir un confort maximum au programmeur, Maxon C++ est livré sous forme d'environnement intégré. Autrement dit, l'utilisateur n'a pas à lancer plusieurs outils différents (éditeur, compilateur, assembleur, éditeur de liens...) pour générer un exécutable. Tout est fait à partir de l'éditeur. Edward Edward, dont le nom est le même que celui de nombreux rois d'Angleterre, se veut être un éditeur royal (dixit la documentation). A l'exécution, deux fenêtres apparaissent à l'écran. La première contient le fichier à éditer, la seconde, appelée "fenêtre de projet", récapitule tous les fichiers chargés avec leurs attributs. Edward permet de travailler simultanément avec autant de fichiers que vous le voulez (ce nombre est bien sûr limité par la mémoire disponible). La fenêtre de projet permet de passer d'un fichier à un autre par un simple double-clic sur la ligne correspondante (figure 1). Pour ceux qui le désirent, il est également possible d'ouvrir une fenêtre par fichier chargé mais, excepté pour les heureux possesseurs d'écrans 17", la première solution est de loin la plus pratique. Les personnes travaillant sur des projets utilisant de nombreux fichiers sources (ce qui est souvent le cas en programmation) apprécieront cette possibilité. Figure 1 Edward dispose d'une bibliothèque d'environ 120 commandes telles que la pose d'une marque, le déplacement du curseur, le lancement d'une commande CLI, etc. que l'utilisateur peut utiliser à sa guise dans un fichier de configuration ASCII (comme l'éditeur DME de Matt Dillon pour ceux qui le connaissent mais en mieux !). Pour illustrer ces propos, voici un petit exemple : Ces quelques lignes nous ont permis de créer le menu projet de la figure 2 qui assure notamment le chargement, la sauvegarde et l'impression des fichiers. Figure 2 Il est également possible d'assigner des commandes aux touches du clavier : Nous avons donc la possibilité d'harmoniser les touches de fonctions d'Edward avec celles de votre éditeur favori (ceux qui utilisent plusieurs éditeurs différents savent qu'il est pénible de passer de l'un de l'autre). Enfin, une fenêtre d'options permet d'activer quelques modes très pratiques :
Le compilateur Sa première particularité est de fonctionner en deux modes : C++ et ANSI-C. Il respecte la norme C++ 2.1 d'AT&T. Maxon C++ est un vrai compilateur et non un préprocesseur. Le C++ n'est donc pas transformé en C avant d'être compilé de manière classique mais est transformé directement en code intermédiaire. Un panneau de configuration permet à l'utilisateur de choisir ses options de compilation ainsi que les types de "warning" (figure 3). Vous pouvez par exemple générer un fichier assembleur si vous voulez optimiser vous-même le code mais vous devrez alors utiliser l'assembleur de la version développeur ou Devpac pour recompiler. Maxone C++ ne génère en effet pas d'assembleur 680x0 mais un code intermédiaire. La plupart des bons compilateurs passent par un tel code qui permet ensuite l'optimisation du code généré. Il est également possible de créer un "symbol hunk" (symbole de segment) utilisable par le débogueur de Devpac. Figure 3 Figure 4 L'éditeur de liens ne charge donc que ce qu'il lui faut contrairement aux autres éditeurs de liens qui balayent les fichiers bibliothèques à la recherche des briques de base nécessaires à votre programme. L'éditeur de liens permet de créer deux types de fichiers : des fichiers exécutables normaux et des exécutables sans initialisation des E/S et sans ouverture des bibliothèques Amiga (Maxon C++ ouvre habituellement automatiquement, les bibliothèques graphics, intuition et diskfont en cas d'utilisation en plus de l'exec et de la DOS). Toutes ces particularités, mises bout à bout, ont pour conséquence une accélération de la compilation et une diminution sensible de la taille du code généré. Le classique "Hello World" occupe 712 octets avec Maxon C++ alors qu'avec Lattice C++, il fait environ 14 ko ! Enfin, une version CLI du compilateur est également fournie avec le système. Elle fonctionne dans la philosophie Unix, c'est-à-dire qu'une seule commande permet de compiler, assembler et relier le programme. L'ordre "MCPPC test.c" traduit le source et génère l'exécutable test. On n'aurait pu faire plus simple ! Le "Source-Level Debugger" Il est très rare qu'un programme fonctionne correctement dès la première exécution, alors commence la longue et fastidieuse recherche des erreurs. Pour nous faciliter cette tâche, Maxon nous fournit un débogueur orienté Intuition qui répond au nom de MSDB. Il offre l'ensemble des possibilités d'un débogueur classique : examiner une variable, exécuter une ou plusieurs lignes, placer des points d'arrêts... (figure 5). Figure 5 Figure 6 MakeAPP est un programme d'aide à la création d'interfaces utilisateur. Il utilise intensément la RCT.library (Cf. le paquetage) pour vous permettre de rendre vos programmes plus agréables à utiliser. Edward a été en partie créé à l'aide de ce logiciel. Sur un écran de travail, vous ajoutez à loisir fenêtres, boutons, ascenseurs, gadgets de saisie et menus avec les caractéristiques que vous désirez (figure 7). Figure 7 HotHelp HotHelp est le programme d'aide en ligne fourni avec Maxon C++. Interfacé avec l'éditeur, il permet de retrouver rapidement les paramètres de toutes les fonctions de la bibliothèque standard C et des bibliothèques Amiga (figure 8). Avec HotHelp, vous n'aurez plus à vous plonger dans les "ROM Kernel Manuals", ni les documentations C. Il est également possible de créer ses propres fichiers d'aide si on le désire. Pour l'instant, seul un fichier d'aide sur les fonctions du Workbench 1.3 est fourni mais une mise à jour permettant de passer aux fonctions du Workbench 2.0 est disponible depuis janvier 1993. Figure 8 Pour tester l'efficacité du code produit, nous avons utilisé comme d'habitude le programme calculant les termes de la suite de Fibonacci, sur plusieurs compilateurs existant sur Amiga. Voici les temps nécessaires pour calculer le 27e terme :
On peut remarquer que Maxon C++ s'en tire plus qu'honorablement face aux autres compilateurs. Cet exemple n'est cependant pas très significatif car il n'utilise aucune particularité de la programmation orientée objet. Pour ce faire, un petit programme de traitement de listes chaînées, qui utilise les objets et les notions d'héritages a été utilisé. Le résultat est largement en faveur du compilateur de Maxon :
Conclusion Pour :
|