Archives de catégorie : Langages

Marc Feeley (DIRO, Université de Montréal) : « L’implémentation du langage Scheme : de petit à petit » (23/05/2024)

Le langage de programmation Scheme est reconnu pour sa puissance expressive malgré la petitesse de sa spécification. Sur plusieurs années nous avons exploré les limites de son implémentation compacte en développant une série de systèmes optimisés pour divers contextes d’utilisation. Nous présenterons les stratégies et astuces employées pour atteindre des compilateurs et interprètes compacts, culminant en une implémentation complète de la norme R4RS en 7 KiB de code.

Jeudi 23 mai 2024, 14h-16h

En chair et en os : Salle séminaire 218 de l’IRILL, 2e étage du bâtiment Esclangon, 4 place Jussieu, 75005 Paris, métro Jussieu (lignes 7 et 10).

Par vidéoconférence : Contactez les organisateurs du séminaire pour obtenir le lien.

 

Marie ALAUZEN (CNRS, Université Paris-Dauphine PSL, LAMSADE UMR 7243) : « Les codes sources des services publics : support de l’altération informatique du droit et nouveau site d’enquêtes interdisciplinaires »

Comment un énoncé de droit devient-il une réalité qui s’impose dans le monde de manière à réguler une partie de la société politique ? La communication portera sur les énoncés juridiques dont l’application suppose, de la part d’une administration dédiée, la création et le maintien durant plusieurs décennies d’un programme informatique visant à exécuter, automatiquement et massivement, des actes administratifs spécifiés par le droit, comme le calcul de la fiscalité, des amendes, de la paie des agents publics ou encore la liquidation des aides et des prestations sociales. Prenant le code source de ces programmes administratifs comme un objet pour saisir la difficile performativité du droit, la communication poursuivra une double ambition. Premièrement, à partir d’une enquête par analyse, réplication de programme et entretiens, menée durant 9 mois avec l’équipe de recherche interdisciplinaire Catala sur le cas des aides au logement en France, je retracerai les chaînes d’écriture et de lecture permettant la traduction des évolutions du code de la construction et de l’habitation, dans Cristal, le programme historique de la Caisse nationale d’allocations familiales, assurant la liquidation de 25 prestations sociales. Dans les termes de la sociologie du droit, il s’agira de montrer les passes du droit accomplissant le législateur, puis de décrire cinq opérations de traduction (décliner, sélectionner, spécifier, programmer et exécuter), soit un processus administratif, essentiel au circulus démocratique, que je nomme l’altération informatique du droit. Deuxièmement, en revenant sur la méthode et l’ambition interdisciplinaire de l’équipe Catala sur ce cas des aides au logement, mon propos sera d’attirer l’attention des chercheurs en informatique sur la publicité des codes sources en tant que documents administratifs, garantie par l’article L300-2 du code des relations entre le public et les administrations. Il s’agira ainsi d’inviter d’autres collègues à mener un examen de l’état de l’État par ses codes sources, supposant de tisser des liens avec les travaux de sociologie politique, pour saisir au-delà des prescriptions sur l’éthique des algorithmes, la manière dont l’administration gouverne effectivement la société politique par un agencement continu de textes de droit, d’agents et d’instrument d’action publique.

Jeudi 4 avril 2024, 14h-16h

En chair et en os : Salle séminaire 218 de l’IRILL, 2e étage du bâtiment Esclangon, 4 place Jussieu, 75005 Paris, métro Jussieu (lignes 7 et 10).

Par vidéoconférence : Contactez les organisateurs du séminaire pour obtenir le lien.

 

 

Laurent CERVONI, « Programmation logique et intelligence artificielle : cinquantième anniversaire de Prolog » (09/06/2022)

Orateur

Laurent Cervoni (groupe TALAN)

Titre

« Programmation Logique et Intelligence Artificielle : cinquantième anniversaire de Prolog »

Résumé

Durant l’été 1972, Alain Colmerauer et son équipe à Marseille ont développé et implémenté la première version du langage de programmation logique Prolog. Associé à des collaborations antérieures et ultérieures avec Robert Kowalski et ses collègues d’Édimbourg, ce travail a jeté les bases pratiques et théoriques du Prolog et de la programmation logique d’aujourd’hui. Prolog et ses technologies connexes sont rapidement devenus des outils clés de la programmation symbolique et de l’intelligence artificielle.

Nous parcourrons une partie de l’histoire de l’intelligence artificielle, notamment, par le prisme de la programmation logique. Puis au travers de quelques échantillons de  codes, nous évoquerons les principes de base utilisés par Prolog, l’originalité de l’écriture d’un code Prolog, son apport dans la représentation des connaissances et ses usages les plus courants. Quelques perspectives d’articulations avec les autres approches de l’IA pourront être évoquées au cours des échanges.

