<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Science-De-L-Informatique | Dr. Goulu</title><link>https://drgoulu.com/tag/science-de-l-informatique/</link><atom:link href="https://drgoulu.com/tag/science-de-l-informatique/index.xml" rel="self" type="application/rss+xml"/><description>Science-De-L-Informatique</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>fr-FR</language><lastBuildDate>Mon, 24 Feb 2020 00:00:00 +0000</lastBuildDate><image><url>https://drgoulu.com/media/icon_hu_8d57a97d564ea9bb.png</url><title>Science-De-L-Informatique</title><link>https://drgoulu.com/tag/science-de-l-informatique/</link></image><item><title>Est-il plus difficile de programmer sur un ordinateur quantique que sur un ordinateur normal ?</title><link>https://drgoulu.com/2020/02/24/est-il-plus-difficile-de-programmer-sur-un-ordinateur-quantique-que-sur-un-ordinateur-normal/</link><pubDate>Mon, 24 Feb 2020 00:00:00 +0000</pubDate><guid>https://drgoulu.com/2020/02/24/est-il-plus-difficile-de-programmer-sur-un-ordinateur-quantique-que-sur-un-ordinateur-normal/</guid><description>&lt;p&gt;&lt;em&gt;Réponse publiée
&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;En fait la &amp;ldquo;programmation&amp;rdquo; d&amp;rsquo;un
revient plutôt à câbler un &amp;ldquo;circuit quantique&amp;rdquo; qui résout un problème particulier &amp;ldquo;d&amp;rsquo;un coup&amp;rdquo;. Pour ce que j&amp;rsquo;en comprends actuellement, c&amp;rsquo;est similaire à la &amp;ldquo;programmation&amp;rdquo; des anciens
où on connectait entre eux des ampli-ops pour réaliser des fonctions de transfert pour réaliser des simulations dynamiques extrêmement rapides.&lt;/p&gt;
&lt;p&gt;Mon impression est que la programmation quantique repose sur des concepts tellement différents du séquentiel, ou même du parallélisme &amp;ldquo;ordinaire&amp;rdquo; que c&amp;rsquo;est difficilement comparable. Les algos et leurs complexités sont totalement différents (voir
par exemple), donc la &amp;ldquo;manière de penser&amp;rdquo; doit être très différente.&lt;/p&gt;
&lt;p&gt;Ce qui est sur, c&amp;rsquo;est que les ordinateurs quantiques actuels sont encore très &amp;ldquo;simples&amp;rdquo; et visent à résoudre une classe réduite et bien spécifiques de problèmes. Ce qui fait la complexité de la programmation &amp;ldquo;normale&amp;rdquo; c&amp;rsquo;est la généralité de ce qu&amp;rsquo;on peut traiter avec les machines classiques, qu&amp;rsquo;on développe à une cadence ahurissante depuis une cinquantaine d&amp;rsquo;années maintenant.&lt;/p&gt;
&lt;p&gt;Donc je me risque à dire que la programmation quantique est actuellement plus simple que la programmation séquentielle.&lt;/p&gt;
&lt;p&gt;Merci pour la question qui m&amp;rsquo;a permis de découvrir
qui me permettra de vérifier mon impression.&lt;/p&gt;</description></item><item><title>Quelle est la classe de complexité de ce problème : trouver la $n$-ième décimale de $\pi$, et pourquoi ?</title><link>https://drgoulu.com/2020/02/12/quelle-est-la-classe-de-complexite-de-ce-probleme-trouver-la-n-ieme-decimale-de-pi-et-pourquoi/</link><pubDate>Wed, 12 Feb 2020 00:00:00 +0000</pubDate><guid>https://drgoulu.com/2020/02/12/quelle-est-la-classe-de-complexite-de-ce-probleme-trouver-la-n-ieme-decimale-de-pi-et-pourquoi/</guid><description>&lt;p&gt;&lt;em&gt;Réponse publiée
&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;En base 2 ou base 16, c&amp;rsquo;est $O(n.log(n)^3)$ en utilisant la fabuleuse
&lt;/p&gt;
&lt;p&gt;En base 10:&lt;/p&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;aucune formule réellement efficace n&amp;rsquo;a été découverte pour calculer le &lt;em&gt;n&lt;/em&gt;-ième chiffre de π en base 10.
a mis au point en décembre
, à partir d&amp;rsquo;une très ancienne série de calcul de π basée sur les coefficients du
, une méthode pour calculer les chiffres en base 10, mais sa complexité en $O(n^3.log(n))$ la rendait en pratique inutilisable.
a bien amélioré l&amp;rsquo;algorithme pour atteindre une complexité en$O(n^2)$, mais cela n&amp;rsquo;est pas suffisant pour concurrencer les méthodes classiques de calcul de toutes les décimales.&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Pourquoi cette popularité de Python en si peu d'années ?</title><link>https://drgoulu.com/2019/12/07/pourquoi-cette-popularite-de-python-en-si-peu-d-annees/</link><pubDate>Sat, 07 Dec 2019 00:00:00 +0000</pubDate><guid>https://drgoulu.com/2019/12/07/pourquoi-cette-popularite-de-python-en-si-peu-d-annees/</guid><description>&lt;p&gt;&lt;em&gt;Réponse publiée&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
existe depuis 1991, donc il lui a quand même fallu une bonne vingtaine d&amp;rsquo;années pour devenir populaire…&lt;/p&gt;
&lt;p&gt;Pendant ces années, une énorme variété de librairies ont été écrites dans ce langage et mises à disposition gratuitement et facilement (via pip ou conda). Aujourd&amp;rsquo;hui, vous trouvez à coup sur des librairies qui implantent 90% des fonctions de haut niveau dont vous avez besoin pour une application quelle qu&amp;rsquo;elle soit.&lt;/p&gt;
&lt;p&gt;De plus, le langage s&amp;rsquo;est révélé très bien conçu, permettant d&amp;rsquo;utiliser et de combiner proprement plusieurs &amp;ldquo;
&amp;rdquo; (je hais ce mot…) . Certains concepts de haut niveau comme les
(les décorateurs c&amp;rsquo;est génial !
) ou les
permettent d&amp;rsquo;étendre les fonctionnalités du langage par des librairies &amp;ldquo;standard&amp;rdquo;. Par exemple le typage statique a été ajouté par la librairie
qu&amp;rsquo;on peut utiliser (ou pas) alors que dans tous les autres langages c&amp;rsquo;est une notion fondamentale du langage (ou pas).&lt;/p&gt;
&lt;p&gt;Bref, ce langage s&amp;rsquo;est révélé à l&amp;rsquo;usage très robuste, étendu et évolutif, d&amp;rsquo;où sa popularité.&lt;/p&gt;
&lt;h6 id="notes-de-bas-de-page"&gt;Notes de bas de page&lt;/h6&gt;
&lt;p&gt;
&lt;/p&gt;</description></item><item><title>Quelle est la véracité de cette affirmation : la physique dans les jeux n’est que newtonienne et ne traite que des forces et du mouvement cinétique ?</title><link>https://drgoulu.com/2019/11/14/quelle-est-la-veracite-de-cette-affirmation-la-physique-dans-les-jeux-nest-que-newtonienne-et-ne-traite-que-des-forces-et-du-mouvement-cinetique/</link><pubDate>Thu, 14 Nov 2019 00:00:00 +0000</pubDate><guid>https://drgoulu.com/2019/11/14/quelle-est-la-veracite-de-cette-affirmation-la-physique-dans-les-jeux-nest-que-newtonienne-et-ne-traite-que-des-forces-et-du-mouvement-cinetique/</guid><description>&lt;p&gt;&lt;em&gt;Réponse publiée
&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;à 10% vrai.&lt;/p&gt;
&lt;p&gt;il y a 89.99% d&amp;rsquo;autres jeux où la physique, si elle existe, est carrément fausse, souvent volontairement pour des raisons de jouabilité.&lt;/p&gt;
&lt;p&gt;Les 0.01% restants sont:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;quelques jeux relativistes ( comme
et celui qui traine dans ma tête depuis longtemps)&lt;/li&gt;
&lt;li&gt;et aussi quelques quantiques (comme
et un autre à l&amp;rsquo;état d&amp;rsquo;idée …)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;avis à
…&lt;/p&gt;</description></item><item><title>Pourquoi dit-on que Python est un langage facile à apprendre ?</title><link>https://drgoulu.com/2019/10/29/pourquoi-dit-on-que-python-est-un-langage-facile-a-apprendre/</link><pubDate>Tue, 29 Oct 2019 00:00:00 +0000</pubDate><guid>https://drgoulu.com/2019/10/29/pourquoi-dit-on-que-python-est-un-langage-facile-a-apprendre/</guid><description>&lt;p&gt;&lt;em&gt;Réponse publiée
&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Parce qu&amp;rsquo;il l&amp;rsquo;est.&lt;/p&gt;
&lt;p&gt;Si vous ne connaissez aucun langage de programmation, Python vous permettra d&amp;rsquo;apprendre la programmation en acquérant de bons réflexes : indentation, variables locales, …&lt;/p&gt;
&lt;p&gt;Si vous connaissez d&amp;rsquo;autres langages de programmation, Python vous apparaîtra plus simple pour tout.&lt;/p&gt;
&lt;p&gt;Avec un peu de pratique vous verrez qu&amp;rsquo;il n&amp;rsquo;y a rien de superflu ou de verbeux en Python. Tout est aussi simple et clair qu&amp;rsquo;il doit l&amp;rsquo;être.&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;</description></item><item><title>Pourquoi avoir créée autant de language de programmation ?</title><link>https://drgoulu.com/2019/10/16/pourquoi-avoir-creee-autant-de-language-de-programmation/</link><pubDate>Wed, 16 Oct 2019 00:00:00 +0000</pubDate><guid>https://drgoulu.com/2019/10/16/pourquoi-avoir-creee-autant-de-language-de-programmation/</guid><description>&lt;p&gt;&lt;em&gt;Réponse publiée
&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Parce que le temps passe, et il passe très vite en informatique.&lt;/p&gt;
&lt;p&gt;Les premiers languages étaient très proches du &amp;ldquo;language machine&amp;rdquo;, avec des instructions proches de celles du processeur comme le saut inconditionnel (goto).&lt;/p&gt;
&lt;p&gt;Puis on a peu à peu pris conscience que les programmes devaient être lisibles et maintenables par des humains, et aussi qu&amp;rsquo;un bon compilateur pouvait optimiser le code mieux qu&amp;rsquo;un humain pour les processeurs modernes.&lt;/p&gt;
&lt;p&gt;A chaque étape, et aussi pour certains besoins spécifiques, on a créé des languages déchargeant les programmeurs des tâches ingrates (allouer/desallouer la mémoire) ou leur simplifiant la tâche (synchroniser des threads et processus).&lt;/p&gt;
&lt;p&gt;Ceci continuera jusqu&amp;rsquo;à la généralisation du language qui, selon Nicklaus Wirth, sera celui dans lequel vos collègues auront du plaisir à lire vos programmes.&lt;/p&gt;
&lt;p&gt;Pas demain la veille donc.&lt;/p&gt;</description></item><item><title>Une « tétrachiée d'octets », fait combien d'octets à peu près ?</title><link>https://drgoulu.com/2019/08/17/une-tetrachiee-d-octets-fait-combien-d-octets-a-peu-pres/</link><pubDate>Sat, 17 Aug 2019 00:00:00 +0000</pubDate><guid>https://drgoulu.com/2019/08/17/une-tetrachiee-d-octets-fait-combien-d-octets-a-peu-pres/</guid><description>&lt;p&gt;&lt;em&gt;Réponse publiée
&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Je conteste énergiquement la réponse de
. Le document de référence qu&amp;rsquo;il cite est pourtant limpide:&lt;/p&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;4.1.5 la chiée : unité générique très populaire, voire triviale, de grande quantité pouvant avantageusement sinon élégamment se substituer à chacune des unités précédentes (c’est vrai, essayez !). Dans sa grande universalité, elle connote naturellement à la fois le dégoût, l’excès et le mépris. Aucun exemple n&amp;rsquo;est cité pour conserver à ce document une certaine dignité. Signalons toutefois les multiples bien connus : la mégachiée et surtout la &lt;strong&gt;tétrachiée, qui permet d’accéder à l’ampleur galactique.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;or justement un galaxie moyenne contient environ 10^11 étoiles, chiffre corroborant l&amp;rsquo;interprétation de Guy, au détail près qu&amp;rsquo;il s&amp;rsquo;agit d&amp;rsquo;une puissance de dix.&lt;/p&gt;
&lt;p&gt;Une tétrachiée = 10^11 octets soit 100 Gigabytes.&lt;/p&gt;</description></item><item><title>La rétro-ingénierie est-elle légale ?</title><link>https://drgoulu.com/2019/07/30/la-retro-ingenierie-est-elle-legale/</link><pubDate>Tue, 30 Jul 2019 00:00:00 +0000</pubDate><guid>https://drgoulu.com/2019/07/30/la-retro-ingenierie-est-elle-legale/</guid><description>&lt;p&gt;&lt;em&gt;Article initialement publié sur
&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Absolument. Vous pouvez acheter un produit de votre concurrent, et après ça il est 100% à vous. Vous pouvez le démonter pièce par pièce, mesurer chaque pièce et en faire un modèle 3D si vous voulez. Je crois même que vous avez le droit d&amp;rsquo;en faire des copies ou &amp;ldquo;pièces de rechange&amp;rdquo; pour votre propre usage, mais pas de les commercialiser.&lt;/p&gt;
&lt;p&gt;C&amp;rsquo;est uniquement en vendant des copies que vous allez enfreindre des brevets et copyrights et que votre concurrent vous poursuivra pour contrefaçon.&lt;/p&gt;
&lt;p&gt;C&amp;rsquo;est d&amp;rsquo;ailleurs un des buts de la rétro ingénierie que j&amp;rsquo;ai vu dans ma carrière : pour vérifier que le concurrent n&amp;rsquo;a pas violé un de nos brevets…&lt;/p&gt;</description></item><item><title>Quelle est la fonctionnalité la plus intéressante du langage de programmation Python ?</title><link>https://drgoulu.com/2019/06/16/quelle-est-la-fonctionnalite-la-plus-interessante-du-langage-de-programmation-python/</link><pubDate>Sun, 16 Jun 2019 00:00:00 +0000</pubDate><guid>https://drgoulu.com/2019/06/16/quelle-est-la-fonctionnalite-la-plus-interessante-du-langage-de-programmation-python/</guid><description>&lt;p&gt;&lt;em&gt;Article initialement publié sur
&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Puisqu&amp;rsquo;on demande LA plus intéressante, je choisis les décorateurs.&lt;/p&gt;
&lt;p&gt;C&amp;rsquo;est en les découvrant que j&amp;rsquo;ai réalisé que les
du &amp;ldquo;Gang of Four&amp;rdquo; pouvaient se formaliser dans un langage bien fichu. Et le fait est que d&amp;rsquo;autres patterns peuvent être réalisés via les décorateurs, ce que Python fait d&amp;rsquo;ailleurs.&lt;/p&gt;
&lt;p&gt;Bien sur on peut écrire des décorateurs dans presque tous les langages, mais en Python c&amp;rsquo;est simple, et donc beau.&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;</description></item><item><title>Lisp est-il un langage de programmation facile ?</title><link>https://drgoulu.com/2019/05/29/lisp-est-il-un-langage-de-programmation-facile/</link><pubDate>Wed, 29 May 2019 00:00:00 +0000</pubDate><guid>https://drgoulu.com/2019/05/29/lisp-est-il-un-langage-de-programmation-facile/</guid><description>&lt;p&gt;&lt;em&gt;Article initialement publié sur
&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Lots of Insipid and Stupid Parenthesis ? Non, pas facile du tout.&lt;/p&gt;
&lt;p&gt;Au début ça va, si on a un IDE qui formate ça bien avec des parenthèses multicolores, ce qui n&amp;rsquo;est pas le cas ci-dessous:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;(defun factorial (n &amp;amp;optional (acc 1))
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;#34;Calcule la factorielle de l&amp;#39;entier n.&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;(if (&amp;lt;= n 1)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; acc
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; (factorial (- n 1) (* acc n))))
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;et puis ça donne des
(un bout de browser en LISP trouvé sur GitHub) …&lt;/p&gt;
&lt;p&gt;Sérieusement : dès que j&amp;rsquo;ai appris LISP en 1986, je me suis dépêché d&amp;rsquo;apprendre Prolog pour ce qu&amp;rsquo;on appelait intelligence artificielle à l&amp;rsquo;époque., et aujourd&amp;rsquo;hui les bonnes idées de LISP (car il y en a quand même…) se retrouvent beaucoup plus clairement dans des langages comme Python&lt;/p&gt;
&lt;p&gt;voir
&lt;/p&gt;</description></item><item><title>Qu'est-ce qu'un algorithme de routage ?</title><link>https://drgoulu.com/2019/04/15/qu-est-ce-qu-un-algorithme-de-routage/</link><pubDate>Mon, 15 Apr 2019 00:00:00 +0000</pubDate><guid>https://drgoulu.com/2019/04/15/qu-est-ce-qu-un-algorithme-de-routage/</guid><description>&lt;p&gt;&lt;em&gt;Article initialement publié sur
&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Très généralement, c’est un algorithme qui fournit un chemin optimal d’un noeud A à un autre B dans un graphe.&lt;/p&gt;
&lt;p&gt;Une application très courante est le GPS
qui vous indique comment aller à votre destination le plus vite ou le moins cher possible.&lt;/p&gt;
&lt;p&gt;Une autre est le
de paquets sur un réseau comme internet où on veut parfois transmettre une même information à plusieurs endroits (streaming …) ou en utilisant plusieurs canaux en parallèle&lt;/p&gt;
&lt;p&gt;Une autre application intéressante est le routage des pistes d’un
où les chemins entre de nombreuses paires de nœuds ne doivent pas se croiser sur une même couche du circuit.&lt;/p&gt;
&lt;p&gt;Quelques algorithmes de routage:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Notes de bas de page&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;</description></item><item><title>Peut-on dire qu’à partir d’un cahier des charges, avec deux langages différents, on obtiendra deux programmes compilés identiques, pour un même processeur ?</title><link>https://drgoulu.com/2019/04/01/peut-on-dire-qua-partir-dun-cahier-des-charges-avec-deux-langages-differents-on-obtiendra-deux-programmes-compiles-identiques-pour-un-meme-processeur/</link><pubDate>Mon, 01 Apr 2019 00:00:00 +0000</pubDate><guid>https://drgoulu.com/2019/04/01/peut-on-dire-qua-partir-dun-cahier-des-charges-avec-deux-langages-differents-on-obtiendra-deux-programmes-compiles-identiques-pour-un-meme-processeur/</guid><description>&lt;p&gt;&lt;em&gt;Article initialement publié sur
&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Non, c’est quasiment impossible d’obtenir deux programmes compilés identiques. Déjà il ne reste plus beaucoup de langages compilés actifs : C++, Go, Swift, Ada, et, il faut le dire, ces bon vieux Formol et Cobtran. Les autres (Python, Java, JavaScript etc.) font chacun leur “bytecode” interprété.&lt;/p&gt;
&lt;p&gt;Les langages compilés et leurs compilateurs sont suffisamment différents dans la représentation des objets voire des chaines de caractères, le passage de paramètres etc et l’optimisation du code pour les processeurs actuels qu’ils vont produire du code différent, à part peut-être pour print(“Hello World!”).&lt;/p&gt;</description></item></channel></rss>