Programmation lettrée Literate programming
Sommaire
Contexte historique
Définition
Exemple appliqué
Programmation lettrée & notebook
Contexte historique
De la recherche reproductible...
+ info
Bien que la première apparition de l'expression "recherche reproductible" soit datée de 1992, ce concept émerge dès les années 70.
+ info
À cette époque, plusieurs scientifiques, comme Jon Claerbout, s’inquiètent de l’impact des évolutions technologiques et des capacités de calcul sur la transparence et la reproductibilité des travaux scientifiques.
+ info
... au paradigme de la programmation lettrée
Le paradigme de programmation lettrée, pensé et mis en oeuvre par Donald Knuth au cours de la même décennie (1977-78), tente d’apporter une solution à une partie du problème...
+ info
Définition
En deux mots...
...le principe de la programmation lettrée est de penser l'écriture d'un programme afin qu’il soit compréhensible
par l’être humain et par la machine.
+ info
La programmation lettrée selon D. Knuth (1984)
« Nous devons changer notre attitude traditionnelle envers la construction des programmes : au lieu de considérer que notre tâche principale est de dire à un ordinateur ce qu’il doit faire, appliquons-nous plutôt à expliquer à des êtres humains ce que nous voulons que l’ordinateur fasse. (…) Celui qui pratique la programmation lettrée peut être vu comme un essayiste, qui s’attache principalement à exposer son sujet dans un style visant à l’excellence. Tel un auteur, il choisit, avec soin, le dictionnaire à la main, les noms de ses variables et en explique la signification pour chacune d’elles. Il cherche donc à obtenir un programme compréhensible parce que ses concepts sont présentés dans le meilleur ordre possible. Pour cela, il utilise un mélange de méthodes formelles et informelles qui se complètent. »
+ source
Exemple appliqué
De la programmation structurée...
Les lignes de code (langage R) ci-dessus ont été pensées et optimisées pour être correctement interprétées par la machine et générer la représentation graphique suivante :
... à la programmation lettrée !
En appliquant le paradigme de la programmation lettrée, ces lignes de code auraient pu, tout en produisant le même résultat, s’écrire de la manière suivante
Cliquez sur l'image pour zoomer. Cliquez sur les icônes pour voir le détail commenté.
Programmation lettrée & Notebook
Programmation lettrée exécutable ?
Ce paradigme n’est pas lié à un format ou à un outil. Il est possible de mettre en pratique cette approche de la programmation dans n’importe quel type de document, même manuscrit. Cependant, le notebook (ou document computationnel) est sans aucun doute l’outil idéal pour mettre en oeuvre ce concept, car ...
Notebook ?
Un notebook est une interface de programmation et d'interprétation ou exécution du code qui permet de combiner langage naturel, langage informatique et rendu computationnel (tableaux, graphiques etc.)
+ info
La pratique du notebook
Plus de 50 ans après son invention, le notebook a évolué pour s’adapter à différents langages informatiques avec de nouvelles fonctionnalités. Son usage se diversifie et se généralise auprès de plus en plus de disciplines.
Comment fonctionne un notebook ? Quels notebooks pour quels langages ?Quels en sont les principaux usages ?Comment optimiser leur reproductibilité et leur partage...
Vous en saurez plus en consultant ce module
À bientôt sur
Références bibliographiques
Ajout de nombreux commentaires qui aident le lecteur à comprendre rapidement le code et le raisonnement de l’auteur.
Donald Knuth
Informaticien et mathématicien américain né en 1938. Professeur émérite en informatique à l'université Stanford. Il est un des pionniers de l'algorithmique et a fait de nombreuses contributions dans plusieurs branches de l'informatique théorique.
Voir sa fiche sur Wikipedia
Références bibliographiques :
- Loic Desquilbet, Sabrina Granger, Boris Hejblum, Arnaud Legrand, Pascal Pernot, et al.. Vers une recherche reproductible : Faire évoluer ses pratiques. Unité régionale de formation à l'information scientifique et technique de Bordeaux. Unité régionale de formation à l'information scientifique et technique de Bordeaux, pp.1-161, 2019, 979-10-97595-05-0.
⟨hal-02144142v3⟩
Lignes de codes qui ne sont pas directement utiles pour la création du graphique souhaité mais qui permettent de bien retranscrire le raisonnement de l’auteur et d'expliciter ses choix.
Source :
D. Knuth, « Literate Programming », The Computer Journal, British Computer Society, vol. 27, no 2, 1984, p. 97–111
https://academic.oup.com/comjnl/article/27/2/97/343244
Le terme de notebook est assez populaire dans le monde anglophone, mais en raison de l’évolution et de la diversité des outils logiciels disponibles dans ce domaine, il existe de nombreuses dénominations. Quelques appellations utilisées en français :- article exécutable
- document computationnel
- document électronique interactif
- cahier de programmation
- cahier électronique d'analyse
- calepin électronique
- carnet de code
- bloc-code
- manifeste algorithmique
- - ...
La "recherche reproductible" est une démarche qui consiste à fournir l’ensemble des informations (texte, données, code de programmation accompagnés d’une description algorithmique) utilisées et appliquées pour obtenir des résultats présentés dans le cadre d’un travail scientifique.
"Le paradigme de la programmation lettrée, tel qu'il a été conçu par Knuth, s'éloigne dans son écriture de l'ordonnancement imposé par l'ordinateur, et à la place autorise les développeurs à utiliser un ordre imposé par la logique et le fil de leur pensée. Les programmes lettrés sont écrits, dans un langage naturel, comme une exposition ininterrompue de la logique, à la manière d'un essai, dans lequel sont incluses des macros qui masquent les abstractions et la complexité."Source :
Wikipédia
Utilisation de nom de variable explicite
Crédits image
Donald Knuth at a reception for the Open Content Alliance, hosted by the Internet Archive. Taken October 25, 2005 by Jacob Appelbaum in San Francisco, Donald Knuth from Wikipedia
https://www.chessprogramming.org/index.php?title=Donald_Knuth&mobileaction=toggle_view_mobile
La première apparition de l'expression "recherche reproductible" dans une publication scientifique semble être un article présenté en 1992 lors d'une réunion de la Society of Exploration Geophysics (SEG), par le groupe de Jon Claerbout à Stanford.
(Claerbout & Karrenbach, 1992)
Jon F. Claerbout
Géophysicien et sismologue américain né en 1938. Professeur émérite du département de Géophysique de l'Université de Stanford. Jon Claerbout est un pionnier de l'utilisation des ordinateurs dans le traitement et le filtrage des données d'exploration sismique.
Voir sa fiche sur Wikipedia
PROD_CW_Programmation lettrée...
Formation-DoRANum
Created on February 17, 2023
Start designing with a free template
Discover more than 1500 professional designs like these:
View
Smart Presentation
View
Practical Presentation
View
Essential Presentation
View
Akihabara Presentation
View
Dynamic Visual Presentation
View
Pastel Color Presentation
View
Blackboard Presentation
Explore all templates
Transcript
Programmation lettrée Literate programming
Sommaire
Contexte historique
Définition
Exemple appliqué
Programmation lettrée & notebook
Contexte historique
De la recherche reproductible...
+ info
Bien que la première apparition de l'expression "recherche reproductible" soit datée de 1992, ce concept émerge dès les années 70.
+ info
À cette époque, plusieurs scientifiques, comme Jon Claerbout, s’inquiètent de l’impact des évolutions technologiques et des capacités de calcul sur la transparence et la reproductibilité des travaux scientifiques.
+ info
... au paradigme de la programmation lettrée
Le paradigme de programmation lettrée, pensé et mis en oeuvre par Donald Knuth au cours de la même décennie (1977-78), tente d’apporter une solution à une partie du problème...
+ info
Définition
En deux mots...
...le principe de la programmation lettrée est de penser l'écriture d'un programme afin qu’il soit compréhensible
par l’être humain et par la machine.
+ info
La programmation lettrée selon D. Knuth (1984)
« Nous devons changer notre attitude traditionnelle envers la construction des programmes : au lieu de considérer que notre tâche principale est de dire à un ordinateur ce qu’il doit faire, appliquons-nous plutôt à expliquer à des êtres humains ce que nous voulons que l’ordinateur fasse. (…) Celui qui pratique la programmation lettrée peut être vu comme un essayiste, qui s’attache principalement à exposer son sujet dans un style visant à l’excellence. Tel un auteur, il choisit, avec soin, le dictionnaire à la main, les noms de ses variables et en explique la signification pour chacune d’elles. Il cherche donc à obtenir un programme compréhensible parce que ses concepts sont présentés dans le meilleur ordre possible. Pour cela, il utilise un mélange de méthodes formelles et informelles qui se complètent. »
+ source
Exemple appliqué
De la programmation structurée...
Les lignes de code (langage R) ci-dessus ont été pensées et optimisées pour être correctement interprétées par la machine et générer la représentation graphique suivante :
... à la programmation lettrée !
En appliquant le paradigme de la programmation lettrée, ces lignes de code auraient pu, tout en produisant le même résultat, s’écrire de la manière suivante
Cliquez sur l'image pour zoomer. Cliquez sur les icônes pour voir le détail commenté.
Programmation lettrée & Notebook
Programmation lettrée exécutable ?
Ce paradigme n’est pas lié à un format ou à un outil. Il est possible de mettre en pratique cette approche de la programmation dans n’importe quel type de document, même manuscrit. Cependant, le notebook (ou document computationnel) est sans aucun doute l’outil idéal pour mettre en oeuvre ce concept, car ...
Notebook ?
Un notebook est une interface de programmation et d'interprétation ou exécution du code qui permet de combiner langage naturel, langage informatique et rendu computationnel (tableaux, graphiques etc.)
+ info
La pratique du notebook
Plus de 50 ans après son invention, le notebook a évolué pour s’adapter à différents langages informatiques avec de nouvelles fonctionnalités. Son usage se diversifie et se généralise auprès de plus en plus de disciplines.
Comment fonctionne un notebook ? Quels notebooks pour quels langages ?Quels en sont les principaux usages ?Comment optimiser leur reproductibilité et leur partage...
Vous en saurez plus en consultant ce module
À bientôt sur
Références bibliographiques
Ajout de nombreux commentaires qui aident le lecteur à comprendre rapidement le code et le raisonnement de l’auteur.
Donald Knuth
Informaticien et mathématicien américain né en 1938. Professeur émérite en informatique à l'université Stanford. Il est un des pionniers de l'algorithmique et a fait de nombreuses contributions dans plusieurs branches de l'informatique théorique.
Voir sa fiche sur Wikipedia
Références bibliographiques :
- Loic Desquilbet, Sabrina Granger, Boris Hejblum, Arnaud Legrand, Pascal Pernot, et al.. Vers une recherche reproductible : Faire évoluer ses pratiques. Unité régionale de formation à l'information scientifique et technique de Bordeaux. Unité régionale de formation à l'information scientifique et technique de Bordeaux, pp.1-161, 2019, 979-10-97595-05-0.
⟨hal-02144142v3⟩
Lignes de codes qui ne sont pas directement utiles pour la création du graphique souhaité mais qui permettent de bien retranscrire le raisonnement de l’auteur et d'expliciter ses choix.
Source :
D. Knuth, « Literate Programming », The Computer Journal, British Computer Society, vol. 27, no 2, 1984, p. 97–111
https://academic.oup.com/comjnl/article/27/2/97/343244
Le terme de notebook est assez populaire dans le monde anglophone, mais en raison de l’évolution et de la diversité des outils logiciels disponibles dans ce domaine, il existe de nombreuses dénominations. Quelques appellations utilisées en français :- article exécutable
- document computationnel
- document électronique interactif
- cahier de programmation
- cahier électronique d'analyse
- calepin électronique
- carnet de code
- bloc-code
- manifeste algorithmique
- - ...
La "recherche reproductible" est une démarche qui consiste à fournir l’ensemble des informations (texte, données, code de programmation accompagnés d’une description algorithmique) utilisées et appliquées pour obtenir des résultats présentés dans le cadre d’un travail scientifique.
"Le paradigme de la programmation lettrée, tel qu'il a été conçu par Knuth, s'éloigne dans son écriture de l'ordonnancement imposé par l'ordinateur, et à la place autorise les développeurs à utiliser un ordre imposé par la logique et le fil de leur pensée. Les programmes lettrés sont écrits, dans un langage naturel, comme une exposition ininterrompue de la logique, à la manière d'un essai, dans lequel sont incluses des macros qui masquent les abstractions et la complexité."Source :
Wikipédia
Utilisation de nom de variable explicite
Crédits image
Donald Knuth at a reception for the Open Content Alliance, hosted by the Internet Archive. Taken October 25, 2005 by Jacob Appelbaum in San Francisco, Donald Knuth from Wikipedia
https://www.chessprogramming.org/index.php?title=Donald_Knuth&mobileaction=toggle_view_mobile
La première apparition de l'expression "recherche reproductible" dans une publication scientifique semble être un article présenté en 1992 lors d'une réunion de la Society of Exploration Geophysics (SEG), par le groupe de Jon Claerbout à Stanford. (Claerbout & Karrenbach, 1992)
Jon F. Claerbout
Géophysicien et sismologue américain né en 1938. Professeur émérite du département de Géophysique de l'Université de Stanford. Jon Claerbout est un pionnier de l'utilisation des ordinateurs dans le traitement et le filtrage des données d'exploration sismique.
Voir sa fiche sur Wikipedia