Archives de catégorie : Langages

Viviane PONS : « Le notebook Jupyter : un outil pour l’enseignement » (30/04/2020)

Oratrice

Viviane PONS (Université Paris-Sud, GALaC)

Titre

« Le notebook Jupyter : un outil pour l’enseignement »

Informations

Jeudi 30 avril 2020, 14h-16h

Salle 15-16/101 de l’IRILL (rotonde 15, 1er étage)
4 place Jussieu, 75005 Paris
métro Jussieu (lignes 7 et 10)

Laurent BLOCH : « Enseigner la programmation : Scheme ou Python ? » (30/01/2020)

Orateur

Laurent Bloch (CNAM)

Titre

« Enseigner la programmation : Scheme ou Python ? »

Résumé

Si pour enseigner la programmation il convient d’être agnostique en matière de langage, ce n’est pas pour cela qu’il faut renoncer à en choisir un qui soit bien adapté : niveau d’abstraction ni trop élevé ni trop bas, encouragement des bonnes pratiques reconnues, facilité d’apprentissage. Et sur ces points le style de la programmation fonctionnelle semble présenter des avantages décisifs. Des exemples seront exhibés.

Informations

Jeudi 30 janvier 2020, 14h-16h

Salle 15-16/101 du LIP6 (rotonde 15, 1er étage)

4 place Jussieu, 75005 Paris
métro Jussieu (lignes 7 et 10)

Documents

Guillaume Munch-Maccagnoni (Inria, Gallinette) : « Curry-Howard et méthode en recherche en langages de programmation : l’exemple de l’objet comme valeur linéaire » (13/06/2019)

Guillaume Munch-Maccagnoni (Inria, Gallinette)

« Curry-Howard et méthode en recherche en langages de programmation : l’exemple de l’objet comme valeur linéaire »

Résumé

La logique linéaire est depuis longtemps annoncée comme porteuse d’une révolution pour le développement des langages de programmation. Où en est-on ? Le langage de programmation Rust est un récent langage industriel qui contient « de vrais morceaux » de logique linéaire assurant sa sûreté. Il est perçu comme une avancée majeure pour plusieurs champs d’application : programmation système, programmation concurrente. Mais on s’étonnera des canaux détournés empruntés par les idées de la logique linéaire avant de parvenir à leur application, à travers la programmation système et la programmation « objet ».

Je présenterai ces idées et proposerai de retracer une partie de leur évolution. Ce sera l’occasion de réfléchir au rôle de la correspondance de Curry-Howard dans la recherche sur le design des langages de programmation.

Informations

Jeudi 13 juin 2019

Salle 24-25/405 du LIP6 (rotonde 25, 4e étage)
4 place Jussieu, 75005 Paris
métro Jussieu (lignes 7 et 10)

Gauthier van den Hove : « L’invention des liens statiques » (23/05/2019)

Gauthier van den Hove (Centrum Wiskunde & Informatica)

« L’invention des liens statiques »

Résumé

La plupart des langages de programmation utilisent une pile de blocs d’activation pendant leur exécution, dans laquelle les blocs d’activation sont liés entre eux par deux liens, communément appelés « dynamique » et « statique ». Notre exposé examinera l’invention de cette technique, et sa première mise en œuvre, en 1960, dans la première implémentation du langage ALGOL 60, qui est l’ancêtre de la plupart des langages de programmation dits « impératifs » utilisés aujourd’hui.

Informations

Jeudi 23 mai 2019

Salle 24-25/405 du LIP6 (rotonde 25, 4e étage)
4 place Jussieu, 75005 Paris
métro Jussieu (lignes 7 et 10)

Bastien Guerry : « Code source et/ou documentation ? Réflexions autour de l’éditeur Emacs, du langage Emacs Lisp et du module Org-mode » (28/03/2019)

Orateur

Bastien Guerry

Titre

« Code source et/ou documentation ? Réflexions autour de l’éditeur Emacs, du langage Emacs Lisp et du module Org-mode »

Résumé

Cette présentation est un jalon le long d’une réflexion plus large sur la documentation logicielle. Une fois illustrés quelques problèmes généraux, nous explorerons la documentation de l’éditeur GNU Emacs et du langage Emacs Lisp d’un point de vue « utilisateur ». Puis nous aborderons cette question de la rédaction de la documentation du point de vue « développeur » à partir de notre expérience de la maintenance d’org-mode, un module d’Emacs. Un temps important sera consacré aux échanges pour que chacun puisse contraster ces expériences à l’aide d’autres expériences particulières.

