N’étant ni pro­gram­meur et ni con­cep­teur de sites Web, vous devez rarement penser à ce qui se cache derrière le fonc­tion­ne­ment des pro­grammes et des sites Internet, même si vous les utilisez au quotidien. Ces derniers sont basés sur des ins­truc­tions à votre or­di­na­teur qui sont longues et bien souvent complexes. Le texte d’ins­truc­tion est appelé code source, de l’anglais source code. À partir d’un langage de pro­gram­ma­tion spé­ci­fique, les pro­gram­meurs dé­fi­nis­sent toutes les règles d’une ap­pli­ca­tion exé­cu­table par or­di­na­teur. Si l’auteur introduit par inad­ver­tance une erreur dans son travail qui enfreint le langage de pro­gram­ma­tion, alors le programme ne fonc­tion­nera pas du tout ou bien s’arrêtera pendant le processus.

Dé­fi­ni­tion
le code source est un texte lisible par les personnes, écrit dans un langage de pro­gram­ma­tion spé­ci­fique. Le but du code source est de donner à l’or­di­na­teur des règles et des spé­ci­fi­ca­tions précises qu’il peut traduire en langage machine. Ainsi, le code source est la base des pro­grammes et des sites Web.

Qu’est-ce qu’un code source ?

Les or­di­na­teurs, qu’il s’agisse d’or­di­na­teurs per­son­nels, de smart­phones modernes ou d’or­di­na­teurs pour la science et l’industrie, fonc­tion­nent tous dans le système binaire (on/off, chargé/déchargé, 1/0). Une séquence d’états (bit) indique à l’or­di­na­teur ce qu’il doit faire. Alors que dans les premiers temps de l’in­for­ma­tique, les commandes étaient en fait créées avec ces deux états, les ap­pli­ca­tions ont depuis longtemps été écrites dans un langage de pro­gram­ma­tion lisible par l’homme. Cela peut paraitre étrange, puisque en tant que profane, vous pouvez au début con­si­dé­rer un code source comme étant sim­ple­ment du charabia in­dé­chif­frable.

Dans ce contexte, cependant, le terme d’ « hu­mai­ne­ment lisible » doit être compris comme un terme contraire de « lisible par la machine ». Les or­di­na­teurs ne fonc­tion­nent qu’avec des valeurs nu­mé­riques, tandis que les personnes utilisent des mots afin de com­mu­ni­quer. Tout comme une langue étrangère, il est né­ces­saire d’apprendre les dif­fé­rents langages de pro­gram­ma­tion afin de pouvoir les utiliser.

Dif­fé­rents langages de pro­gram­ma­tion

Il existe des centaines de langages de pro­gram­ma­tion dif­fé­rents. Il est difficile de dire s’il existe un langage meilleur qu’un autre, puisque tout dépend surtout du contexte du projet et de l’ap­pli­ca­tion pour laquelle le code source est utilisé. Les langages de pro­gram­ma­tion les plus connus sont :

  • BASIC
  • Java
  • C
  • C++
  • Pascal
  • Python
  • PHP
  • Ja­vaS­cript

Cependant, pour que l’or­di­na­teur comprenne ces langages, ils doivent d’abord être traduits en code machine.

Com­pi­la­teur et in­ter­prète

Pour que les or­di­na­teurs puissent traiter le code source écrit par les pro­gram­meurs, un tra­duc­teur doit se trouver entre eux, il existe sous la forme d’un programme sup­plé­men­taire. Cette ap­pli­ca­tion utile existe sous la forme de com­pi­la­teur ou d’in­ter­pré­teur :

  • Com­pi­la­teur : ce type d’ap­pli­ca­tion traduit (compile) le code source en code machine, c’est à dire com­pré­hen­sible et exé­cu­table par le pro­ces­seur. Ce code machine peut être sau­ve­gardé sous la forme d’un fichier exé­cu­table.
  • In­ter­prète : un in­ter­prète ou in­ter­pré­teur traduit le code source ligne par ligne et l’exécute di­rec­te­ment. Cela rend le processus de tra­duc­tion beaucoup plus rapide qu’avec un com­pi­la­teur, mais l’ap­pli­ca­tion est plus lente et nécessite aussi beaucoup de mémoire.

