Obligement - L'Amiga au maximum

Vendredi 06 juin 2025 - 12:16  

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 Lattice C++
(Article écrit par Cédric Beust et extrait d'A-News (Amiga News) - mars 1990)


Lattice avait fait sensation, il y a quelques mois, en sortant le premier compilateur pour C++ sur Amiga. Le progrès ne se limite pas à l'arrivée d'un nouveau langage sur notre ordinateur bien-aimé : le concept introduit par C++ est à lui seul une petite révolution. C++ n'est, en effet, pas un langage ordinaire, pas plus qu'il n'est du C amélioré, comme je l'ai maintes fois entendu. C'est un "Langage Orienté par les Objets" (LOO). Derrière cette appellation quelque peu inquiétante se cachent beaucoup de notions qui feront bientôt partie de la vie de tous les jours des programmeurs de demain.

Description succincte (sic)

La boîte contient deux disquettes et trois livres. La disquette 1 est dédiée au compilateur lui-même (cfront, cc et blink) et la disquette 2 contient tous les includes du C++ (ils sont bien entendu différents des includes du C).

Deux des trois livres sont consacrés au compilateur Amiga (Reference Manual et guide du langage) et le troisième est une introduction générale aux LOO avec pour support le C++. Notons que c'est une très bonne idée d'avoir inclus ce dernier car il présente le C++ d'une manière objective et portable, et ce pour n'importe quel ordinateur. C'est en fait le premier à lire par le néophyte n'ayant aucune expérience du C++ : les exemples y sont clairs et commentés.

Lattice C++

Une fois les notions de base du langage assimilées, l'utilisateur se reportera aux deux guides du compilateur afin de voir comment l'interfaçage C++/Amiga est réalisé. Mais avant d'aller plus loin, je vais essayer de décrire la notion de LOO afin de la comparer aux langages traditionnels tels C, Pascal ou Modula 2.

Qu'est-ce qu'un Langage Orienté par les Objets ?

La création des LOO a été motivée par la constatation que les "gros" (notion à relativiser) programmes étaient difficiles à entretenir et à mettre à jour par des personnes qui n'ont pas participé à leur élaboration. C'est là que l'idée d'objet a fait son apparition.

Qu'est-ce qu'un objet ? Il s'agit d'un ensemble de champs (appelé aussi classe) qui contient tout ce qui est nécessaire à la manipulation de cet objet : des simples valeurs (entiers, chaînes ou structures plus complexes) aux routines pour les traiter (les méthodes). Ainsi, l'utilisateur n'a pas besoin de savoir quelle est la représentation interne de telle ou telle structure : il n'a qu'à utiliser ce qui lui est fourni et ne peut donc pas faire de bêtises en modifiant des portions de code interdites.

L'avantage d'une telle méthode de procéder est immédiat : que ce soit du point de vue de l'utilisation ou de la maintenance. Prenons par exemple l'objet RastPort. Les routines offertes à l'utilisateur sont :

circle(rayon)
ellipse(r1 ,r2)
line(x1,y1)
delta(x2,y2)
text(chaîne)

L'utilisation d'un rastport se fait tout simplement de la manière suivante :

// Les commentaires C++ sont précédés des deux barres obliques

RastPort rp// Déclaration de l'objet
...
rp.circle(10)// Tracé d'un cercle de rayon 10

La lisibilité de programmes rédigés de cette façon se trouve indiscutablement accrue. Voici en vrac les traits marquants de C++ :

1. La présence du mot-clé "new" autorise la création d'objets très complexes en une seule instruction. Il est également possible de préciser explicitement comment se fait la désallocation de l'objet en fin de programme.

2. Un aspect qui ajoute à la programmation par objets une puissance énorme est la notion d'héritage. Rien ne vous empêche de prendre une classe déjà existante et d'y ajouter vos propres champs. Vous pourriez par exemple enrichir l'objet RastPort d'une routine traçant un rectangle, ou de n'importe quelle autre routine plus complexe. Vous pouvez également déclarer certaines parties de l'objet que vous créez private afin que personne sauf vous puisse y référer, et l'autre partie public, annonçant explicitement les méthodes que vous fournissez à l'utilisateur.

3. Une autre notion quelque peu déroutante est celle de polymorphisme, et elle est liée directement à l'héritage : si une classe A est parente de la classe B (par exemple : B hérite de A), n'importe quel objet b de B peut être utilisé à la place d'un objet de A. Autrement dit, il est possible qu'une fonction accepte des objets de types différents comme paramètre, et ce de façon tout à fait légale (attention : cela n'a rien à voir avec le laxisme de contrôle des types de C. C++ possède au contraire un contrôle des types plus poussé).

4. Une autre notion tout aussi importante (et je vais arrêter là pour cette description car je vois avec inquiétude la page s'agrandir) est l'existence de fonctions virtuelles (virtual functions). Il s'agit de fonctions qui peuvent être récrites par la classe fille, afin de l'enrichir, ou bien de l'adapter à l'objet qu'elle décrit. Les fonctions virtuelles vont de pair avec le polymorphisme.

Il y aurait encore beaucoup de choses à dire pour compléter ce rapide survol des caractéristiques de C++.

Implémentation sur l'Amiga

Le compilateur C++ n'est pas un vrai compilateur, dans la mesure où il ne produit pas directement du langage-machine mais du C. Le cheminement utilisé est le suivant :

Lattice C++

Ces deux opérations sont résumées dans la commande "cc". Le compilateur C++ inclut donc un compilateur C qui est la version 4.0 de "lc" (bien entendu, aucun problème si vous utilisez la version 5.0x).

Il est précisé dans l'introduction qu'un minimum de 1,5 Mo de mémoire et 10 Mo de disque dur sont requis pour travailler confortablement. L'évaluation de la place sur disque dur est largement surestimée (3 Mo suffisent, sauf si vous avez l'intention d'écrire de longs programmes, bien sûr) et il est certain que 1 Mo suffit tout juste pour compiler ne serait-ce que des petits programmes (à titre d'exemple, pour compiler un programme de taille finale 16 ko avec 800 ko de mémoire disponibles, j'ai dû fermer QEd afin de libérer 200 ko).

Il n'est pas trop surprenant de constater que les codes produits sont relativement plus gros que les programmes C équivalents mais cette différence s'atténue sûrement lors de la compilation de gros programmes. La compilation est également plus lente, surtout lors de l'exécution de cfront.

Il est important de garder à l'esprit que le C++ n'est pas destiné aux petits bidouilleurs qui s'amusent à économiser 3 ko en supprimant le startup c.o (mmmh, je me demande de qui il peut bien s'agir...). Seuls les développeurs intéressés pas la création de gros logiciels appelés à être mis à jour régulièrement verront dans l'achat de ce compilateur un investissement sûr garantissant un suivi correct du logiciel. Ces personnes-là ont sûrement à leur disposition suffisamment de fonds pour posséder la configuration minimale, et probablement beaucoup plus en fait.

La programmation sur Amiga

Avec un peu de recul, on constate que la façon dont l'Amiga est structuré se prête très bien à l'établissement d'objets héritant les uns des autres. Cela conduit à des listings parfois surprenants de simplicité, comparés aux équivalents en C ou en assembleur qui sont la plupart du temps précédés par une longue liste d'initialisations et de vérifications. Allez donc jeter un coup d'oeil au listing "console.cp".

La disquette 2 contient d'ailleurs une dizaine de programmes d'exemple explorant à peu près tous les sujets possibles sur Amiga. Ils sont suffisamment commentés pour fournir une base valable à des applications plus vastes. J'aurais cependant apprécié trouver dans la boîte un quatrième livre expliquant plus en détails l'interfaçage entre C++ et Amiga (le Reference Manual se contente d'énumérer les classes et leurs fonctions).

Conclusion

Il est véritablement impossible de donner une impression globale de C++ en quelques pages et j'ai donc volontairement laissé dans l'ombre beaucoup d'aspects tout aussi dignes d'intérêt. Disons pour conclure que l'existence d'un compilateur C++ sur un ordinateur est un fait rare et que cela va incontestablement contribuer à donner à l'Amiga ses lettres de noblesse en tant qu'ordinateur de développement de gros logiciels. On peut compter sur Lattice pour une mise à jour régulière du compilateur ce qui lui assure sans conteste un avenir brillant.

Nom : Lattice C++.
Éditeur : Lattice.
Genre : langage de programmation.
Date : 1988.
Configuration minimale : Amiga OCS, 68000, 1,5 Mo de mémoire.
Licence : commercial.


[Retour en haut] / [Retour aux articles]