Ce dossier contient des informations, ressources et cours sur différents langages de programmations.

Liste de frameworks et outils

NomUtilitéCouverture des ressources
TailwindCSSStyle de pages web0%

Liste des langages

Langage (avec lien)UtilitéType de langageCouverture des ressourcesParadigme
RustBas-niveau, intégré, programmes nécessitant des hautes performancesCompilé0%Fonctionnel, Orienté Objet, Impératif
TypescriptAPIsInterprétéFonctionnel, Orienté Object, Impératif
JavaBas-niveau, APIs, algorithmie, programmation orientée objetCompilé (JVM)0%Orienté Objet
JavascriptWeb, APIsInterprété0%Fonctionnel, Orienté Objet, Impératif
PythonAPIs, Algorithmies, ScriptingInterprété0%Fonctionnel, Orienté Objet, Impératif

Les paradigmes

Ressources : fr.wikipedia.org

Un paradigme de programmation, c’est un peu comme une recette de cuisine : il fournit une méthode, un ensemble de règles et de concepts pour structurer et organiser le code. Chaque paradigme offre une perspective unique sur la résolution de problèmes informatiques et influence la façon dont les développeurs conçoivent et implémentent leurs logiciels.

Pourquoi tant de paradigmes ?

Tout comme il existe différentes langues dans le monde, chaque avec sa propre grammaire et sa propre culture, les langages de programmation ont aussi leurs propres paradigmes. Ces différents paradigmes répondent à des besoins spécifiques et à des types de problèmes particuliers. Certains sont mieux adaptés à la création d’interfaces utilisateur, d’autres à la manipulation de données complexes, et d’autres encore à la réalisation de calculs scientifiques.

Les principaux paradigmes

1. Programmation Impérative

Le paradigme impératif est le plus ancien et le plus intuitif. Il consiste à donner à l’ordinateur une suite d’instructions à exécuter séquentiellement pour modifier l’état du programme. C’est comme donner une recette de cuisine : chaque étape doit être suivie dans l’ordre.

Caractéristiques clés :

  • États modifiables : Les variables peuvent changer de valeur au cours de l’exĂ©cution du programme.
  • Instructions sĂ©quentielles : Les instructions sont exĂ©cutĂ©es ligne par ligne.
  • Structures de contrĂ´le : Les conditions (if/else) et les boucles (for, while) permettent de contrĂ´ler le flux d’exĂ©cution.

Exemple :

nombre = 10
nombre = nombre + 5
print(nombre)  # Affichera 15

2. Programmation Orienté Objet (POO)

La POO est un paradigme qui modélise le monde réel en termes d’objets. Chaque objet possède des propriétés (attributs) et des comportements (méthodes).

Caractéristiques clés :

  • Objets : Des instances de classes qui encapsulent des donnĂ©es et des comportements.
  • Classes : Des modèles qui dĂ©finissent les propriĂ©tĂ©s et les mĂ©thodes des objets.
  • HĂ©ritage : Un mĂ©canisme permettant de crĂ©er de nouvelles classes Ă  partir de classes existantes.
  • Polymorphisme : La capacitĂ© d’un objet Ă  prendre plusieurs formes.

Exemple :

class Voiture {
    String marque;
    int vitesseMax;
 
    public void accelerer() {
        // Code pour accélérer la voiture
    }
}

Voir Programmation Objet


3. Programmation fonctionnelle

La programmation fonctionnelle traite le calcul comme l’évaluation de fonctions mathématiques. Les fonctions sont des citoyens de première classe et les données sont immuables.

Caractéristiques clés :

  • Fonctions pures : Des fonctions qui ne modifient pas l’état externe et retournent toujours le mĂŞme rĂ©sultat pour les mĂŞmes entrĂ©es.
  • ImmuabilitĂ© : Les donnĂ©es ne peuvent pas ĂŞtre modifiĂ©es après leur crĂ©ation.
  • RĂ©cursivitĂ© : Une technique de programmation oĂą une fonction s’appelle elle-mĂŞme.
  • Higher-order functions : Des fonctions qui prennent d’autres fonctions en argument ou qui en retournent.

Exemple :

const nombres = [1, 2, 3, 4, 5];
const nombresPairs = nombres.filter(nombre => nombre % 2 === 0);

4. Programmation procédurale

La programmation procédurale est un paradigme de programmation qui se concentre sur l’exécution séquentielle d’instructions pour réaliser une tâche. C’est un des premiers paradigmes à avoir été développé et il reste très utilisé aujourd’hui, notamment comme base pour d’autres paradigmes comme la programmation orientée objet.

Caractéristiques clés :

  • SĂ©quence : Les instructions sont exĂ©cutĂ©es l’une après l’autre, dans l’ordre oĂą elles sont Ă©crites.
  • SĂ©lection : Des structures conditionnelles (si/sinon) permettent de choisir entre diffĂ©rentes branches d’exĂ©cution en fonction de certaines conditions.
  • RĂ©pĂ©tition : Les boucles (pour, tant que) permettent de rĂ©pĂ©ter un bloc d’instructions plusieurs fois.
  • ProcĂ©dures (ou fonctions) : Des blocs d’instructions regroupĂ©s sous un nom et pouvant ĂŞtre appelĂ©s Ă  plusieurs reprises dans le programme.

Exemple:

#include <stdio.h>
 
void saluer(char *nom) {
    printf("Bonjour, %s !\n", nom);
}
 
int main() {
    char nom[20];
    printf("Quel est votre nom ? ");
    scanf("%s", nom);
    saluer(nom);
    return 0;
}

5. Programmation logique

La programmation logique consiste à décrire un problème à résoudre sous forme de faits et de règles. Le programme cherche alors à trouver une solution en déduisant de nouvelles informations à partir de ces faits et règles.

Caractéristiques clés :

  • Faits : Des dĂ©clarations qui sont toujours vraies.
  • Règles : Des implications qui permettent de dĂ©duire de nouvelles informations.
  • Unification : Un mĂ©canisme qui permet de trouver des substitutions pour les variables afin de rendre les termes Ă©gaux.

Exemple (prolog):

pere(jean, marc).
pere(marc, paul).
homme(jean).
homme(marc).
homme(paul).
 
homme(X) :- pere(X, Y), homme(Y).