Informations

Jeudi 28 mars 2019

Salle 25-26/105 du LIP6 (rotonde 25, 1er étage) (attention au changement de salle !)

4 place Jussieu, 75005 Paris
métro Jussieu (lignes 7 et 10)

Documents

  • Le site Write the Docs, mise en œuvre du projet décrit par Bastien Guerry dans cet exposé.

Assia Mahboubi, « Démonstrations assistées par ordinateur » (07/02/2019)

Assia MAHBOUBI (Inria, LS2N, Université de Nantes)

« Démonstrations assistées par ordinateur »

Informations pratiques

Jeudi 7 février 2019

Salle 24-25/405 du LIP6 (rotonde 25, 4e étage)

4 place Jussieu, 75005 Paris
métro Jussieu (lignes 7 et 10)

Affiche (PDF)

Résumé

Les ordinateurs ont profondément transformé la pratique des mathématiques contemporaines, mettant en particulier leur puissance de calcul au service de l’observation, de la conjecture et même de la validation “par calcul”. La généralisation rapide de l’accès à une puissance de calcul surhumaine a même suscité de nouvelles formes de mathématiques, à l’interface avec l’informatique, comme le calcul formel ou l’analyse numérique. Moins connus que certains systèmes de calcul symbolique, numérique ou statistique, les “assistants de preuve” font néanmoins partie des logiciels qui permettent de faire des mathématiques sur ordinateur. Ils sont conçus pour aider leurs utilisateurs à représenter définitions, énoncés et démonstrations dans un formalisme logique précis et non ambigu, sous la forme de bibliothèques digitales de mathématiques formalisées. Il existe plusieurs sous-familles d’assistants de preuves, qui diffèrent en particulier sur le choix de fondations logiques, qui détermine le langage formel utilisé. En particulier, une majorité d’entre eux sont basés sur une forme de théorie des types, une approche des fondations logiques qui donne une place privilégiée aux fonctions, et au concept de calcul. Mais dans tous les case, une telle (ré)écriture des théories mathématiques serait bien trop piétonne pour être envisageable, sinon intéressante, sans l’aide de la machine. Cette dernière permet en retour de réduire la vérification des preuves à une tâche routinière et mécanisée. Mais ce n’est pas le seul bénéfice d’une telle formalisation et nous discuterons dans cet exposé la pratique et les enjeux de cette forme de mathématiques assistées par ordinateur.

Cet exposé ne présuppose pas de connaissance particulière en logique ou en programmation.

Sandrine Boissel : « Mall&t’ Algo en Main/AccessiDVScratch – Manipulate Learn Look&Touch : l’algo pour tous grâce à la manipulation » (12/04/2018)

Orateur

Sandrine Boissel (Académie de Grenoble)

Titre

« Mall&t’ Algo en Main/AccessiDVScratch – Manipulate Learn Look&Touch : l’algo pour tous grâce à la manipulation »

Vidéo

Résumé

Mall&t’ Algo en Main est un dispositif pédagogique inclusif.

L’écran d’ordinateur est remplacé par un support réel et dynamique (épingles et élastiques sur support en relief) ; toutes les instructions sont adaptées en gros caractères et en braille sur des briques de type Lego ; les couleurs et formes géométriques saillantes permettent d’identifier rapidement les instructions.

Pour créer un algorithme, il suffit de le construire en emboîtant les différentes instructions.

Cet outil permet de faciliter l’acquisition de nouveaux concepts mathématiques (variables, priorités de calculs…) et de la pensée algorithmique en s’appuyant sur la manipulation. Il offre la possibilité de travailler de façon individuelle ou collaborative, de lire un script de façon linéaire ou séquentielle rapide, de découper, conserver, comparer ou échanger des morceaux d’algorithme. Ce
dispositif a été conçu pour des personnes aveugles ou mal-voyantes et leur est donc parfaitement accessible. Cela permet un travail commun entre personnes dites valides et personnes en situations de handicap.

Documents

Informations

Jeudi 12 avril 2018, 14h-16h.

Salle 24-25/405 du LIP6 (rotonde 25, 4e étage)

4 place Jussieu, 75005 Paris
métro Jussieu (lignes 7 et 10)

Jean-Baptiste Guillaumin : « Une approche informatique du classement stemmatique des traditions manuscrites latines » (15/02/2018)

Orateur

Jean-Baptiste Guillaumin (Université Paris-Sorbonne, laboratoire Rome et ses renaissances)

Titre

