Les paradigmes de programmation sont les théories ou les idées qui aident à façonner les différents langages que vous utilisez pour créer des logiciels. Ils représentent les principales caractéristiques d'un langage de programmation, dictant son comportement.

Il est donc prudent de dire qu'un paradigme est tout aussi important que la syntaxe et la sémantique d'un langage de programmation. Les langages de programmation les plus populaires utilisent l'un des quelques types de paradigme de programmation.

1. Programmation impérative

Le paradigme impératif est l'une des premières approches de la programmation, remontant aux années 1950. Ce paradigme repose fortement sur l'utilisation de variables, de commandes et de procédures.

La programmation impérative utilise des commandes pour inspecter et mettre à jour les variables, en stockant l'état dans un programme. Une combinaison de commandes crée alors une procédure. L'abstraction des données joue un rôle crucial dans la représentation des données, ce qui facilite le couplage lâche.

instagram viewer

L'un des langages les plus populaires qui utilise le paradigme impératif est C. Ce langage de programmation ne prend en charge que les procédures de fonction.

Un exemple de programme impératif

#inclure 
#inclure

structure Client
{
int CustomerId ;
char NuméroCommande[20] ;
nom de caractère[30] ;
float TotalCommande ;
};

vide principal ()
{
struct Customer John = {4000, "HK1001", "John Doe", 200.00} ;
struct Client Jane = {4001, "HK1002", "Jane Doe", 600.00} ;

memcpy (Jane. Nom, "Jane Jones", 10);

printf ("Le coût total pour %s numéro de commande %s est: $%.2f", Jane. Nom, Jeanne. Numéro de commande, Jane. Total de la commande);
}

Le programme C ci-dessus crée un Client structure. le structure type est un excellent exemple d'abstraction de données en C.

Le programme montre comment les commandes peuvent créer, mettre à jour et afficher l'état - via le Jeanne variables structurelles. Toutes ces commandes sont dans un principale() fonction, qui dans son ensemble est une procédure qui indique combien d'argent un client doit payer pour une commande.

L'exécution du programme ci-dessus produira la sortie suivante dans votre console :

Le coût total pour le numéro de commande Jane Jones HK1002 est: 600,00 $

2. Programmation orientée objet

Le paradigme de la programmation orientée objet a pris son essor dans les années 1990. Ce paradigme est un descendant de l'impératif. Cependant, le paradigme orienté objet stocke l'état dans des objets et non dans des variables.

Les langages de programmation qui utilisent le paradigme orienté objet gèrent souvent mieux les applications complexes. Les principales caractéristiques du paradigme sont les objets, les classes, l'encapsulation des données, l'héritage et le polymorphisme.

Une classe est le composant fondamental d'un programme orienté objet. Certaines classes héritent des propriétés et des opérations d'autres classes. Les programmeurs décrivent cela comme une relation parent-enfant. Il relève de la catégorie du polymorphisme de sous-type.

Les classes contiennent des outils pour masquer et protéger les données sensibles par encapsulation. Une fois que vous avez défini une classe, vous pouvez ensuite l'utiliser pour créer des objets.

Trois des langages de programmation les plus populaires qui utilisent le paradigme orienté objet sont Java, C++ et Python.

Un exemple de programme orienté objet

Cette application démontre la plupart des fonctionnalités d'un langage de programmation orienté objet, Java. Un type spécifique de client hérite du comportement d'un type plus général. Tous les clients implémentent une interface. Le type de client spécifique remplace une méthode de l'interface.

Le fichier Discountable.java

Publiqueinterface Remise {

Publiqueannuler grandTotal (chaîne orderNumber, double total);

}

Le code ci-dessus crée une interface. En Java, une interface est un autre exemple de polymorphisme. Il permet aux entités qui ne sont pas directement liées d'accéder aux mêmes propriétés, comme le total méthode. Cette application se concentre sur les clients, mais une classe d'employés pourrait également avoir besoin de l'interface Discountable.

Le fichier client.java

Publiqueclasser Client met en oeuvre Remise {
protégéentier N ° de client;
protégé Chaîne nom_client ;
protégé Chaîne customerCode ;

Publique Client() {
ce.idclient = 0 ;
ce.nomclient = "" ;
ce.codeclient = "" ;
}

Publique Client(entier ID client, chaîne nom_client, chaîne code_client) {
ce.customerId = customerId ;
ce.customerName = clientName ;
ce.codeclient = codeclient ;
}

Publiqueentier getCustomerId() {
retourner N ° de client;
}
Publiqueannuler setCustomerId(entier N ° de client) {
ce.customerId = customerId ;
}
Publique Chaîne getCustomerName() {
retourner NomClient ;
}
Publiqueannuler setCustomerName (chaîne nom du client) {
ce.customerName = clientName ;
}
Publique Chaîne getCustomerCode() {
retourner code client;
}

Publiqueannuler setCustomerCode (chaîne code client) {
ce.codeclient = codeclient ;
}

Publiquedouble type de client (chaîne de code client) {
double remise = 0 ;

si (customerCode.toLowerCase().equals("pre")) {
remise = 0,10 ;
} autresi (customerCode.toLowerCase().equals("gen")) {
remise = 0,02 ;
} autresi (codeclient.toLowerCase().equals("nouveau")) {
remise = 0,05;
}
retourner remise;
}

@Passer outre
Publiqueannuler grandTotal (chaîne orderNumber, double total) {

double remise = typeclient (codeclient);
double remisePourcentage = total * remise ;
double total final = total - pourcentage de remise ;

Système.en dehors.println("Pour "+ getCustomerName() + " order Number " + orderNumber + " le total général est: $" + finalTotal);
}

}

