Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. WeltenzyklopÀdie
  2. Programmation informatique
Programmation informatique 👆 Click Here! Read More..
Un article de Wikipédia, l'encyclopédie libre.
(Redirigé depuis Programmation)
Page d’aide sur les redirections

« Programmation Â» redirige ici. Pour les autres significations, voir Programmation (homonymie).

Liste d'instructions sur le Commodore 64.

La programmation informatique dĂ©signe l’ensemble des activitĂ©s liĂ©es Ă  la conception, l’écriture, le test et la maintenance de programmes informatiques Ă  l’aide de langages de programmation. CompĂ©tence centrale de l’ingĂ©nierie contemporaine, elle intervient dans le dĂ©veloppement de logiciels, d’applications, de systĂšmes d’exploitation et de dispositifs numĂ©riques au cƓur de tous les secteurs de la sociĂ©tĂ©.

L'Ă©criture d'un programme se fait dans un langage de programmation. Un logiciel est un ensemble de programmes (qui peuvent ĂȘtre Ă©crits dans des langages de programmation diffĂ©rents) destinĂ© Ă  la rĂ©alisation de certaines tĂąches par un (ou plusieurs) utilisateurs du logiciel.

La programmation représente donc ici la rédaction du code source d'un logiciel. On utilise plutÎt le terme développement pour dénoter l'ensemble des activités liées à la création d'un logiciel et des programmes qui le composent. Cela inclut la spécification du logiciel, sa conception, puis son implémentation proprement dite au sens de l'écriture des programmes dans un langage de programmation bien défini, ainsi que la vérification de sa correction, etc.

Longtemps perçue comme un simple instrument technique, la programmation est dĂ©sormais reconnue comme une pratique culturellement et socialement signifiante. Elle façonne nos usages numĂ©riques, nos modes de communication et jusqu’à nos structures sociales et Ă©conomiques. Des chercheurs comme Lev Manovich[1] ou Shoshana Zuboff[2] ont mis en lumiĂšre le rĂŽle structurant du logiciel dans notre culture numĂ©rique contemporaine et les rapports de pouvoir qui en Ă©mergent.

La programmation n’est pas neutre : elle implique des choix techniques et Ă©thiques pouvant renforcer ou attĂ©nuer des biais algorithmiques, comme l’ont montrĂ© Joy Buolamwini et Timnit Gebru dans l’étude Gender Shades[3]. Elle est aussi au cƓur des dĂ©bats sur l’inclusion dans les mĂ©tiers du numĂ©rique, documentĂ©s notamment par Mar Hicks[4] ou Janet Abbate[5].

Enfin, elle s’inscrit dans des dynamiques sociales vivantes : communautĂ©s open source, plateformes coopĂ©ratives comme GitHub, ou initiatives Ă©ducatives visant Ă  dĂ©mocratiser l’apprentissage du code. L’anthropologue Gabriella Coleman[6] y voit une Ă©thique du partage et de la libertĂ© façonnĂ©e par les dĂ©veloppeurs eux-mĂȘmes.

Histoire

[modifier | modifier le code]
Article dĂ©taillĂ© : Histoire de l'informatique.

La premiĂšre machine programmable (c’est-Ă -dire machine dont les possibilitĂ©s changent quand on modifie son programme) est probablement le mĂ©tier Ă  tisser de Jacquard, qui a Ă©tĂ© rĂ©alisĂ© en 1801. La machine utilisait une suite de cartons perforĂ©s. Les trous indiquaient le motif que le mĂ©tier suivait pour rĂ©aliser un tissage ; avec des cartes diffĂ©rentes le mĂ©tier produisait des tissages diffĂ©rents[7]. Cette innovation a Ă©tĂ© ensuite amĂ©liorĂ©e par Herman Hollerith d'IBM pour le dĂ©veloppement de la fameuse carte perforĂ©e d'IBM[8].

En 1937, la publication de l'article fondateur de la science informatique On Computable Numbers with an Application to the Entscheidungsproblem[9] par Alan Turing allait donner le coup d'envoi à la création de l'ordinateur programmable. Il y présente sa machine de Turing, le premier calculateur universel programmable, et invente les concepts et les termes de programmation et de programme.

Les premiers programmes d'ordinateur Ă©taient rĂ©alisĂ©s avec un fer Ă  souder et un grand nombre de tubes Ă  vide (plus tard, des transistors). Les programmes devenant plus complexes, cela est devenu presque impossible, parce qu'une seule erreur rendait le programme entier inutilisable. Avec les progrĂšs des supports de donnĂ©es, il devint possible de charger le programme Ă  partir de cartes perforĂ©es, contenant la liste des instructions en code binaire spĂ©cifique Ă  un type d'ordinateur particulier. La puissance des ordinateurs augmentant, on les utilisa pour faire les programmes, les programmeurs prĂ©fĂ©rant naturellement rĂ©diger du texte plutĂŽt que des suites de 0 et de 1, Ă  charge pour l'ordinateur d'en faire la traduction lui-mĂȘme.

