Archives de catégorie : Saison 2015-2016

Liesbeth De Mol : Un code source sans code ? Le cas de l’ENIAC (22/06/2016)

Oratrice

Liesbeth De Mol (CNRS, Savoirs Textes Langages, Université de Lille 3)

Titre

« Un code source sans code ? Le cas de l’ENIAC »

Résumé

Qu’est-ce qu’un programme ? Qu’est-ce qu’un code (source) ? Est-ce un « texte » susceptible d’une analyse littéraire ou plutôt quelque chose qui réside dans les circuit électroniques de l’ordinateur ? Est-ce un objet technique ou formel ? D’un certain point de vue, ces questions purement philosophiques ont peu à voir avec une réalité quelle qu’elle soit. Mais en informatique, ces questions sont au cœur de la discipline et les réponses qu’on leur donne déterminent des décisions qui affectent jusqu’à la législation des logiciels : selon qu’on voie le code comme texte ou comme programme exécutable, la législation qui s’applique est celle du copyright ou du brevet. Ainsi, aucune philosophie du code source n’est innocente et la prudence s’impose à ce sujet.

De nos jours, il est de bon ton de ne plus parler du matérialité du logiciel : même en histoire de l’informatique, la tendance est de se concentrer sur les logiciels et d’ignorer la matérialité dans laquelle ils sont ancrés. Cette tendance est le résultat d’une des technique les plus importantes de l’informatique : l’abstraction. C’est l’abstraction qui nous permet d’oublier ce qui est caché sous une interface et de rendre ainsi transparents les logiciels. C’est l’abstraction qui permet le développement de logiciels qui n’ont plus besoin de renvoyer au niveau inférieur. Sans abstraction, pas de vrais logiciels. Sans abstraction, pas de vrai « langage » de programmation. Sans abstraction, l’industrie ne serait pas capable de créer ce vers quoi tendent les abstractions industrielles, et que Dijkstra décrit ainsi :

« [T]he computer user, as functioning in the development of computer products is not a real person of flesh and blood but a literary figure, the creation of literature, rather poor literature. […] [H]e is most uninspiring. He is stupid, education resistant if not education proof, and he hates any form of intellectual demand made on him, he cannot be delighted by something truly beautiful, because he lacks the education to appreciate beauty. Large sections of computer science are paralyzed by accepting this moron as their typical customer. »

Dans cet exposé, je voudrais effectuer un mouvement inverse en allant de l’abstraction vers la physicalité des calculs, en étudiant une pratique où il n’y a pas de « code » qui puisse être « compris » par la machine. Au contraire, il s’agit d’une pratique où c’est l’être humain qui doit comprendre la machine alors qu’elle peut coder ces idées. C’est la pratique de l’ENIAC original – une des premières machines électroniques et programmables. Dans cet exposé, j’expliquerai comment la machine peut être programmée. Le but de tel exposé est d’interroger ce que veut dire « code source » du point de vue de la machine. Cela me permet non seulement de montrer le contexte original de l’abstraction mais aussi d’introduire un point de vue matériel pour lequel il n’existe pas de logiciels. Ainsi, le vrai but de cet exposé est d’aller contre la tendance de cacher l’entrelacement du code, de la machine et des humains en le rendant transparent.

Informations

Mercredi 22 juin, 14h-15h30.

LIP6, salle 24-25/405.

Documents

Karine Chemla : Calculer avec des positions, calculer avec des tables en Chine ancienne (13/04/2016)

Orateur

Karine Chemla (ERC Advanced Research Grant SAW & SPHERE, CNRS-Université Paris Diderot)

Titre

Calculer avec des positions, calculer avec des tables en Chine ancienne

Résumé

Au nombre des traditions mathématiques que l’on peut identifier en Chine ancienne, l’une paraît faire un usage singulier de positions sur la surface matérielle sur laquelle les algorithmes étaient exécutés. C’est de fait en son sein que furent élaborées les nombreuses notations positionnelles que l’on peut repérer en Chine ancienne et qui distingue cette tradition d’autres traditions, en Chine ou ailleurs. L’exposé vise à repérer les contours de cette tradition ainsi qu’à esquisser le corpus de résultats et de pratiques qui s’y rattachent. Il vise également à mettre en évidence la persistance de cette tradition sur des siècles, tout en montrant comment de nouveaux résultats émergent dans ce cadre. L’exposé proposera enfin des hypothèses sur les raisons de cette longévité.

Informations

Mercredi 13 avril 2016, 14h-15h30.

LIP6, salle 24-24/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.

Stefano Zacchiroli : Archivage et indexation de codes sources (16/12/2015)

Orateur

Stefano Zacchiroli

Titre

Large-scale source code archival, publishing, and indexing with Debsources

Résumé

The source code commons is a thing. Largely thanks to more than 30 years of Free and Open Source Software (FOSS) development we now dispose of hundreds of billion lines of publicly available source code.

When properly systematized, by providing uniform ways to access both the actual source code and related metadata, such an immense corpus is an invaluable resource for scholars in several fields of software studies, e.g., evolution, history, maintenance, and quality assurance. If properly archived, the same corpus can increase the chances that humanity will not lose a strategic part of its digital heritage.

We present our experiences in this field with Debsources (https://sources.debian.net/) a medium-sized (~3.5 billion lines of code), curated corpus of FOSS source code, extracted from more than 20 years of history of the Debian distribution. We discuss the need and challenges of bringing this experiment to the next level.

Informations

Mercredi 16 décembre, 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.