Présentation d’un article de recherche sur la relation entre Paint Splatters et le langage de programmation Perl
- Article accepté à la conférence SIGBOVIK 2019 et lauréat du prix "Unwitting Participation Ribbon"
- Si l’on projette de la peinture sur un mur, cela produit avec une probabilité de 93 % un programme Perl valide
- Utilise une approche empirique à l’aide d’un logiciel de reconnaissance optique de caractères (OCR)
- Analyse les caractéristiques des programmes Perl produits à partir de Paint Splatter et présente 7 exemples de Paint Splatter qui ne constituent pas des programmes Perl valides
Présentation des documents complémentaires de l’article
- Affiche sur une seule page toutes les Paint Splatter ainsi que leur code source Perl valide correspondant
- Les images qui n’ont pas été analysées comme des programmes Perl valides sont marquées en rouge comme "invalides"
- Lorsque plusieurs programmes Perl valides ont été reconnus avec différents réglages OCR, l’auteur a choisi le plus "intéressant" selon son sens de l’esthétique
- Fournit une archive tarball contenant les 100 images de Paint Splatter utilisées comme jeu de données principal de l’article
Exemples intéressants de programmes Perl issus de Paint Splatter découverts après la date limite de soumission de l’article
- Une éclaboussure reconnue comme la chaîne
lerzfijglpFiji-j, évaluée à la valeur numérique 0 en Perl
- Une image reconnue comme la chaîne
*?-, évaluée à la valeur numérique 0 en Perl
- Une image reconnue comme la chaîne
;i;c;;#\\\\?z{;?;;fn':.;, évaluée à la chaîne "c" en Perl
- Une image reconnue comme la chaîne
;E,'_',, évaluée à la chaîne "E_" en Perl
L’avis de GN⁺
- Cela semble être un article qui explore les caractéristiques d’un langage de programmation avec une idée originale et amusante. Cela pourrait constituer un bon exemple illustrant, de manière paradoxale, la flexibilité syntaxique de Perl.
- Mais on peut se demander si les résultats de cette recherche ne suggèrent pas aussi un problème dans la conception du langage Perl. Le fait que même des chaînes aléatoires soient analysées avec un taux de 93 % ne révèle-t-il pas une certaine ambiguïté du langage ?
- Il serait intéressant de voir quels résultats donnerait une expérience similaire appliquée à d’autres langages de programmation. Une comparaison entre langages pourrait permettre d’entrevoir les différences de philosophie de conception.
- Visualiser la grammaire des langages de programmation de cette manière serait aussi une tentative intéressante. Cela pourrait aider à percevoir visuellement la complexité ou la régularité de la grammaire.
1 commentaires
Commentaires sur Hacker News
Le fait qu’un logiciel d’OCR produise encore du texte à partir d’images qui ne contiennent pas de texte est un défaut. Je me souviens avoir scanné en OCR de vieux livres il y a dix ans, et de combien il était pénible de traiter le texte parasite généré à partir de petites illustrations, taches, poussières, etc. Il ne semble pas y avoir eu de grands progrès dans ce domaine depuis.
Les langages concatenative ont la propriété que toute séquence de tokens constitue un programme valide.
zotde Chris Barker est l’un de ces langages.zot, j’ai défini une version concatenative du Binary Lambda Calculus, qui partage elle aussi cette propriété.Il y a une note de bas de page amusante :
Article connexe :
Cet article traite du fait qu’un certain programme de « reconnaissance optique de caractères » reconnaît des éclaboussures de peinture comme des caractères. Ce programme semble avoir tendance à reconnaître presque toujours une combinaison quelconque de caractères.
Parmi les différentes façons possibles de réaliser cela, celle-ci est absolument bienvenue et dans le ton voulu. Mais cela donne aussi un premier aperçu d’autres méthodes possibles, comme considérer des zones de couleur et d’espace vide comme des 0 et des 1, puis prendre l’ensemble comme un programme. Dans ce cas, la plupart des résultats seraient probablement du bruit dénué de sens.
Il y a deux extrêmes : celui où tout est surtout du bruit, et celui où tout est surtout porteur de sens. Le jeu dans le jeu consiste ici à trouver une manière d’interpréter les éclaboussures de peinture de façon à leur attribuer autant de sens que possible. Ce sens doit toutefois réellement émerger de la structure, et non du simple zèle avec lequel les règles choisissent d’y voir du sens.
C’est une variation astucieuse de la vieille blague « impossible à distinguer du line noise ».
Avec l’IA générative, il est possible de produire plus rapidement de nouvelles éclaboussures de peinture innovantes considérées comme des logiciels fonctionnels. L’IA générative permet à une nouvelle classe de créateurs d’exploiter des workflows text-to-image et d’en tirer parti, tout en apportant de la valeur aux entreprises de toutes tailles. Les nouveaux modèles d’IA peuvent intégrer des logiciels fonctionnels et du code lisible par machine dans divers contenus haute résolution, captivant les spectateurs et offrant aux créateurs des moyens nouveaux et stimulants d’élargir leur audience.
Publié le 1er avril. Cela laisse entendre quelque chose.
En tant que programmeur Perl, je pense que les 7 % qui ne fonctionnent pas sont des bugs.