Les origines de la programmation informatique remontent bien avant l’ùre contemporaine des algorithmes. Le premier algorithme qui fut Ă©crit pour une machine a Ă©tĂ© Ă©crit par Ada Lovelace en 1843 pour la machine analytique de Charles Babbage. Elle est aujourd’hui considĂ©rĂ©e comme la premiĂšre programmeuse de l’histoire. Dans le XXe siĂšcle, au cours de la Seconde Guerre mondiale, la programmation prend une forme plus concrĂšte et appliquĂ©e. Un des meilleurs exemples est celui des programmeuses de l'ENIAC, un groupe composĂ© de six femmes qui furent chargĂ©es de la programmation du premier ordinateur Ă©lectronique Ă  usage gĂ©nĂ©ral. Alors que leur rĂŽle a Ă©tĂ© longtemps nĂ©gligĂ©, des Ă©tudes telles que celles de Janet Abbate[5] ou de Mar Hicks[4] ont permis de redĂ©couvrir le rĂŽle moteur jouĂ© par les femmes dans les origines de l'informatique. Jusque dans les annĂ©es 1960, la programmation Ă©tait gĂ©nĂ©ralement considĂ©rĂ©e comme une activitĂ© administrative ou secondaire, dominĂ©e par les femmes. À mesure que la programmation gagnait en prestige, les femmes en ont Ă©tĂ© progressivement Ă©cartĂ©es. Mar Hicks[4] montre comment, au Royaume-Uni, la profession a Ă©tĂ© dĂ©libĂ©rĂ©ment masculinisĂ©e, Ă©cartant les femmes au profit d'une vision technocratique et Ă©litiste de l'informatique. Les annĂ©es 1970 et 1980 ont vu l'Ă©mergence des premiers langages structurĂ©s (tels que C ou Pascal) et de paradigmes de programmation tels que la programmation orientĂ©e objet. Cette pĂ©riode marque aussi l’essor des communs numĂ©riques, avec le dĂ©but du mouvement open source, qui deviendra central dans les annĂ©es 1990. Le travail de Christopher Kelty[10] et Gabriella Coleman[6] met en lumiĂšre l'importance socioculturelle des communautĂ©s de dĂ©veloppeurs dans cette pĂ©riode de transition.

Avec le temps, de nouveaux langages de programmation sont apparus, faisant de plus en plus abstraction du matĂ©riel sur lequel devraient tourner les programmes. Ceci apporte plusieurs facteurs de gain : ces langages sont plus faciles Ă  apprendre, un programmeur peut produire du code plus rapidement, et les programmes produits peuvent tourner sur diffĂ©rents types de machines.

Enfin, Ă  partir des annĂ©es 2010, les rĂ©flexions Ă©thiques sur les algorithmes et l'intelligence artificielle sont devenues centrales. Des chercheuses comme Joy Buolamwini et Timnit Gebru ont dĂ©montrĂ©, dans l'Ă©tude Gender Shades[3], que certains systĂšmes d'IA prĂ©sentaient des biais importants envers les femmes et les personnes racisĂ©es. Cette conscience a reprĂ©sentĂ© un nouveau repĂšre dans l'histoire de la programmation : celui de la responsabilisation des codeurs et de la prise en compte de l'impact social de leurs Ɠuvres.

Différents langages de programmation

[modifier | modifier le code]
  1. JavaScript
  2. PHP
  3. Ruby
  4. Java
  5. Swift
  6. C#, C ou C++
  7. Python
  8. Julia
  9. Scala
  10. Rust

Exemple de programme

[modifier | modifier le code]

L'immense majoritĂ© des programmes qui s'exĂ©cutent sur nos ordinateurs, tĂ©lĂ©phones et autres outils Ă©lectroniques sont Ă©crits dans des langages de programmation dits impĂ©ratifs : les lignes du programme sont exĂ©cutĂ©es les unes aprĂšs les autres. Chaque ligne du programme effectue soit une opĂ©ration simple, soit exĂ©cute une fonction qui est elle-mĂȘme une suite d'opĂ©rations simples.

Le programme « Hello World! Â» est par tradition le premier programme Ă©crit par tout programmeur, censĂ© illustrer la syntaxe du langage de programmation. Le programme a pour unique fonction d'afficher le texte "Hello World!" dans la console ou dans une fenĂȘtre de l'interface graphique.

Voici une version d'un programme « Hello World! Â»:

Affichage d'un programme « Hello World! Â»

Le programme suivant écrit en langage simplifié et avec des commentaires, demande simplement à l'utilisateur d'entrer au clavier deux nombres entiers, et affiche leur quotient.

