• Aucun résultat trouvé

Langages de programmation. introduction

N/A
N/A
Protected

Academic year: 2022

Partager "Langages de programmation. introduction"

Copied!
14
0
0

Texte intégral

(1)

Langages de programmation

introduction

(2)

Paradigmes de programmation

Paradigme:

En science, un paradigme décrit des concepts distincts ou des modèles de pensée dans une discipline scientifique

Les principaux paradigmes:

Programmation impérative

Programmation fonctionnelle

Programmation logique ou déclarative

Paradigme orthogonal aux trois précédents:

Programmation orientée objet

(3)

Programmation impérative

Le paradigme repose sur:

La modification de variables mutables

L‘utilisation d‘affectations

Le codage de structures de contrôle comme:

Si alors sinon, itération, arrêt, continuation, retour

Le paradigme est très influencé par l‘architecture des machines de type Von Neumann

Processeur Mémoire

Bus

(4)

Programmation impérative et ordinateurs

Il y a une forte correspondance entre:

mutations cellules mémoire

déréférencements instructions de chargement affectations instructions de stockage structures de contrôle jumps

Problème:

Comment éviter de concevoir un programme mot par mot ?

Référence:

John Backus: Can Programming Be Liberated From Von Neumann Style ? (Turing Award Lecture 1978)

(5)

Solution

Constat:

La programmation impérative est limitée par l‘architecture Von Neumann:

Qui tend à concevoir les structures de données mot par mot

Solution:

Il est nécessaire d‘avoir d‘autres techniques pour définir des abstractions de haut niveau comme les collections, les documents, les chaînes de caractères, etc.

Il faut donc idéalement développer des théories ... des langages

(6)

Qu‘est-ce qu‘une théorie ?

Une théorie consiste en:

Un ou plusieurs types de données

Des opérations sur ces types

Des lois ou règles qui décrivent les relations entre valeurs et opérations

Normalement, une théorie ne décrit pas les mutations

Par exemple la théorie des polynômes

Ou encore celle des chaînes de caractères

Les JAVA Strings sont immutables.

(7)

Conséquences en programmation

Pour implémenter des concepts de haut niveau qui respectent les théories mathématiques, il ne faut pas de mutation

La théorie ne doit pas l‘accepter

La mutation contredit les lois de la théorie

Conséquences:

Définir des théories qui portent sur des opérateurs vus comme des fonctions

Éviter les mutations

Avoir une bonne solution pour élever le niveau d‘abstraction et composer des fonctions

(8)

Programmation fonctionnelle

Sens restrictif

La programmation fonctionnelle (FP) signifie qu‘il faut programmer sans variable mutable, affectation, boucle, et les autres structures de contrôle impératives

Sens plus large

La programmation fonctionnelle signifie se concentrer sur les fonctions

En particulier

Les fonctions peuvent être des valeurs produites, consommées et composées

Cela est possible avec un langage de programmation fonctionnelle

(9)

Langages de programmation fonctionnelle

Sens stricte

Un langage de programmation fonctionnelle n‘a pas de variable mutable, d‘affectation ou de structures de contrôle impératives

Sens large

Un langage de programmation fonctionnelle permet la construction de programmes élégants qui sont centrés sur les fonctions

En particulier, les fonctions dans un langage FP sont des objets de première classe (first class citizens)

Elles peuvent être définies n‘importe où, même dans d‘autres fonctions

Comme toute autre valeur, elles peuvent être passées comme paramètres aux fonctions et retournées comme résultat

Comme pour les autres valeurs, il existe un ensemble d‘opérateurs pour composer les fonctions

(10)

Paradigme orienté objet

Tout est pensé en terme d‘objets qui font quelque chose

Orientation objet pure

Chaque valeur est un objet

Si le concept de classe existe alors le type de chaque valeur est une classe

Orientation objet élargie

Il peut y avoir des types primitifs non objet

(11)

Programmation orientée objet

Fondements

L’abstraction fait référence à un ensemble de concepts qu’une

entité produit afin de résoudre un problème

L’encapsulation représente un ensemble de mécanismes offert

par le langage qui permet de masquer les détails de

l’implémentation

(12)

Historique des langages FP

1959 Lisp

1975-77 ML, FP, Scheme

1978 Smalltalk

1986 Standard ML

1990 Haskell, Erlang

1999 XSLT

2000 OCaml

2003 Scala, Xquery

2005 F#

2007 Clojure

(13)

Les langages

Programmation impérative

Langage C

Programmation impérative et orientée objet

Langages JAVA, C++, C#, Python, Ruby, PHP

Programmation fonctionnelle

Haskell, Pure Lisp, XSLT, XPath, XQuery, FP

Programmation fonctionnelle et orientée objet

Langages SCALA, OCaml

Programmation impérative, fonctionnelle et orientée objet

Langages Javascript, JAVA, C#, PHP, Ruby, ...

(14)

L‘utilisation des langages 2016

Références

Documents relatifs

Quand une pratique partagée s’avère peu pertinente, une activité parallèle est à envisager, mais si la mise à l’écart perdure il peut être préférable qu’un élève suive,

Bien sûr nous le savons, les textes de nos congrès le disent (La féminisation s’inscrit dans la lutte contre les inégalités entre les femmes et les hommes dans notre société. Thème

de l'Europe est comparable à celle de ces deux grands continents.. • Le nom du continent européen vient du

Mais très vite elle arrête ses pitreries, car la bouche vient de lui répondre : -Bonjour, Jeanne?.

« Ce n’est pas la dépendance physique qui signe l’addiction, confirme Michel Lejoyeux, mais bien la relation de contrainte à un produit. » Par exemple, un patient qui

Des Gens comme les autres valut aussi l'Oscar du meilleur second rôle à Timothy Hutton (avec ses 19 ans, il fut et reste le plus jeune lauréat d'un Oscar) et recompensa

Qui cachent leurs (15) sous leur pardessus Voilà le secret des petits bossus... C'est joli, mais ce n'est

Un rêve m'a dit une chose étrange, Un secret de Dieu qu'on a jamais su : Les petits bossus sont de petits anges Qui cachent leurs ailes sous leur pardessus Voilà le secret