Enseigner Ada, pourquoi ?, à qui ?, comment ? Choisir un langage : entre le ten
Enseigner Ada, pourquoi ?, à qui ?, comment ? Choisir un langage : entre le tentant et le raisonnable ! Par Daniel Feneuille Date de publication : 6 décembre 2003 Dernière mise à jour : 17 avril 2006 A l'initiative de l'association Ada-France, ce texte est une réflexion sur les qualités pédagogiques (mais aussi professionnelles) du langage de programmation Ada normalisé en 1983, mais surtout, joliment réactualisé en 1995 ce qui lui a redonné une longueur d'avance avec les plus actuels. Les arguments développés dans ces lignes sont ceux de praticiens francophones (pédagogues ou professionnels) convaincus de leur choix Ada et qui, parfois, sont affligés de constater que l'on enseigne, plus volontiers, la programmation avec un langage que l'on maîtrise mieux, et/ou avec ce qui est plus « à la mode » ; éternel choix entre le sérieux et ... le tentant ! Quand on enseigne l'informatique (sauf à viser le développement de petits modules sans lendemain) on ne peut faire l'impasse sur la mise en pratique des préceptes du génie logiciel (souvent cités dans les cursus mais, hélas, pas toujours mis en application). La démarche génie logiciel implique de faire le choix d'enseigner, notamment à travers le langage, la qualité : c'est à dire en quelques mots faire : propre, rigoureux, fiable, lisible, portable, maintenable, réutilisable, extensible (donc modulaire et, si nécessaire, objet), et si possible (ce qui n'est pas négligeable) enseigner gratuit. Dans le cas où l'on souhaite toutes ces propriétés en même temps les langages candidats se font rares. Ce document, créé, avant tout, dans un but pédagogique, ne prétend pas présenter le langage Ada. Des pistes pour cela seront proposées (sites, cours, livres, didacticiel, etc.) voir le chapitre les aides et les outils (dans le plan ci dessous). Ce texte s'adresse bien sûr aux enseignants informaticiens (même débutants) mais surtout aux décideurs pédagogiques (directeurs d'enseignement, prescripteurs de formation dans l'industrie et la recherche). Les praticiens du langage Ada convaincus de ses qualités n'y verront que des évidences mais ils peuvent à tout moment réagir pour améliorer ou amender nos argumentations (contacts). Enseigner Ada, pourquoi ?, à qui ?, comment ? Choisir un langage : entre le tentant et le raisonnable ! par Daniel Feneuille I - Introduction..............................................................................................................................................................3 II - Le génie logiciel.....................................................................................................................................................4 III - Les concepts bien illustrés................................................................................................................................... 5 A - Typage..............................................................................................................................................................5 B - Encapsulation................................................................................................................................................... 5 C - « Spécifications » et réalisation.......................................................................................................................5 D - Généricité......................................................................................................................................................... 6 E - Conception hiérarchique.................................................................................................................................. 6 F - Exceptions........................................................................................................................................................ 6 G - Approche modulaire.........................................................................................................................................7 H - Classes et objets............................................................................................................................................. 7 I - Programmation d'activités concurrentes............................................................................................................7 IV - Pour quels apprenants ?...................................................................................................................................... 9 A - Non informaticiens............................................................................................................................................9 B - DEUG............................................................................................................................................................... 9 C - IUT (Bac + 2)...................................................................................................................................................9 D - Bac + 4.......................................................................................................................................................... 10 E - Ingénieurs et BAC + 5................................................................................................................................... 10 F - Professionnels................................................................................................................................................ 10 G - CNAM.............................................................................................................................................................11 H - Suisse (Bac + 3)............................................................................................................................................11 V - Les aides et les outils......................................................................................................................................... 13 A - Les compilateurs............................................................................................................................................ 13 B - Les environnements de développement (I.D.E.)............................................................................................13 C - Internet et Ada............................................................................................................................................... 13 D - Les Bases de Données et Ada..................................................................................................................... 14 E - Méthodes et Ada............................................................................................................................................14 F - Des bibliothèques...........................................................................................................................................15 G - Interfaçage avec d'autres langages...............................................................................................................15 H - Traducteurs avec d'autres langages..............................................................................................................16 I - Livres, cours, didacticiel.................................................................................................................................. 16 VI - Des adresses d'établissements..........................................................................................................................17 VII - Conclusion......................................................................................................................................................... 18 VIII - Annexes (des exemples et des compléments)................................................................................................ 21 A - Un exemple de typage...................................................................................................................................21 B - Travail au niveau du bit................................................................................................................................. 21 C - Compléments interfaçage avec C..................................................................................................................22 D - Exemples de lisibilité..................................................................................................................................... 22 E - exemple simple de paquetage.......................................................................................................................23 F - Exemple de paquetage hiérarchique............................................................................................................. 23 G - un exemple de classe....................................................................................................................................24 H - Deux exemples de programmation concurrente............................................................................................25 I - Un exemple de programmation distribuée...................................................................................................... 31 IX - Remerciements...................................................................................................................................................32 - 2 - Copyright ® 2003 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. http://ada.developpez.com/cours/enseigner/ Enseigner Ada, pourquoi ?, à qui ?, comment ? Choisir un langage : entre le tentant et le raisonnable ! par Daniel Feneuille I - Introduction Le langage Ada a été conçu à l'initiative du D.O.D. (le département de la défense des USA) pour fédérer plus de 400 langages ou dialectes utilisés par cet organisme dans les années 1970 ! Des réunions et des documents de comités d'experts vont se succéder de 1975 à 1983 (appel d'offres, cahier des charges, choix, élection des projets et norme) pour présenter un langage généraliste, unificateur, normalisé et supportant les préceptes du génie logiciel : Ada83. Les premiers compilateurs (1985) sont onéreux mais ... respectent la norme ! (norme devenue internationale en 1987). Ada commence à faire ses preuves de fiabilité, de robustesse mais, a des défauts de jeunesse. De 1990 à 1995 la révision de la norme aboutit à Ada95, qui corrige les petits défauts, comble un gros manque en rendant le langage complètement objet (Ada est le premier langage objet normalisé). Ada95 ajoute ainsi son lot de nouveautés toujours inédites 10 ans après. Une nouvelle révision est en cours (nommée Ada0Y ; Y = 5 donc sûrement pour 2005) ce qui montre la vitalité et la pérennité du langage. Aujourd'hui (en 2003) Ada ne nous semble pas avoir la place qu'il mérite notamment dans les premiers apprentissages de l'informatique où l'on doit mêler la programmation elle même avec la bonne pratique de la programmation. Depuis longtemps Ada peut largement remplacer Pascal l'excellent langage pédagogique. Paradoxalement on trouve Ada plus volontiers enseigné dans des formations de très haut niveau car, là encore, il permet d'enseigner de façon claire, cette fois des concepts qualifiés de plus ardus. Faut-il enseigner (comme c'est trop le cas) les langages les plus récents ou les plus répandus (C/C++ notamment, voire Java pour être plus clairs), même si ces derniers semblent peu adaptés à l'apprentissage d'une bonne pratique ? Si la réponse est affirmative, et sous forme de boutade, il faut sacrer TF1 meilleure chaîne de télévision française, puisqu'elle est la plus regardée (ou encore si j'osais Windows le meilleur S.E. puisque le plus utilisé!). La modernité n'est pas un objectif pédagogique. Notons, comme contre exemple, que Java ne dispose toujours pas de la généricité (certes annoncée dans la version 1.5, mais déjà opérationnelle depuis 20 ans avec Ada83). La généricité est un concept essentiel pour la réutilisation. En général les détracteurs d'Ada (enseignants ou professionnels) l'ont peu ou mal utilisé et confessent, volontiers, s'être arrêtés dans leurs tests, irrités par la rigueur du compilateur. Rigueur à laquelle ils ne sont pas habitués et qui reste (nous le montrerons), justement, la qualité essentielle pour un développement fiable. Ada est encore bien utilisé (voire incontournable) en avionique et en informatique embarquée (fusée Ariane par exemple) ainsi que pour le contrôle de trafic (aérien, ferroviaire) où la fiabilité est cruciale. Il est aussi apprécié quand le code à développer est conséquent (donc très difficile à maintenir). Mais il n'en reste pas moins qu'actuellement peu de petites ou moyennes entreprises admettent utiliser Ada. Ou alors (comme le signale J.P. Rosen) ces entreprises cachent l'utilisation d'Ada comme on garde un secret de fabrication ! En effet, même pour des applications plus modestes, les gains de productivité avec Ada sont prouvés et très significatifs. Les enseignants en informatique soucieux de faire développer du code de qualité pourront utiliser Ada qui est l'aboutissement des langages procéduraux, Ada, longtemps réservé aux applications de très haute technologie, est aujourd'hui enfin accessible aux moins fortunés. Un compilateur gratuit, ouvert et portable (GNAT) permet (notamment aux universitaires et aux autodidactes) de s'y frotter et ... d'adopter le langage pour une formation (ou une culture) informatique de qualité (voir dans le chapitre Les aides et les outils : les compilateurs). - 3 - Copyright ® 2003 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. http://ada.developpez.com/cours/enseigner/ Enseigner Ada, pourquoi ?, à qui ?, comment ? Choisir un langage : entre le tentant et le raisonnable ! par Daniel Feneuille II - Le génie logiciel Dès les années 1970 on parle, déjà, de la crise du logiciel (et, aujourd'hui, le problème est récurrent et même encore plus préoccupant) : coût de développement dépassé ou difficile à prévoir, délais non respectés, livraison non conforme aux spécifications, programmes trop gourmands, peu fiables, modifications souvent impossibles, etc. Passons en revue, succinctement, quelques critères ou propriétés que doit satisfaire une application conséquente et de qualité. Le décor ainsi planté permettra de mettre en évidence dans le chapitre suivant les points forts du langage Ada satisfaisant aux objectifs soulevés. La réutilisabilité : c'est l'aptitude d'un logiciel à être repris, en partie ou uploads/Industriel/ ada-enseigner.pdf
Documents similaires
-
17
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jan 12, 2021
- Catégorie Industry / Industr...
- Langue French
- Taille du fichier 0.3653MB