void main() { // fonction 'main' : c'est toujours ici qu'un programme commence
    // 'int' signifie integer : nombre entier en anglais
    int A, B; // on déclare deux variables A et B qui sont des nombres entiers
    WriteLine("entrez deux entiers : "); // 'WriteLine' permet d'Ă©crire Ă  l'Ă©cran
    A = ReadIntFromKeyboard(); // on attend que l'utilisateur tape un entier au clavier,
                               // et on l'enregistre dans A
    B = ReadIntFromKeyboard(); // puis on fait la mĂȘme chose pour B
    if (B == 0) {  // si B est égal à 0
        WriteLine("erreur : division par zĂ©ro");
    } else { // sinon
        float C = CalculerDivision(A,B); // on exécute la fonction 'CalculerDivision'
            // que l'on a programmée ci-dessous,
            // et on enregistre le rĂ©sultat dans C qui est un 'float' : un nombre Ă  virgule
        WriteLine("le rĂ©sultat est : " + C); // on affiche C
    }
}
float CalculerDivision(float U, float V) { // U et V sont les paramĂštres de notre fonction 'CalculerDivision' : ce sont des nombres Ă  virgules (float).
   // et celle-ci renvoie un 'float' : un nombre Ă  virgule flottante
   // dans la fonction 'main', A et B étaient des nombres entiers,
   // U et V sont des copies des valeurs de A et B,
   // et qui ont été converties en nombres à virgule (22 deviendrait simplement 22.0000000)
   float Resultat;
   Resultat = U / V;  // on effectue la division
   return Resultat; /// on renvoie le résultat
}

Dans ce programme, les principales fonctionnalitĂ©s de la programmation impĂ©rative sont utilisĂ©es : des variables de type nombre entier, nombre Ă  virgule, chaĂźne de caractĂšres, fonction calculant un rĂ©sultat Ă  partir de paramĂštres, fonction effectuant une tĂąche telle qu'afficher un message Ă  l'Ă©cran, instruction if permettant d'exĂ©cuter un code ou un autre en fonction de la valeur de telle ou telle variable.

Dans un programme informatique typique, on trouvera suivant les langages des boucles while ou for qui permettent d'exécuter un morceau de code en boucle ou simplement un certain nombre de fois, des new pour l'allocation dynamique de données (par exemple des tableaux), et trÚs souvent des éléments de programmation objet permettant de structurer différemment le code et de créer des types de données personnalisés, ou encore des exceptions pour gérer certains cas d'erreurs plus facilement.

On remarque que pour effectuer une tĂąche trĂšs simple, le code informatique peut ĂȘtre trĂšs laborieux, et encore ici on ne traite pas les erreurs (si l'utilisateur tape un mot au lieu d'un nombre), et l'affichage est minimaliste. C'est pourquoi les langages de programmation n'ont jamais cessĂ© d'Ă©voluer, dans le but d'aider le programmeur qui souhaite rĂ©aliser des programmes rapides Ă  s'exĂ©cuter, sans dysfonctionnements, et surtout simples Ă  Ă©crire, du moins le plus possible.

Développement Logiciel

[modifier | modifier le code]