Un article tiré de cette intervention a été publié dans le numéro 20 de 1024, le bulletin de la Société Informatique de France : Laurent Cervoni et Julien Brasseur, « Prolog, 50 ans d’histoire de l’intelligence artificielle », 1024 — Bulletin de la Société Informatique de France, n°20, novembre 2022, p. 55-63.

Informations

Jeudi 9 juin 2022, 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)

Vidéoconférence par Zoom (contactez les organisateurs du séminaire pour obtenir le lien).

 

Thierry DUMONT, « Algol, 60 ans après » (07/04/2022)

Orateur

Thierry Dumont (Institut Camille Jordan, Villeurbanne)

Titre

« Algol, 60 ans après »

Résumé

Le langage Algol (60) a été avec Fortran un des premiers langages de programmation sérieux et réellement utilisables. La rigueur de sa conception impressionne toujours.

On trouve assez facilement, dans les bibliothèques universitaires, deux tomes de « Procédures Algol en Analyse Numérique »  écrits sous l’égide du CNRS, le dernier ayant été publié en 1970.

Peut-on exécuter ces programmes en 2022 ? Oui, car il existe un compilateur libre, fiable et maintenu.

Je présenterai d’abord le langage Algol 60 et je parlerai un peu de sa descendance. Ensuite, je montrerai quelques exemples de programmes qui fonctionnent à nouveau.

Le résultat est assez éclairant quant à la pratique du calcul et de la programmation en ces temps déjà lointains.

Un article tiré de cette intervention a été publié dans le numéro 20 de 1024, le bulletin de la Société Informatique de France : Thierry Dumont, « Algol 60, 60 ans après », 1024 — Bulletin de la Société Informatique de France, n°20, novembre 2022, p. 65-76.

Informations

Jeudi 7 avril 2022, 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)

Vidéoconférence par Zoom (contactez les organisateurs du séminaire pour obtenir le lien).

Denis MERIGOUX, « Transformer la loi en code grâce au langage de programmation Catala » (10/03/2022)

Orateur

Denis MERIGOUX (Prosecco, Inria)

Titre

« Transformer la loi en code grâce au langage de programmation Catala »

Résumé

Un certain nombre d’administrations et d’entreprises maintiennent des programmes informatiques afin de calculer des montants d’impôt, allocations, cotisations, pensions, etc. à partir de données de leurs usagers. Transformer les textes de loi qui régissent ces calculs en code est une tâche très difficile, car elle requiert une double expertise juridique et informatique. De plus, la complexité inhérente des textes de loi et leur style de rédaction empêche activement la constitution d’une base de code saine et maintenable. En s’inspirant des travaux de Sarah Lawsky, professeure de droit fiscal et titulaire d’un doctorat en logique, le langage dédié Catala propose un nouveau  processus de transformation de la loi en code, basé sur la programmation littéraire et en binôme. Le compilateur de Catala, basé sur une sémantique formelle du langage, permet également l’intégration du code dans virtuellement n’importe quelle architecture legacy grâce à la compilation. Le projet est soutenu par une équipe  interdisciplinaire comprenant notamment Denis Merigoux, doctorant en informatique à l’Inria, et Liane Huttner, doctorante en droit à Paris I.

Un article tiré de cette intervention a été publié dans le numéro 20 de 1024, le bulletin de la Société Informatique de France : Denis Merigoux et Liane Huttner, « Catala : formaliser la loi grâce à un langage de programmation dédié », 1024 — Bulletin de la Société Informatique de France, n°20, novembre 2022, p. 77-84.

Informations

Jeudi 10 mars 2022, 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)

Vidéoconférence par Zoom (contactez les organisateurs du séminaire pour obtenir le lien).

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

Oratrice

Viviane PONS (Université Paris-Sud, GALaC)

Titre

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

Résumé

Jupyter est un outil qui permet d’afficher à la fois du texte et des cellules de code éditables et exécutables, le tout dans un navigateur web. Lors de cet exposé, nous présentons le fonctionnement général de l’outil, son utilisation dans un cadre pédagogique, et les solutions pour le mettre en place. Nous verrons en particulier comment il est utilisé à différent niveaux et pour différents langages de programmation à l’université Paris-Saclay pour l’enseignement de  l’informatique.

Informations

Jeudi 1er avril 2021, 14h-16h

Vidéoconférence par Zoom (contactez les organisateurs du séminaire pour obtenir le lien).

Cette séance était initialement prévue le jeudi 30 avril 2020.

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.

Un article tiré de cette intervention a été publié dans le numéro 20 de 1024, le bulletin de la Société Informatique de France : Laurent Bloch, « Un langage pour enseigner la programmation, Scheme ou Python ? », 1024 — Bulletin de la Société Informatique de France, n°20, novembre 2022, p. 85-95.

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