« Une approche informatique du classement stemmatique des traditions manuscrites latines »

Résumé

L’édition critique des textes antiques, qui ne sont généralement conservés que dans des témoins manuscrits médiévaux, repose en premier lieu sur un classement de ces témoins visant à définir des familles textuelles fondées sur des variantes communes. Quand elle est possible, la constitution d’un “stemma codicum”, que l’on peut définir comme un arbre généalogique de la tradition manuscrite, permet d’identifier les variantes susceptibles de remonter à l’état le plus ancien du texte (qui n’est du reste pas nécessairement le texte de l’auteur).

Le modèle généalogique, voire phylogénétique, employé dans cette approche de l’édition critique a conduit à des tentatives d’informatisation de la méthode fondées sur l’évaluation de distances entre des textes correspondant à un même passage affecté de variantes. On présentera ici un programme rudimentaire permettant d’établir ce genre de distance sur un ensemble de témoins considérés deux à deux (distance de Levenshtein adaptée pour tenir compte des spécificités graphiques des manuscrits latins) afin d’en tirer ensuite, grâce à l’algorithme neighbor-joining, une représentation des rapprochements stemmatiques possibles.

Informations

Jeudi 15 février 2018, 14h-15h30.

Salle 24-25/405 du LIP6 (rotonde 25, 4e étage)

4 place Jussieu, 75005 Paris
métro Jussieu (lignes 7 et 10)

Documents

Jean-François Perrot : « Un objet pédagogique : la verticale multilingue » (20/04/2017)

Orateur

Jean-François Perrot (LIP6)

Titre

Un objet pédagogique : la verticale multilingue

Vidéo

 

Résumé

Il s’agit de traiter un même programme en plusieurs langages de niveaux différents (du genre Python, C, assembleur MIPS), en prêtant attention aux changements de perspective induits par ces transitions.

On présentera une réalisation de cette idée pour le programme du calcul itératif de la suite de Fibonacci sans limitation de la taille du résultat, en Python, C et MIPS. (Évidemment, le point essentiel est l’exigence de valeurs illimitées, rendue « naturelle » par Python.)

Outre l’augmentation spectaculaire de la taille du code, on voit apparaître des problèmes imprévus de divers ordres, comme une particularité de l’addition fib(n-1)+fib(n), ou du nombre de zéros qui apparaissent au début d’un quotient. Loin d’être un simple exercice de réécriture, l’expérience devient un projet logiciel complet, avec plusieurs tours de spirale, où Python joue un rôle précieux de boîte à outils pour la modélisation, où l’écriture en C a sa propre problématique, et où la réalisation en assembleur MIPS exige une démarche d’une rigueur de fer.

On discutera des vertus pédagogiques attendues de ce dispositif.

Informations

20 avril 2017, 14h-15h30.

LIP6, salle 24-25/405.

Documents

Yann Régis-Gianas : CallCC, un coup d’état sur le contrôle (23/03/2016)

Orateur

Yann Régis-Gianas

Titre

CallCC, un coup d’état sur le contrôle

Résumé

Lorsque Dijkstra publie son article “Go To Statement Considered Harmful”, une fronde de programmeurs – dont Knuth – s’est élevée contre les restrictions d’expressivité proposées par l’informaticien néerlandais : en effet, la structuration du flot de contrôle par les seules procédures et boucles while interdisait certains idiomes de programmation fort utiles et répandus.

Cependant, les motivations de Dijkstra étaient légitimes : puisque l’on ne peut pas prédire les prédécesseurs d’un point de contrôle en présence du “goto”, on ne peut pas raisonner localement sur les instructions d’un programme et cela interdit toute ambition de passage à l’échelle de la preuve de programme.

Seulement, l’expressivité du “goto” peut être retrouvée à l’aide d’opérateurs de contrôle inventés par Peter Landin plusieurs années auparavant : en présence de ces opérateurs, les points de contrôle deviennent des objets de première classe appelés continuations. En tant qu’objet du calcul, les points de contrôle du programme sont alors l’affaire du programmeur. Grâce à l’abstraction de type, il peut alors choisir de légiférer comme bon lui semble pour spécifier leur bon usage.

Informations

Mercredi 23 mars 2016, 14h-15h30.

LIP6, salle 24-24/405.

Documents

Nicolas George : La négociation de formats multimédia (17/02/2016)

Orateur

Nicolas George

Titre

La négociation de format dans libavfilter

Résumé