Il est aussi focalisĂ© sur le rĂŽle des communautĂ©s en ligne (Stack Overflow, Reddit, forums d'utilisateurs spĂ©cialisĂ©s). Elles favorisent l’entraide, la transmission du savoir et la construction d’une culture professionnelle partagĂ©e. Selon Gabriella Coleman[6], ces communautĂ©s bĂątissent une Ă©thique propre aux dĂ©veloppeurs, centrĂ©e sur l'autonomie, la transparence et la crĂ©ation libre. Le dĂ©veloppement logiciel est Ă©galement influencĂ© par des enjeux sociaux et culturels. Les pratiques de dĂ©veloppement sont souvent le reflet de relations de pouvoir, de normes implicites ou d'exclusions : par exemple, la sous-reprĂ©sentation des femmes et des minoritĂ©s dans les Ă©quipes de dĂ©veloppement est un problĂšme structurel, attestĂ© entre autres par Mar Hicks[4]. Des initiatives telles que les programmes de diversitĂ© dans la tech ou les projets d'inclusion open source cherchent Ă  diminuer ces Ă©carts.

Aspects sociaux et culturels

[modifier | modifier le code]

Bien que souvent perçue comme une activitĂ© purement technique, la programmation informatique s’inscrit dans des dynamiques sociales, culturelles, Ă©conomiques et politiques complexes. Elle influence la sociĂ©tĂ© tout autant qu’elle en est le produit. Plusieurs courants en sciences humaines et sociales, tels que les sciences and technology studies (STS), les humanitĂ©s numĂ©riques ou la sociologie de l’informatique, permettent de mieux comprendre ces dimensions.

1. Évolution sociale du mĂ©tier et inclusion Historiquement, la programmation a tout d'abord Ă©tĂ© un travail fĂ©minisĂ©, avant d'ĂȘtre Ă  la majoritĂ© masculine Ă  partir du moment oĂč son prestige est devenu important. Mar Hicks[4], dĂ©crit la maniĂšre selon laquelle les femmes ont lentement Ă©tĂ© effacĂ©es de leur carriĂšre informatique au Royaume-Uni. Janet Abbate[5], trace Ă©galement le processus dans l'Ă©mergence du rĂŽle des femmes dans l'avĂšnement des premiers programmes aux États-Unis.

2. Biais Ă©thiques et algorithmiques Les logiciels ne sont pas neutres : dĂ©cisions prises lors de leur conception peuvent entraĂźner des formes de discrimination. Quelques Ă©tudes, comme Gender Shades[3], ont dĂ©montrĂ© que les systĂšmes faciaux de reconnaissance Ă©taient bien moins prĂ©cis sur les femmes et les personnes racisĂ©es. Cathy O'Neil[11], met en lumiĂšre qu'ils ont la capacitĂ© d'exacerber les inĂ©galitĂ©s sociales.

3. Open source communautĂ©s et apprentissage collectif La programmation est aussi inscrite dans des dynamiques communautaires. Des millions de dĂ©veloppeurs partagent des savoirs, collaborent Ă  des projets collectifs et rĂ©duisent des standards sur des plateformes comme GitHub, Stack Overflow ou Reddit. Gabriella Coleman, dans Coding Freedom (2013)[6], dĂ©crivant ces communautĂ©s, les dĂ©crit comme des lieux oĂč se forgent des identitĂ©s, des valeurs Ă©thiques et des formes de rĂ©sistance Ă  l'Ă©conomie propriĂ©taire.

4. Platform power and digital capitalism Les grandes entreprises du numérique dominent de plus en plus les activités logicielles. Shoshana Zuboff décrit dans The Age of Surveillance Capitalism[2] comment ces acteurs utilisent les informations personnelles dans des espaces logiciels diffusés partout. Nick Srnicek explore dans Platform Capitalism[12] les régimes économiques basés sur l'exploitation algorithmique.

5. Programmation et culture digitale Le code est également un vecteur culturel employé dans l'art génératif, le design interactif ou la musique numérique. Lev Manovich, dans Software Takes Command[1], propose une lecture de la culture contemporaine modelée par les logiciels. Casey Reas et Ben Fry, programmeurs de "Processing: A Programming Handbook for Visual Designers and Artists"[13], ont démocratisé le code en outil artistique.

Phases

[modifier | modifier le code]
Cette section ne cite pas suffisamment ses sources (mai 2025). 
Pour l'amĂ©liorer, ajoutez des rĂ©fĂ©rences de qualitĂ© et vĂ©rifiables (comment faire ?) ou le modĂšle {{RĂ©fĂ©rence nĂ©cessaire}} sur les passages nĂ©cessitant une source.

Conception

[modifier | modifier le code]
Articles dĂ©taillĂ©s : Conception de logiciel et Algorithmique.

La phase de conception dĂ©finit le but du programme. Si on fait une rapide analyse fonctionnelle d'un programme, on dĂ©termine essentiellement les donnĂ©es qu'il va traiter (donnĂ©es d'entrĂ©e), la mĂ©thode employĂ©e (appelĂ©e l'algorithme), et le rĂ©sultat (donnĂ©es de sortie). Les donnĂ©es d'entrĂ©e et de sortie peuvent ĂȘtre de nature trĂšs diverse. On peut dĂ©crire la mĂ©thode employĂ©e pour accomplir le but d'un programme Ă  l'aide d'un algorithme. La programmation procĂ©durale et fonctionnelle est basĂ©e sur l'algorithmique. On retrouve en gĂ©nĂ©ral les mĂȘmes fonctionnalitĂ©s de base. On peut donc considĂ©rer que la programmation est le processus de traduction d'un algorithmique en un programme qui exĂ©cute cet algorithmique. Il existe deux mĂ©thodes principales pour concevoir un programme. La conception algorithmique consiste Ă  construire le programme autour de l'algorithme qui est censĂ© permettre d'obtenir le bon rĂ©sultat. La conception procĂ©durale consiste Ă  trouver une suite d'actions Ă  rĂ©aliser pour arriver au but. La conception procĂ©durale est la plus utilisĂ©e. Lorsque le but est connu et que la mĂ©thode pour arriver au but est claire, on entre dans la conception dĂ©taillĂ©e. La conception dĂ©taillĂ©e est la spĂ©cification des donnĂ©es d'entrĂ©e, du rĂ©sultat Ă  obtenir, et l'algorithme avec toutes les instructions nĂ©cessaires.

Programmation impérative

[modifier | modifier le code]
Article dĂ©taillĂ© : Programmation impĂ©rative.
"Si"
Si prédicat
Alors faire ceci
Sinon faire cela
"Tant que"
Tant que prédicat
Faire ...
"Pour"
Pour variable allant de borne inférieure à borne supérieure
Faire ...
"Pour" (variante)
Pour variable dans conteneur
faire ...

Implémentation

[modifier | modifier le code]
Article dĂ©taillĂ© : Langage de programmation.

Une fois l'algorithme dĂ©fini, l'Ă©tape suivante est de coder le programme. Le codage dĂ©pend de l'architecture sur laquelle va s'exĂ©cuter le programme, de compromis temps-mĂ©moire, et d'autres contraintes. Ces contraintes vont dĂ©terminer quel langage de programmation utiliser pour « convertir Â» l'algorithme en code source.

Transformation du code source

[modifier | modifier le code]

Le code source n'est (presque) jamais utilisable tel quel. Il est généralement écrit dans un langage "de haut niveau", compréhensible pour l'homme, mais pas pour la machine.

Compilation

[modifier | modifier le code]
Articles dĂ©taillĂ©s : Compilation (informatique) et Machine virtuelle.

Certains langages sont ce qu'on appelle des langages compilés. En toute généralité, la compilation est l'opération qui consiste à transformer un langage source en un langage cible. Dans le cas d'un programme, le compilateur va transformer tout le texte représentant le code source du programme, en code compréhensible pour la machine, appelé code machine.

Dans le cas de langages dits compilĂ©s, ce qui est exĂ©cutĂ© est le rĂ©sultat de la compilation. Une fois effectuĂ©e, l'exĂ©cutable obtenu peut ĂȘtre utilisĂ© sans le code source.

Il faut Ă©galement noter que le rĂ©sultat de la compilation n'est pas forcĂ©ment du code machine correspondant Ă  la machine rĂ©elle, mais peut ĂȘtre du code compris par une machine virtuelle (c'est-Ă -dire un programme simulant une machine), auquel cas on parlera de bytecode. C'est par exemple le cas en Java. L'avantage est que, de cette façon, un programme peut fonctionner sur n'importe quelle machine rĂ©elle, du moment que la machine virtuelle existe pour celle-ci.

