Les langages de programmation utilisés dans les travaux de recherche des institutions de l’ESU de la Ville de Tshikapa
Bruno Kanumbedi Bakajika
p. 133-142
Vol. XX, n°4, sept 2023
Résumé
Le choix d’un langage de programmation dépend du dossier du programmeur et du besoin manifesté par le client ou l’entreprise. Les travaux de recherche réalisés dans les institutions de l’enseignement supérieur et universitaire de la Ville de Tshikapa dans le domaine informatique utilisent les langages de programmation. Nous avons cherché à savoir quels sont les langages les plus utilisés dans ces travaux de recherche.
L’enquête menée dans trois institutions savoir l’ISC Tshikapa, L’ISP Tshikapa et l’ISTA Tshikapa a analysé 330 travaux de recherche (TFC et Mémoires de licence). Il ressort de cette enquête que le langage C# est le plus utilisé dans ces travaux de recherche. Ce qui motive le choix de ce langage reste à chercher.
Introduction
De nos jours, l’informatique représente un outil de gestion et de pilotage des systèmes d’information, surtout au niveau des organismes possédant des systèmes qui reposent sur la gestion de base de données. Un des buts de l’ingénieur informaticien est d’automatiser toutes les opérations qui se faisaient manuellement ou de donner solution à des problèmes qui demeurent encore insolubles dans les entreprises à cause du volume d’information qui ne cesse d’augmenter.
La réalisation d’une application informatique est émaillée de beaucoup de problème, notamment : l’identification de la compréhension et identification de besoin de l’entreprise ainsi que l’utilisation du langage de programmation à mettre en place.
Le langage de programmation constitue un questionnement majeur dans la conception et la réalisation des applications informatiques. Son utilisation doit tenir compte des besoins présentés par l’entreprise et son efficacité dépend de la compétence (maitrise) du programmeur.
Dans la présente dissertation, nous rappelons les principes directeurs du langage de programmation avant de présenter la situation de l’utilisation des langages de programmation dans les trois institutions de l’enseignement supérieur et universitaire de la Ville de Tshikapa à savoir : l’institut supérieur pédagogique, l’institut supérieur du commerce et l’institut supérieur des techniques appliquées.
1. Cadre Général du langage de programmation
1.1. Définitions
Pour être exécutable, un programme doit être compréhensible par l’ordinateur qui ne peut décoder que des 1 et des 0. Ce code, le langage machine, est loin de notre langage de tous les jours. Notre langage parlé est riche, nuancé mais trop ambigu pour l’ordinateur qui ne dispose pas de l’intuition nécessaire pour le comprendre. Il nous faut donc un langage artificiel utilisable par l’homme et la machine.
En informatique, un langage de programmation est une notation conventionnelle destinée à formuler des algorithmes et produire des programmes informatiques qui les appliquent. D'une manière similaire à une langue naturelle, un langage de programmation est composé d'un alphabet, d'un vocabulaire, de règles de grammaire et de significations.
Les langages de programmation permettent de décrire d'une part les structures des données qui seront manipulées par l'appareil informatique, et d'autre part d'indiquer comment sont effectuées les manipulations, selon quels algorithmes. Ils servent de moyens de communication par lesquels le programmeur communique avec l'ordinateur, mais aussi avec d'autres programmeurs ; les programmes étant d'ordinaire écrits, lus, compris et modifiés par une équipe de programmeurs.
Un langage de programmation est mis en œuvre par un traducteur automatique : compilateur ou interprète. Un compilateur est un programme informatique qui transforme dans un premier temps un code source écrit dans un langage de programmation donné en un code cible qui pourra être directement exécuté par un ordinateur, à savoir un programme en langage machine ou en code intermédiaire2, tandis que l’interprète réalise cette traduction « à la volée ».
Les langages de programmation offrent différentes possibilités d'abstraction, et une notation proche de l'algèbre, permettant de décrire de manière concise et facile à saisir les opérations de manipulation de données et l'évolution du déroulement du programme en fonction des situations. La possibilité d'écriture abstraite libère l'esprit du programmeur d'un travail superflu, notamment de prise en compte des spécificités du matériel informatique, et lui permet ainsi de se concentrer sur des problèmes plus avancés.
Chaque langage de programmation supporte une ou plusieurs approches de la programmation (paradigmes). Les notions induisant le paradigme font partie du langage de programmation et permettent au programmeur d'exprimer dans le langage une solution qui a été imaginée selon ce paradigme.
Les premiers langages de programmation ont été créés dans les années 1950 en même temps que l'avènement des ordinateurs. Cependant de nombreux concepts de programmation ont été initiés par un langage ou parfois plusieurs langages, avant d'être améliorés puis étendus dans les langages suivants. La plupart du temps la conception d'un langage de programmation a été fortement influencée par l'expérience acquise avec les langages précédents.
D’une manière générale, un langage de programmation est construit à partir d'une grammaire formelle, qui inclut des symboles et des règles syntaxiques, auxquels on associe des règles sémantiques. Ces éléments sont plus ou moins complexes selon la capacité du langage. Les modes de fonctionnement et de définition de la complexité d'un langage de programmation sont généralement déterminés par leur appartenance à l'un des degrés de la hiérarchie de Chomsky.
Sous un angle théorique, tout langage informatique peut être qualifié de langage de programmation s'il est Turing-complet c'est-à-dire qu'il permet de représenter toutes les fonctions calculables au sens de Turing et Church (en admettant néanmoins pour exception à la théorie que la mémoire des ordinateurs n'est pas un espace infini).
Les règles de syntaxe sont définies par une grammaire formelle, elles régissent les différentes manières dont les éléments du langage peuvent être combinés pour obtenir des programmes. La ponctuation (par exemple l'apposition d'un symbole ; en fin de ligne d'instruction d'un programme) relève de la syntaxe.
Parmi les éléments du langage, le vocabulaire représente l'ensemble des instructions construites d’après des symboles. L'instruction peut être mnémotechnique ou uniquement symbolique comme quand elle est représentée par des symboles d'opérations tels que des opérateurs arithmétiques (« + » et « - ») ou booléens (&& pour le et logique par exemple). On parle aussi parfois de mot clé pour désigner une instruction (par abus de langage car le concept de mot clé ne recouvre pas celui des symboles qui font pourtant eux aussi partie du vocabulaire.
Les règles de sémantique définissent le sens de chacune des phrases qui peuvent être construites dans le langage, en particulier quels seront les effets de la phrase lors de l'exécution du programme.
L'alphabet des langages de programmation est basé sur les normes courantes comme ASCII, qui comporte les lettres de A à Z sans accent, des chiffres et des symboles, ou Unicode pour la plupart des langages modernes (dans lesquels l'utilisation se limite en général aux chaînes de caractères littérales et aux commentaires, avec quelques exceptions notables comme C♯ qui autorisent également les identifiants unicode).
La plupart des langages de programmation peuvent prévoir des éléments de structure complémentaires, des méthodes procédurales, et des définitions temporaires et variables et des identifiants. Les commentaires sont des textes qui ne seront pas traduits. Ils peuvent être ajoutés dans les programmes pour y laisser des explications. Les commentaires sont délimités par des marques qui diffèrent d'un langage de programmation à l'autre tel que « -- », « /* » ou « // ».
Les éléments constitutifs du programme, tels que les variables, les procédures, ou les types servent à organiser le programme et son fonctionnement. On peut ainsi, par exemple, diviser un programme en fonctions, ou lui donner une structure par objets : ces éléments de structure sont définis par des identifiants ou des procédures par mot clé selon le langage.
1.2. Utilisation du langage de programmation
Un langage de programmation offre un cadre pour élaborer des algorithmes et exprimer des diagrammes de flux. Il permet en particulier de décrire les structures des données qui seront manipulées par l'appareil informatique. Un langage de programmation sert de moyen de communication avec l'ordinateur mais aussi entre programmeurs : les programmes étant d'ordinaire écrits, lus et modifiés par une équipe de programmeurs.
Un langage de programmation offre un ensemble de notions qui peuvent être utilisées comme primitives pour développer des algorithmes. Les programmeurs apprécient que le langage soit clair, simple, et unifié, qu'il y ait un minimum de notions qui peuvent être combinées selon des règles simples et régulières. Les qualités d'un langage de programmation influent sur la facilité avec laquelle les programmes pourront être écrits, testés, puis plus tard compris et modifiés.
Les langages de programmation offrent différentes possibilités d'abstraction, et une notation proche de l'algèbre, permettant de décrire de manière concise et facile à saisir les opérations de manipulation de données et l'évolution du déroulement du programme en fonction des situations. Cette possibilité d'écriture abstraite libère l'esprit du programmeur d'un travail superflu, et lui permet de se concentrer sur des problèmes plus avancés.
La facilité d'utilisation, la portabilité et la clarté sont des qualités appréciées des langages de programmation. La facilité d'utilisation, qui dépend de la syntaxe, du vocabulaire et des symboles, influence la lisibilité des programmes écrits dans ce langage et la durée d'apprentissage. La portabilité permet à un programme écrit pour être exécuté par une plateforme informatique donnée (un système d'exploitation) d'être transféré en vue d'être exécuté sur une autre plateforme.
Les programmeurs apprécient que la syntaxe permette d'exprimer la structure logique inhérente au programme. Un des soucis en programmation est d'éviter des pannes, qu'il soit possible de les détecter, les éviter et les rectifier ; ceci est rendu possible par des mécanismes internes des langages de programmation. Des vérifications implicites sont parfois effectuées en vue de déceler des problèmes.
Les programmeurs apprécient qu'un langage de programmation soit en ligne avec les bonnes pratiques de programmation et d'ingénierie, qu'il encourage la structuration du programme, facilite la maintenance des programmes et qu'il dissuade voire interdise les mauvaises pratiques. L'utilisation de l'instruction go to, par exemple, qui existe depuis les premiers langages de programmation, est considérée comme une mauvaise pratique. Son utilisation est déconseillée, voire impossible dans les langages de programmation récents.
L'alignement sur les standards industriels, la possibilité d'utiliser des fonctionnalités écrites dans un autre langage de programmation et l'exécution simultanée de plusieurs threads sont des possibilités appréciées des langages de programmation.
Un langage de programmation permet de décrire les structures des données qui seront manipulées par l'appareil informatique. Il offre un ensemble de notions telles que les instructions, les variables, les types, et les procédures ou fonctions, qui peuvent être utilisées comme primitives pour développer des algorithmes.
Une instruction est un ordre donné à un ordinateur. Une variable est un nom utilisé dans un programme pour faire référence à une donnée manipulée par programme. Une constante est un nom utilisé pour faire référence à une valeur permanente. Une expression littérale est une valeur mentionnée en toutes lettres dans le programme.
Chaque donnée a une classification, celle-ci influe sur la plage de valeurs possibles, les opérations qui peuvent être effectuées, et la représentation de la donnée sous forme de bits. Chaque langage de programmation offre une gamme de types primitifs, incorporés dans le langage. Certains langages offrent la possibilité de créer des nouveaux types.
Les types de données primitifs courants sont les nombres entiers, les nombres réels, le booléen, les chaînes de caractères et les pointeurs. Plus précisément, le type booléen est un type qui n'a que deux valeurs, vrai et faux, tandis que le type pointeur : une référence à une donnée, qui se trouve quelque part en mémoire.
Une structure de données est une manière caractéristique d'organiser un ensemble de données en mémoire, qui influe sur les algorithmes utilisés pour les manipuler. Les structures courantes sont les tableaux, les enregistrements, les listes, les piles et les arbres.
Une déclaration est une phrase de programme qui sert à renseigner au traducteur (compilateur, interpréteur...) les noms et les caractéristiques des éléments du programme tels que des variables, des procédures, de types.
Des vérifications sont effectuées au moment de la compilation, ou au moment de l'exécution du programme, pour assurer que les opérations du programme sont possibles avec les types de données qui sont utilisés. Dans un langage fortement typé, chaque élément du programme a un type unique, connu et vérifié au moment de la compilation, ce qui permet de déceler des erreurs avant d'exécuter le programme.
Divers langages de programmation offrent la possibilité d'isoler un fragment de programme, et d'en faire une opération générale, paramétrable, susceptible d'être utilisée de façon répétée. Ces fragments sont appelés procédures, fonctions ou méthodes, selon le paradigme.
Les modules
Les langages de programmation peuvent également offrir la possibilité de découper un programme en plusieurs pièces appelées modules, chacune ayant un rôle déterminé, puis de combiner les pièces.
Les notions de procédure et de module sont destinées à faciliter la création de programmes complexes et volumineux en assistant la prise en charge de cette complexité. Ces fonctions permettent en particulier la modularité et l'abstraction.
1.3. Sortes de langages de programmation
Il existe des milliers de langages de programmation, la plupart d'entre eux étant réservés à des domaines spécialisés. Les langages de programmation peuvent être classifiés de nombreuses manières : généraliste/spécialisé, haut niveau/bas niveau, interprété/compilé, non objet/orienté objet/purement objet, etc. Nous incluons ci-dessous une liste de quelques langages de programmation les plus connus : QBasic, Visual Basic, C, C++, C#, Python, Java, Cobol, Fortran, Pascal, Perl,
Un algorithme est la description d'un enchaînement de calculs et de tâches élémentaires en vue de la réalisation d'un traitement automatique de données. Ces données doivent être représentées par des structures appropriées. L'algorithme peut ensuite être codé dans un langage de programmation pour donner un programme.
La programmation regroupe ces activités : algorithmique, structuration de données et codage, les deux premières étant certainement les plus importantes. La tâche principale de la conception d'un programme n'est pas l'écriture de celui-ci dans un langage informatique donné. La réalisation d'un programme se décompose en plusieurs phases. De manière simplifiée, on présente ainsi la genèse d'un programme :
§ Etablissement d'un cahier des charges : le problème posé ;
§ Analyse du problème et décomposition de celui-ci en sous-problèmes plus ou moins indépendants et plus simples à résoudre ;
§ Choix de structures de données pour représenter les objets du problème ;
§ Mise en œuvre des différents algorithmes à utiliser pour résoudre les sous-problèmes ;
§ Codage des algorithmes et création du programme dans un langage de programmation donné ;
§ Tests (et corrections) et validation auprès des utilisateurs.
Bien souvent, dans la pratique, ces étapes ne sont pas aussi nettement découpées. Les quatre premières sont certainement les plus importantes et on peut remarquer qu'elles sont indépendantes du langage de programmation choisi, qui n'intervient normalement qu'à la cinquième étape. La dernière étape est aussi très importante et ce serait une grave erreur de penser qu'elle ne fait pas partie du cycle de création d'un programme.
1.4. Le choix d’un langage de programmation
Un ingénieur pourrait évidemment être tenté d’apprendre à programmer en C, C++, C#, vb.net ou autre. Il faut qu’il comprenne qu’il s’agit là d’outils spécialisés pour mathématicien ou ingénieur qui lui seront utiles et qui, certes, se programment, mais pas à proprement parler de langages généralistes complets.
En pratique, le choix actuel se fait souvent entre C++ et C#. Encore une fois, rappelons que le choix du langage n’est pas le plus important et que l’essentiel est d’apprendre à programmer.
Il existe des multiple langages de programmations en informatique, ils sont de langages évolués et certains orientés objet, et peuvent subir des modifications lors du développement d’un projet informatique étant donné que chaque entreprise renferme toujours une réalité différente de l’autre.
2. Les langages de programmation utilisés dans les travaux de recherche
Les 303 travaux de recherche analysés dans trois institutions, ont utilisé trois langages de programmation : C# qui vient en tête dans 237 travaux dont 177 TFC et 60 mémoires de licence ; suivi de C++ utilisé dans 48 travaux dont 28 TFC et 20 mémoires de licence. Le VB.NET clôture la liste avec 18 utilisations dont 8 TFC et 10 mémoires.
Conclusion
Le Visual C# est un langage récent. Il a été disponible l’année 2000 avant d’être officiellement disponible en février 2002. Le passage de VB 6.0 à VC# est difficile et demande beaucoup d’effort à un programmeur VB 6.0 de s’adapter aux nouvelles conceptions qu’il ne maîtrise pas. Cette difficulté est dû au fait que la version actuelle est complètement orienté objet alors que le VB 6.0 ne l’est pas. Le VC# est un outil de développement de Microsoft facilitant le développement d’applications avec les langages .net et notamment la construction d’interfaces graphiques.
Les résultats ci-dessus montrent que le C# reste le seul langage le plus actualisé dans la réalisation d’applications informatique pour satisfaire le besoin d’entreprise, malgré la multiplicité de sujets de recherche. Nous pouvions dire qu’il s’agirait parfois du plagiat de code source généralisé, soit de la mauvaise orientation étant donné que le choix d’un langage de programmation est fonction de l’objectif à atteindre par le réalisateur dans le but de mieux satisfaire le besoin du client (entreprise concerné).
Par ailleurs il est moins prudent d’imposer un langage de programmation au réalisateur parce que cela dépend de la maitrise (compétence en termes de programmation). Un programme C++ est capable de demander au système d’exploitation de la mémoire pour y stocker les données et libérer ces zones mémoires au cours de l’exécution du programme de la mémoire. Le programmateur est tenu de rendre au système d’exploitation, les zones mémoires qu’il aura réclamés dynamiquement, au plus tard lors de la fermeture du programme. Notons aussi que le C++ reste le moins utilisé pour les chercheurs congolais et pourtant il renferme de notions très importantes en rapport avec la gestion de la mémoire par le programmeur (allocation dynamique de la mémoire)
Bibliographie
Datancourt, C. (2012). Apprendre à programmer, Paris : Edition Eyrolles
De Champlain, M., Patrick, G. (2005). C# 2.0 guide pratique du développeur, Paris : Dunod.
Delannoy, C. (2010). S’initier à la programmation, Paris : Edition Eyrolles
Maurizio Gabbrielli et Simone Martini (2010). Programming Languages: Principles and Paradigms, Springer.
Zak, D. (2004). Microsoft Visual Basic.net: Reloaded, Edition Thomson course technology