Vous n’avez pas le choix : le langage de pro­gram­ma­tion détermine si un com­pi­la­teur ou bien un in­ter­pré­teur doit être utilisé. Mais de nos jours, une solution in­ter­mé­diaire est cependant de plus en plus utilisée : la com­pi­la­tion à la volée (JIT pour just-in-time com­pi­la­tion) appelée cou­ram­ment tra­duc­tion dynamique. Ce type de tra­duc­tion tente de combiner les avantages des deux pro­grammes (analyse rapide et exécution rapide), il est notamment utilisé dans les na­vi­ga­teurs pour gérer plus ef­fi­ca­ce­ment Ja­vaS­cript, PHP ou Java.

Langage de balisage

La structure de base d’un site Web est aussi appelée code source. Cependant, la base n’est pas un langage de pro­gram­ma­tion, mais le langage de balisage HTML. Un langage de balisage détermine la structure d’un contenu. Par exemple, HTML peut être utilisé pour définir des titres, des pa­ra­graphes ou des points saillants. Un document HTML n’est pas en soi un programme, mais peut par contre en contenir un, par exemple sous forme de code Ja­vaS­cript. Il en va de même pour d’autres langages de balisage comme XML.

Structure du code source

En fonction du langage de pro­gram­ma­tion utilisé, vous respectez certaines con­ven­tions lors de l’écriture des pro­grammes. Cependant, les langages de pro­gram­ma­tion les plus rares ap­pa­rais­sent à partir de rien, la plupart d’entre eux se cons­trui­sent les uns sur les autres. Pour cette raison, certains éléments se trouvent souvent dans dif­fé­rents codes de programme : 

  • Commandes : elles cons­ti­tuent pro­ba­ble­ment la base de toutes les ap­pli­ca­tions. Avec cela, le pro­gram­meur indique clai­re­ment à son futur programme ce qu’il doit faire. De telles commandes peuvent par exemple, dé­clen­cher certaines étapes de calcul ou afficher du texte.

  • Variables : les variables sont des espaces qui peuvent être remplis d’in­for­ma­tions. Celles-ci sont ré­fé­ren­cées dans le code source toujours avec un nom à attribuer.

  • Con­di­tions : la structure de la plupart des pro­grammes est aussi dé­ter­mi­née par des requêtes qui fonc­tion­nent selon un schéma « if » « else if », c’est à dire le principe du calcul pro­po­si­tion­nel. Lorsqu’une certaine valeur se produit, un évènement est déclenché, sinon un autre.

  • Boucles : les requêtes peuvent également servir de base pour les boucles dans le code source. Une commande est répétée jusqu’à ce qu’une certaine valeur soit atteinte. Alors le programme quitte la boucle et exécute le reste du code. 

  • Com­men­taires : dans tous les langages de pro­gram­ma­tion courants, vous pouvez commenter les lignes du code. Cela permet d’écrire du texte dans le code source qui ne doit pas être pris en compte par le programme. Par exemple, vous saisissez des com­men­taires dans le code source pour que vous ou un autre dé­ve­lop­peur puissiez com­prendre certaines parties du code.

Il y a toujours un problème visé, lors de la création d’un code source. En effet les dé­ve­lop­peurs rédigent des pro­grammes pour apporter des solutions. Toutefois, la manière d’y parvenir n’est pas figée. Lorsque deux pro­gram­meurs traitent le même problème, il peut arriver que les deux codes sources soient très dif­fé­rents, même en tra­vail­lant avec le même langage. 

Même si dans de nombreux cas, il n’existe pas une seule solution correcte, toutes les tâches de pro­gram­ma­tion ont une chose en commun : un bon code source doit éviter le code inutile. En effet, cela rend le programme plus confus, plus lent et plus sujet aux erreurs. Le code source dif­fi­ci­le­ment com­pré­hen­sible, que même les pro­fes­sion­nels ne peuvent clai­re­ment dé­chif­frer est appelé code ou pro­gram­ma­tion spaghetti, car la structure est aussi dé­rou­tante que ce type de pâte sur une assiette (syndrome du plat de spa­ghet­tis).

Créer un code source