Dans le cas d'une requĂȘte SQL, la requĂȘte est compilĂ©e en une expression utilisant les opĂ©rateurs de l'algĂšbre relationnelle. C'est cette expression qui est Ă©valuĂ©e par le systĂšme de gestion de bases de donnĂ©es.

Interprétation

[modifier | modifier le code]
Article dĂ©taillĂ© : InterprĂ©tation.

D'autres langages ne nĂ©cessitent pas de phase spĂ©ciale de compilation. La mĂ©thode employĂ©e pour exĂ©cuter le programme est alors diffĂ©rente. La phase de compilation est la plupart du temps incluse dans celle d’exĂ©cution. On dit de ce programme qu'il interprĂšte le code source. Par exemple, Python ou Perl sont des langages interprĂ©tĂ©s.

Avantages, inconvénients

[modifier | modifier le code]

Les avantages gĂ©nĂ©ralement retenus pour l'utilisation de langages « compilĂ©s Â», est qu'ils sont plus rapides Ă  l'exĂ©cution que des langages interprĂ©tĂ©s, car l'interprĂšte doit ĂȘtre lancĂ© Ă  chaque exĂ©cution du programme, ce qui mobilise systĂ©matiquement les ressources.

Traditionnellement, les langages interprĂ©tĂ©s offrent en revanche une certaine portabilitĂ© (la capacitĂ© Ă  utiliser le code source sur diffĂ©rentes plates-formes), ainsi qu'une facilitĂ© pour l'Ă©criture du code. En effet, il n'est pas nĂ©cessaire de passer par la phase de compilation pour tester le code source. Il n'est pas non plus nĂ©cessaire de disposer d'un autre programme (debugger) afin d’îter les bugs du programme, c'est l’interprĂ©teur qui permet d'afficher directement le contenu des variables du programme.

Appellation impropre

[modifier | modifier le code]

Il faut noter qu'on parle abusivement de langages compilĂ©s ou interprĂ©tĂ©s. En effet, le caractĂšre compilĂ© ou interprĂ©tĂ© ne dĂ©pend pas du langage, qui n'est finalement qu'une grammaire et une certaine sĂ©mantique. D'ailleurs, certains langages peuvent ĂȘtre utilisĂ©s interprĂ©tĂ©s ou compilĂ©s. Par exemple, il est trĂšs courant d'utiliser Ruby avec un interprĂšte, mais il existe Ă©galement des compilateurs pour ce langage[14]. On notera toutefois, qu'il peut ĂȘtre important de prĂ©ciser comment le code source est exĂ©cutĂ©. En effet, rares sont les organismes qui proposent Ă  la fois un compilateur et un interprĂ©teur, les rĂ©sultats du programme peuvent diffĂ©rer Ă  l'exĂ©cution, mĂȘme si la norme du langage est clairement dĂ©finie.