Le code ci-dessus crée un Client classer. Il met en œuvre la Remise interface, puis utilise sa méthode pour calculer et afficher un total général, en fonction de la catégorie du client. le protégé mot clé dans le code ci-dessus est un exemple d'encapsulation de données; il restreint l'accès aux données créées via cette classe. Ainsi, seules les sous-classes (ou classes enfants) de Client classe aura accès à ses données.

Le fichier NewCustomer.java

Publiqueclasser Nouveau client s'étend Client {
Publique Nouveau client() {
super();
}

Publique Nouveau client(entier ID client, chaîne nom_client, chaîne code_client) {
super(identifiantclient, nomclient, codeclient);
}

}

Le code ci-dessus crée un Nouveau client classe qui étend Client classer. Ce La classe Java utilise l'héritage pour représenter une relation parent-enfant avec le Client classer. le Nouveau client est l'enfant dans la relation, il a donc accès à toutes les propriétés de la classe Customer. Il importe les attributs de la classe Customer à l'aide de la super() méthode.

Le fichier App.java

Publiqueclasser Application {
Publiquestatiqueannuler principal (String[] args) {
Client Jeanne = Nouveau NouveauClient (4001, "Jane Jones", "nouveau");
Jane.grandTotal("HK1002", 600);
}
}

Le code ci-dessus crée un exécutable Application classer. Cette classe crée un objet Customer (Jane) et par polymorphisme fait de Jane un Nouveau client. Enfin, il génère le grand total de la commande de Jane. L'exécution du programme ci-dessus générera la sortie suivante dans la console :

Pour Jane Jones numéro de commande HK1002, le total général est: 570,0 $

3. Programmation fonctionnelle

Les concepts clés de ce paradigme sont les expressions, les fonctions, le polymorphisme paramétrique et l'abstraction de données. Les expressions sont les composants fondamentaux des fonctions utilisées par les langages de programmation fonctionnels. Le polymorphisme paramétrique est l'un des trois types de polymorphisme. Ce type facilite la programmation générique par le biais de fonctions et de types.

JavaScript est l'un des langages de programmation fonctionnels les plus populaires.

Un exemple de programme fonctionnel

Const Client = {
Numéro d'identification: 1002,
Nom: 'Jane Jones',
Code client: 'nouveau'
}

const main = (client, fonction, valeur) => {
var total = func.apply (null, [ client. CustomerCode, valeur ]);
console.log(`${client. Nom} le total est: ${total}` );
}

const grandTotal = (CodeClient, total) => {
if (CustomerCode == "nouveau") {
remise = somme * 0,05 ;
mainTotal = total - remise ;
retourner mainTotal ;
} sinon si (CodeClient == "pré") {
remise = somme * 0,10 ;
mainTotal = total - remise ;
retourner mainTotal ;
}
}

principal (Client, grandTotal, 600) ;

Le programme JavaScript ci-dessus a un objet littéral et deux fonctions. Il déclare chacune des fonctions comme une expression en utilisant le Fonction de flèche JavaScript. le principale() fonction est une fonction d'ordre supérieur. Il faut le total fonction comme l'un de ses arguments, puis appelle cette fonction. C'est aussi un exemple de polymorphisme paramétrique.

le total() fonction contient plusieurs expressions, et la Clientobjet est un exemple d'abstraction de données. Le programme ci-dessus génère la sortie suivante dans la console :

Le total de Jane Jones est: 570 $

La complexité des langages de programmation

Un langage de programmation peut incarner les concepts d'un paradigme de programmation, mais cela ne signifie pas qu'il est limité à un paradigme. De nombreux langages de programmation populaires (tels que Python, Java, JavaScript et C++) sont des langages multi-paradigmes.

Certains paradigmes de programmation, tels que les paradigmes impératif et orienté objet, sont également liés. Mais malgré cette parenté, il existe des différences importantes.

Programmation orientée objet vs. Programmation procédurale: qu'est-ce qui les différencie ?

Lire la suite

PartagerTweeterPartagerE-mail

Rubriques connexes

  • Programmation
  • Programmation
  • Programmation fonctionnelle
  • Programmation orientée objet
  • Langages de programmation

A propos de l'auteur

Kadeisha Kean (51 articles publiés)

Kadeisha Kean est un développeur de logiciels Full-Stack et un rédacteur technique/technologique. Elle a la capacité distincte de simplifier certains des concepts technologiques les plus complexes; produire du matériel facilement compréhensible par tout novice en technologie. Elle est passionnée par l'écriture, le développement de logiciels intéressants et le voyage à travers le monde (à travers des documentaires).

Plus de Kadeisha Kean

Abonnez-vous à notre newsletter

Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives !

Cliquez ici pour vous abonner