Pour écrire un code source, vous n’avez besoin que d’un simple éditeur de texte comme par exemple l’éditeur Bloc-notes (Notepad) sur Windows ou TextEdit sur Mac. De cette façon, le code source peut aussi être sau­ve­gardé sous forme de texte brut (par exemple dans le codage ASCII ou comme UTF-8) avec l’extension de nom de fichier cor­res­pon­dant au langage de pro­gram­ma­tion. Donc si vous trouvez un fichier avec l’extension  « .cpp » sur votre disque dur, il s’agit en fait d’un fichier texte, contenant pro­ba­ble­ment un code dans le langage de pro­gram­ma­tion C++.

Fait
les ex­ten­sions de nom de fichier sont des con­ven­tions. Le suffixe, qui est gé­né­ra­le­ment ajouté au nom du fichier, est séparé par un point, devrait indiquer le format du fichier. Windows reconnait grâce à l’extension du fichier, si cette dernière est connue, avec quel programme il doit exécuter le fichier cor­res­pon­dant. D’autres systèmes d’ex­ploi­ta­tion basés Unix (par exemple MacOs) prennent en compte le contenu du fichier pour dé­ter­mi­ner le format.

Editeur de texte

Outre les pro­grammes standards des systèmes d’ex­ploi­ta­tion, il existe aussi des éditeurs de texte étendus qui fa­ci­li­tent le travail avec le code source grâce à dif­fé­rentes fonctions :

  • Co­lo­ra­tion syn­taxique : chaque langage de pro­gram­ma­tion utilise sa propre syntaxe. Dans de nombreux éditeurs de texte, vous pouvez donc d’abord sé­lec­tion­ner le langage de pro­gram­ma­tion dans lequel vous souhaitez créer votre code source, puis le programme mettra au­to­ma­ti­que­ment en évidence les éléments es­sen­tiels. Le programme crée aussi des in­den­ta­tions, rendant la structure du code source plus claire. Le but de cette fonction est bien d’améliorer la li­si­bi­lité d’un code source

  • Le com­plè­te­ment au­to­ma­tique : de nombreux éditeurs de texte pour pro­gram­meurs con­nais­sent les commandes cor­res­pon­dantes d’un langage de pro­gram­ma­tion, ils com­plè­tent de manière au­to­ma­tique et ferment eux-mêmes les pa­ren­thèses ouvertes.

  • Pa­ren­thèses : les langages de pro­gram­ma­tion fonc­tion­nent avec des pa­ren­thèses pour grouper les dif­fé­rents éléments. Afin de garder un aperçu du fichier de code, certains éditeurs de texte marquent les pa­ren­thèses dans les­quelles vous tra­vail­lez ac­tuel­le­ment.

  • Pliage de code : dans la plupart des cas, le code source est hié­rar­chique, structuré par des in­den­ta­tions et des pa­ren­thèses. Pour vous donner une meilleure vue d’ensemble lors de la pro­gram­ma­tion, certains éditeur de texte vous per­met­tent de masquer des parties du texte ou les rem­pla­cent par une ligne des­crip­tive de son contenu. Ceci est par­ti­cu­liè­re­ment utile pour ceux qui doivent gérer de gros fichiers de code source.

  • In­té­gra­tion du com­pi­la­teur : certains éditeurs de texte peuvent aussi être mis à jour et être améliorés via des plugins pour y intégrer des com­pi­la­teurs. Ainsi cela permet de tester di­rec­te­ment la rédaction du programme.

  • Edition en mode colonne : rédiger un code source ma­nuel­le­ment peut être une tâche bien la­bo­rieuse. C’est pourquoi les dé­ve­lop­peurs sont heureux de pouvoir réaliser plusieurs étapes en même temps. L’édition en mode colonne permet d’effectuer des mo­di­fi­ca­tions iden­tiques sur plusieurs lignes et à plusieurs endroits du document, ce qui est un gain de temps non né­gli­geable.

En­vi­ron­ne­ment de dé­ve­lop­pe­ment intégré (IDE)