Néanmoins, l'usage qu'on fait des langages est généralement fixé.

Test du programme

[modifier | modifier le code]
Article dĂ©taillĂ© : Test (informatique).

C'est l'une des Ă©tapes les plus importantes de la crĂ©ation d'un programme. En principe, tout programmeur se doit de vĂ©rifier chaque partie d'un programme, de le tester. Il existe diffĂ©rents types de test. On peut citer en particulier :

  • Test unitaire
  • Test d'intĂ©gration
  • Test de performance

Il convient de noter qu'il est parfois possible de vérifier un programme informatique, c'est-à-dire prouver, de maniÚre plus ou moins automatique, qu'il assure certaines propriétés.

Pratiques

[modifier | modifier le code]
  • Algorithmique
  • Gestion de versions
  • Optimisation de code
  • Programmation systĂšme
  • Refactoring
  • Test d'intĂ©gration
  • Test unitaire

Paradigmes

[modifier | modifier le code]
Article dĂ©taillĂ© : Paradigme (programmation).

Un paradigme est un style fondamental de programmation, dĂ©finissant la maniĂšre dont les programmes doivent ĂȘtre formulĂ©s.

Un paradigme est la façon dont sont traitĂ©es les solutions aux problĂšmes et un style fondamental de programmation, dĂ©finissant la maniĂšre dont les programmes doivent ĂȘtre formulĂ©s. Chaque paradigme amĂšne sa philosophie de la programmation ; une fois qu'une solution a Ă©tĂ© imaginĂ©e par un programmeur selon un certain paradigme, un langage de programmation qui suit ce paradigme permettra de l'exprimer.

Programmation impérative

[modifier | modifier le code]
Article dĂ©taillĂ© : Programmation impĂ©rative.

Le paradigme impĂ©ratif est le plus rĂ©pandu, les opĂ©rations sont une suite d’instructions exĂ©cutĂ©es par l'ordinateur pour modifier l'Ă©tat du programme.

Programmation procédurale

[modifier | modifier le code]
Article dĂ©taillĂ© : Programmation procĂ©durale.

La programmation procĂ©durale est un sous-ensemble de la programmation impĂ©rative. Elle introduit la notion de routine ou fonction qui est une sorte de factorisation de code, chaque procĂ©dure peut ĂȘtre appelĂ©e Ă  n’importe quelle Ă©tape du programme. Ce paradigme permet aussi de supprimer les instructions goto[15],[16],[17]

Ce paradigme est trÚs répandu, il est présent dans des langages comme le C, le COBOL ou le FORTRAN.

Programmation structurée

[modifier | modifier le code]
Article dĂ©taillĂ© : Programmation structurĂ©e.

Apparue dans les annĂ©es 70, la programmation structurĂ©e est un sous-ensemble de la programmation impĂ©rative. Elle est nĂ©e avec les travaux de Nicklaus Wirth pour son Algol W et l'article fondateur de Dijkstra dans Communications of the ACM, visant Ă  supprimer l’instruction goto.

Tous les langages procĂ©duraux peuvent faire de la programmation structurĂ©e, mais certains comme le FORTRAN s'y prĂȘtent trĂšs mal.

Programmation déclarative

[modifier | modifier le code]
Article dĂ©taillĂ© : Programmation dĂ©clarative.

En programmation dĂ©clarative, le programme est indĂ©pendant de l’état de la machine, il s’affranchit donc de tout effet de bord et un appel Ă  une mĂȘme fonction produira toujours le mĂȘme rĂ©sultat.

Le programme s’écrit non pas comme une suite d’instruction pour rĂ©soudre un problĂšme mais (contrairement Ă  la programmation impĂ©rative) comme la solution au problĂšme.

Programmation fonctionnelle

[modifier | modifier le code]
Article dĂ©taillĂ© : Programmation fonctionnelle.

La programmation fonctionnelle se base sur plusieurs principes comme : l’immutabilitĂ©, les fonctions pures (qui ne dĂ©pendent pas de l’état de la machine) et les lambda-calcul.

Aujourd’hui, nombreux sont les langages qui offrent une approche fonctionnelle au programmeur. Certains comme LISP ou Scala sont intrinsĂšquement fonctionnels. D’autres comme JavaScript, Java ou PHP ont ajoutĂ© cette possibilitĂ© par la suite.

Programmation logique

[modifier | modifier le code]
Article dĂ©taillĂ© : Programmation logique.

La programmation logique consiste Ă  exprimer les problĂšmes et les algorithmes sous forme de prĂ©dicats Ă  l’aide d'une base de faits, d'une base de rĂšgles et d'un moteur d'infĂ©rence.

Programmation orientée objet

[modifier | modifier le code]
Article dĂ©taillĂ© : Programmation orientĂ©e objet.