FFmpeg est un projet de logiciel libre dédié au décodage, à l’encodage et à la manipulation en général de données multimédia ; libavfilter est le composant de FFmpeg consacré à la modification du contenu des flux audio et vidéo, qu’il s’agisse de transformations élémentaires comme changer la résolution ou la fréquence ou d’opérations complexes faisant intervenir plusieurs flux de nature différente.

Afin d’assurer les meilleures performances, libavfilter doit sélectionner des formats pour les différents flux compatibles avec les filtres utilisés tout en évitant autant que possible les coûteuses conversions inutiles.

Dans cet exposé, nous examinerons le mécanisme employé pour choisir les formats. Il est optimisé pour gérer le plus simplement les cas les plus courants mais a été étendu progressivement quand de nouveaux besoins se sont fait sentir. Le résultat est assez typique de la manière dont FFmpeg progresse.

FFmpeg is a libre software project dedicated to decoding, encoding and general manipulation of multimedia data; libavfilter is the FFmpeg component dedicated to changing the contents of the audio and video streams, whether it is for simple transformations such as changing the resolution of frequency or for complex operations involving several streams of various nature.

In order to ensure best performance, libavfilter needs to select formats for all the streams that are compatible with the involved filters while avoiding as much a possible expensive useless conversions.

In this presentation, we will study the mechanism used to select the formats. It is optimised to handle in the simplest way the most common cases but was progressively extended when new needs have arisen. The result is quite typical of the way FFmpeg evolves.

Informations

Mercredi 17 février 2016, 14h-15h30.

LIP6, salle 24-24/405.

Enregistrement et documents

Christine Proust et Baptiste Mélès : La calculatrice mésopotamienne MesoCalc (20/01/2016)

Orateurs

Christine Proust (CNRS, SPHERE, Université Paris-Diderot) et Baptiste Mélès (CNRS, Archives Henri-Poincaré, Université de Lorraine)

Titre

MesoCalc, la calculatrice mésopotamienne en JavaScript

Résumé

La calculatrice MesoCalc, créée en 2013, permet de pratiquer en toute simplicité l’arithmétique paléo-balylonienne : elle intègre la notation sexagésimale positionnelle, le calcul flottant et les principales opérations arithmétiques historiquement attestées. La calculatrice est destinée aussi bien aux assyriologues,aux historiens des mathématiques, qu’aux simples curieux. Disponible en ligne sur la page http://baptiste.meles.free.fr/site/mesocalc.html, ce logiciel est libre et gratuit.

D’abord, nous exposerons les bases des mathématiques mésopotamiennes grâce à des exercices scolaires qui servaient précisément à les enseigner à de jeunes scribes dans l’antiquité. Ensuite, nous ouvrirons le capot de MesoCalc. En décrivant comment ces notions ont été traduites dans le langage de programmation JavaScript, nous montrerons que les calculs sont effectués dans MesoCalc de manière aussi proche que possible du calcul sexagésimal, un peu par coquetterie — on plaidera officiellement le souci de probité historique — mais aussi pour de très prosaïques raisons techniques. L’arithmétique de JavaScript n’est exacte que jusqu’à 2 puissance 53, limite que les scribes mésopotamiens transgressaient allègrement ; il a donc fallu ruser avec le langage et réécrire toute son arithmétique élémentaire pour lui permettre d’atteindre ce qui nativement transcende ses facultés.

Accessible à tous, l’exposé ne présuppose aucune connaissance préalable des mathématiques mésopotamiennes ou de la programmation informatique.

Informations

Mercredi 20 janvier 2016, 14h-15h30.

LIP6, salle 24-24/405.

Julian Rohrhuber : Lecture errante. The close reading of sound algorithms leads astray – through the history of understanding, technology of sensibility, and matters of thought (13/01/2016)

Speaker

Julian Rohrhuber ( Institut für Musik und Medien, Robert-Schumann Hochschule Düsseldorf)

Title

Lecture errante. The close reading of sound algorithms leads astray – through the history of understanding, technology of sensibility, and matters of thought

Abstract

In this session, we will embark on a close reading of the source code of the programming language SuperCollider. With its inspirations coming from languages beyond the mainstream, and with its domain specificity, it is a good entry point for the reconsideration of the nature of functions, objects, and formalisms. Staying true to the principles of interactive and literate programming, reading code will thereby necessarily imply its writing, its operation, and listening to its sonic extensions. Thereby, we will broach some history and consequences of the concepts involved.

Informations

Mercredi 13 janvier 2016, 14h-15h30.

LIP6, salle 24-25/405.