Des projets plus im­por­tants peuvent être réalisés plus fa­ci­le­ment via des pro­grammes spéciaux. Les en­vi­ron­ne­ments de dé­ve­lop­pe­ments intégrés (EDI), ou IDE en anglais, pour in­te­gra­ted de­ve­lop­ment en­vi­ron­ne­ment combinent plusieurs outils dont les dé­ve­lop­peurs ont besoin afin de tra­vail­ler et pour accélérer le processus de travail. Un autre avantage est que les outils contenus com­mu­ni­quent entre eux de manière trans­pa­rente et ef­fec­tuent des chan­ge­ments de manière syn­chrones. Gé­né­ra­le­ment, ces outils sont les suivants :

  • Editeur de texte : l’éditeur de texte est aussi le cœur des en­vi­ron­ne­ments de dé­ve­lop­pe­ment. Même si il y a peu de langages de pro­gram­ma­tion graphique qui fonc­tion­nent à travers l’as­sem­blage d’éléments gra­phiques, la majorité absolue des ap­pli­ca­tions sont écrites en utilisant un code source classique. Les éditeurs de texte qui font partie d’un IDE com­por­tant les fonctions si­mi­laires à celles des éditeurs de texte utilisées pour la pro­gram­ma­tion en dehors d’un en­vi­ron­ne­ment.
     
  • Com­pi­la­teur et in­ter­prète : les IDE com­por­tent également les com­pi­la­teurs et ou les in­ter­prètes. Cela permet ainsi aux pro­gram­meurs d’exécuter le code di­rec­te­ment depuis l’en­vi­ron­ne­ment.
     
  • Débogueur : l’uti­li­sa­tion d’un débogueur est es­sen­tielle pour un travail de pro­gram­ma­tion sensible, c’est pourquoi cet outil est un composant standard d’un en­vi­ron­ne­ment de dé­ve­lop­pe­ment intégré. Vous pouvez utiliser cet outil pour vérifier si votre code source ne contient pas d’erreurs (bogues) en utilisant des points d’arrêt pour in­ter­rompre le dé­rou­le­ment du programme et analyser les opé­ra­tions exécutées.
     
  • Linker, édition de liens : pour compléter un processus de com­pi­la­tion, dif­fé­rents éléments doivent être assemblés ensemble. Un « linker » ou éditeur de liens est un programme dont le rôle est de lier les fichiers compilés et de créer un fichier exé­cu­table.
     
  • Ges­tion­naire de versions : cet outil en­re­gistre toutes les mo­di­fi­ca­tions que vous apportez au code source et peut restaurer les anciennes versions du code. De cette manière, votre projet n’est pas en danger si vous réaliser ac­ci­den­tel­le­ment une erreur. La gestion des versions est aussi es­sen­tielle pour col­la­bo­rer avec plusieurs dé­ve­lop­peurs sur un même projet.
     
  • Cons­truc­teur d’interface graphique : de nom­breuses ap­pli­ca­tions incluent une interface uti­li­sa­teur graphique (GUI). Ceci doit également être défini selon le code source. Un cons­truc­teur d’interface graphique (GUI builder) assiste les dé­ve­lop­peurs dans la con­cep­tion de l’interface graphique. Sous la forme d’un éditeur WYSIWYG vous pouvez souvent organiser des éléments gra­phiques via le glisser-déposer. Le cons­truc­teur d’interface graphique traduit le contenu d’un IDE en fonction du langage de pro­gram­ma­tion.

Les exemples po­pu­laires d’en­vi­ron­ne­ments de dé­ve­lop­pe­ment intégrés sont l’open source Eclipse ou Visual Studio qui est un produit de Microsoft.

Code source pour les sites Internet.

Même pour la structure de base des pages Web, on parle gé­né­ra­le­ment de code source, sauf qu’il s’agit d’un document et non d’un programme. Les pages Web sont écrites dans le langage de balisage HTML. En général, il n’est pas rare que les pages Web con­tien­nent des éléments écrits en langage de pro­gram­ma­tion comme Ja­vaS­cript. Avec ces deux  langues, il est possible d’écrire dans des éditeurs de texte simples. Ainsi, un site Internet peut être en­tiè­re­ment écrit dans Editor ou avec TextEdit.