La programmation orientĂ©e objet (abrĂ©gĂ© POO) consiste en la dĂ©finition et l'interaction de briques logicielles appelĂ©es objets ; ces objets reprĂ©sentent un concept, une idĂ©e. Chaque objet contient des attributs et des mĂ©thodes en rapport avec un sujet.

Programmation orientée prototype

[modifier | modifier le code]
Article dĂ©taillĂ© : Programmation orientĂ©e prototype.

La programmation orientĂ©e prototype est un sous ensemble de la programmation orientĂ©e objet. Dans ce paradigme, chaque objet est créé Ă  partir d’un prototype qui est lui-mĂȘme un objet. Le prototype a donc une existence physique en mĂ©moire et est mutable contrairement aux classes.

Le JavaScript, le Lua ou le Self sont des exemples de langages utilisant ce paradigme.

Programmation orientée classe

[modifier | modifier le code]

La programmation orientĂ©e classe est basĂ©e sur la notion de classes. Une classe est statique, c’est la reprĂ©sentation abstraite de l’objet, c’est Ă  ce niveau que se passe l’hĂ©ritage. Tout objet est donc l’instance d’une classe.

Les langages Ă  classes peuvent ĂȘtre sous forme fonctionnelle (CLOS) comme sous forme impĂ©rative (C++, Java), voir les deux (Python, OCaml).

Autres paradigmes

[modifier | modifier le code]
  • Programmation concurrente
  • Programmation orientĂ©e aspect
  • Programmation orientĂ©e composant
  • Programmation par contrat
  • Programmation par contraintes
  • Programmation par intention
  • Programmation rĂ©active

Notes et références

[modifier | modifier le code]
  1. ↑ a et b Lev Manovich, Software Takes Command, Bloomsbury Academic, 2013, 272 p. (ISBN 9781623566722, lire en ligne).
  2. ↑ a et b Shoshana Zuboff, The Age of Surveillance Capitalism, PublicAffairs, 2019, 704 p. (ISBN 9781610395700, lire en ligne).
  3. ↑ a b et c Joy Buolamwini et Timnit Gebru, « Gender Shades: Intersectional Accuracy Disparities in Commercial Gender Classification Â», Conference on Fairness, Accountability and Transparency,‎ 2018 (lire en ligne).
  4. ↑ a b c d et e Mar Hicks, Programmed Inequality: How Britain Discarded Women Technologists and Lost Its Edge in Computing, MIT Press, 2018, 352 p. (ISBN 9780262535182, lire en ligne).
  5. ↑ a b et c Janet Abbate, Recoding Gender: Women’s Changing Participation in Computing, MIT Press, 2012, 264 p. (ISBN 9780262018067, lire en ligne).
  6. ↑ a b c et d Gabriella Coleman, Coding Freedom: The Ethics and Aesthetics of Hacking, Princeton University Press, 2013, 268 p. (ISBN 9780691144610, lire en ligne).
  7. ↑ « ModĂšle : MĂ©tier original de Jacquard Â», sur MusĂ©e des arts et mĂ©tiers (consultĂ© le 20 dĂ©cembre 2020).
  8. ↑ (en-US) « IBM100 - The IBM Punched Card Â», sur www-03.ibm.com, 7 mars 2012 (consultĂ© le 20 dĂ©cembre 2020).
  9. ↑ (en) Alan Turing, On Computable Numbers, with an Application to the Entscheidungsproblem : Proceedings of the London Mathematical Society, London Mathematical Society, 1937 (DOI 10.1112/PLMS/S2-42.1.230, lire en ligne) et « [idem] : A Correction Â», Proc. London Math. Soc., 2e sĂ©rie, vol. 43,‎ 1938, p. 544-546 (DOI 10.1112/plms/s2-43.6.544, lire en ligne).
  10. ↑ Christopher Kelty, Two Bits: The Cultural Significance of Free Software, Duke University Press, 2008, 400 p. (ISBN 9780822342649, lire en ligne).
  11. ↑ Cathy O’Neil, Weapons of Math Destruction: How Big Data Increases Inequality and Threatens Democracy, Crown Publishing Group, 2016, 259 p. (ISBN 9780553418811, lire en ligne).
  12. ↑ Nick Srnicek, Platform Capitalism, Polity Press, 2017, 120 p. (ISBN 9781509504879, lire en ligne).
  13. ↑ Casey Reas et Ben Fry, Processing: A Programming Handbook for Visual Designers and Artists, MIT Press, 2007, 720 p. (ISBN 9780262028288, lire en ligne).
  14. ↑ (en) XRuby.
  15. ↑ Texte original dans E. W Dijkstra, « Go To Statement Considered Harmful Â», Communications of the ACM, vol. 11, no 3,‎ mars 1968, p. 147-14 (lire en ligne).
  16. ↑ « Go To Statement Considered Harmful Â» [PDF], sur University of Texas.
  17. ↑ « Programmation procĂ©durale Â», sur www.enib.fr (consultĂ© le 18 mars 2022).