Même si vous n’êtes pas con­cep­teur de sites Web, il peut être tout de même in­té­res­sant d’examiner le code source d’une page sur Internet, par exemple pour détecter des éléments dé­fec­tueux. Tous les na­vi­ga­teurs courants offrent dif­fé­rentes façons de vi­sua­li­ser le code source d’un site Internet. Même si ils ont des noms dif­fé­rents, on retrouve les mêmes fonctions sur Mozilla Firefox, Internet Explorer (ou Microsoft Edge) et le na­vi­ga­teur Chrome de Google.

Une façon de rendre visible le code source d’une page Web est de l’en­re­gis­trer en tant que fichier HTML. Vous pouvez té­lé­char­ger la page en cliquant avec le bouton droit de la souris ou via le menu. Il est important de choisir « uni­que­ment HTML » comme type de fichier (si vous sau­ve­gar­dez la page Internet en entier, elle sera affichée telle qu’elle apparaît dans le na­vi­ga­teur, y compris toutes les images et sans voir les balises HTML). Vous pouvez ensuite ouvrir le fichier avec un éditeur de texte. Cependant, les éditeurs simples qui sont fournis par votre système d’ex­ploi­ta­tion pré­sen­tent pro­ba­ble­ment le code de manière très confuse. Avec un éditeur de texte qui comporte plus de fonc­tion­na­li­tés, il est possible d’afficher le code source de manière à faciliter sa lecture.

Mais même sans en­re­gis­trer la page, il est possible de voir le code source d’un site. Les na­vi­ga­teurs modernes proposent pour cela deux méthodes : soit afficher le code HTML de l’ensemble du site Web, soit afficher un outil d’analyse pour vous aider à examiner le code. La première variante diffère peu de l’affichage du fichier té­lé­chargé. Un nouvel onglet ou une nouvelle page s’ouvre et affiche le code source de manière struc­tu­rée avec la nu­mé­ro­ta­tion des lignes.

La seconde méthode est plus in­té­res­sante et offre davantage de fonctions : l’outil d’analyse se trouve dans le menu con­tex­tuel sous « Examine » avec Chrome ou « In­ves­ti­gate Element » avec Internet Explorer et Firefox. Cela ouvre une zone dans la fenêtre. Le code source s’affiche ici et des fonctions sont dis­po­nibles. La dif­fé­rence avec les autres méthodes est que dans cet outil, en déplaçant le pointeur de la souris sur le code source, il est possible de sé­lec­tion­ner di­rec­te­ment les éléments cor­res­pon­dants sur la page Web. Cela signifie donc que l’outil indique a quelle partie, la ligne de code est affectée. Ceci est aussi utilisé par les pro­fes­sion­nels du Web design pour vérifier l’apparence des sites Web notamment.

Conseil
vous pouvez ouvrir de dif­fé­rentes manières la fonction « Examine ». En plus du menu con­tex­tuel via le clic droit de la souris, la touche F12 fonc­tionne aussi avec les na­vi­ga­teurs habituels.

Propriété in­tel­lec­tuelle et code source

Un code source re­pré­sente beaucoup de travail et de créa­ti­vité. Par con­sé­quent, le code source d’un programme est protégé par le droit d’auteur. Ainsi comme pour toute œuvre protégée par le droit de propriété in­tel­lec­tuelle, il n’est pas permis de dis­tri­buer ou de plagier un code source sans au­to­ri­sa­tion. Ceci est notamment valable pour les logiciels pro­prié­taires. La situation est dif­fé­rente avec les pro­grammes open source. Surtout dans le domaine du dé­ve­lop­pe­ment de logiciels, il existe une com­mu­nauté open source très active, dans laquelle le code source est beaucoup plus librement manipulé. Ainsi le but pour ces dé­ve­lop­peurs est de tra­vail­ler ensemble sur des projets et de dé­ve­lop­per ou d’améliorer des logiciels à long terme. Avec GitHub, Sour­ce­Fo­rige ou d’autres pla­te­formes si­mi­laires, les dé­ve­lop­peurs mettent gra­tui­te­ment le code source à dis­po­si­tion d’autres pro­gram­meurs. Cependant, ces derniers doivent gé­né­ra­le­ment respecter certaines con­di­tions comme par exemple nommer l’auteur et faire ap­pa­raitre la licence s’ils sou­hai­tent utiliser le code.

Aller au menu principal