Voir aussi

[modifier | modifier le code]

Sur les autres projets Wikimedia :

  • Programmation informatique, sur Wikiversity
  • Programmation informatique, sur Wikibooks

Articles connexes

[modifier | modifier le code]
  • Économie d'Ă©nergie d'un programme informatique
  • Paradigme (programmation)
  • Style de programmation
  • Chronologie des langages de programmation
  • Liste de langages de programmation
  • Programmation web
  • Forme de Backus-Naur (BNF), une grammaire de description de langage
  • Google Code Jam, un concours international annuel de programmation trĂšs prisĂ© des mordus d'algorithmique et de programmation
  • Kata (programmation)
  • Éditeur de texte
  • Code crĂ©atif

Liens externes

[modifier | modifier le code]
  • Notices d'autoritĂ©Voir et modifier les donnĂ©es sur Wikidata :
    • BnF (donnĂ©es)
    • LCCN
    • GND
    • Japon
    • Espagne
    • IsraĂ«l
    • TchĂ©quie
    • Lettonie
  • Notices dans des dictionnaires ou encyclopĂ©dies gĂ©nĂ©ralistesVoir et modifier les donnĂ©es sur Wikidata :
    • Den Store Danske EncyklopĂŠdi
    • Enciclopedia De Agostini
    • Store norske leksikon
    • Universalis
  • Ressource relative Ă  l'audiovisuelVoir et modifier les donnĂ©es sur Wikidata :
    • France 24
v Â· m
Langages de programmation
Concurrents
  • Ada
  • Erlang
  • Go
  • Modula-2
Déclaratifs
  • Clips
  • Prolog
  • Mercury
Fonctionnels
  • Clojure
  • Common Lisp
  • Erlang
  • F#
  • Gallina
  • Haskell
  • Lisp
  • ML
  • OCaml
  • Opa
  • Scheme
  • Standard ML
Impératifs
  • Algol
  • APL
  • Assembleur
  • Basic
  • BCPL
  • C
  • Cobol
  • DOPE
  • Forth
  • Fortran
  • Julia
  • Limbo
  • Lua
  • Modula-2
  • MUMPS
  • Natural
  • NQC
  • NXC
  • OPL
  • Pascal
  • Perl
  • PL/I
  • RPG
  • PowerShell
  • Rust
  • Tcl
  • WLangage
Orientés objet
  • ActionScript
  • AppleScript
  • C++
  • Common Lisp
  • C#
  • CoffeeScript
  • D
  • Delphi
  • Eiffel
  • Groovy
  • Haxe
  • Java
  • JavaScript
  • Lisaac
  • Logo
  • Objective-C
  • PHP
  • Python
  • Ruby
  • Scala
  • Scratch
  • Simula
  • Smalltalk
  • Swift
  • Kotlin
  • Visual Basic
  • Liste de langages de programmation
v Â· m
Robotique
Sujets connexes
  • Capteur
  • Intelligence artificielle
  • Actionneur
  • Source d'Ă©nergie
  • Programmation
  • CompĂ©titions de robotique
Communication
  • Communication sĂ©rie
  • Communication parallĂšle
  • Transmission sans fil
  • Automatique
  • ÉlectricitĂ©
  • Électrochimie
  • ÉlectromagnĂ©tisme
  • Électronique
  • Électrotechnique
  • Traitement du signal
  • icĂŽne dĂ©corative Portail de la programmation informatique
Ce document provient de « https://fr.wikipedia.org/w/index.php?title=Programmation_informatique&oldid=230727978 Â».
CatĂ©gories :
  • Programmation informatique
  • MĂ©tier de l'informatique
CatĂ©gories cachĂ©es :
  • Article manquant de rĂ©fĂ©rences depuis mai 2025
  • Article manquant de rĂ©fĂ©rences/Liste complĂšte
  • Article de WikipĂ©dia avec notice d'autoritĂ©
  • Page utilisant P8313
  • Page utilisant P6706
  • Page utilisant P4342
  • Page utilisant P3219
  • Page pointant vers des bases externes
  • Page pointant vers des dictionnaires ou encyclopĂ©dies gĂ©nĂ©ralistes
  • Page utilisant P9346
  • Page pointant vers des bases relatives Ă  l'audiovisuel
  • Portail:Programmation informatique/Articles liĂ©s
  • Portail:Informatique/Articles liĂ©s
  • Bon article en cantonais

  • indonesia
  • Polski
  • Ű§Ù„Ű±ÙŠŰ©
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • Ù…Ű”Ű±
  • Nederlands
  • æœŹèȘž
  • PortuguĂȘs
  • Sinugboanong Binisaya
  • Svenska
  • ĐŁĐșŃ€Đ°Ń—ĐœŃĐșа
  • Tiáșżng Việt
  • Winaray
  • äž­æ–‡
  • РуссĐșĐž
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id