vignette|Page d'accueil du site web : rosettacode.org Rosetta Code est un site Internet de chrestomathie des langages informatiques qui implémente des algorithmes, des tâches à réaliser et divers problèmes de programmation dans de nombreux langages de programmationRalf Lämmel, "Software chrestomathies", janvier 2015. Publié dans "Science of Computer Programming", volume 97, pages 98-104. À l'instar de la Pierre de Rosette qui présente sur une face unique un même texte écrit dans trois langues différentes, une page du site Rosetta Code présente un même algorithme, par exemple le crible d'Eratosthène, est écrit dans une centaine de langages informatique différents. Le site est codé en wiki. Il a été créé en 2007 par Michael Mol.

À la date du , les pages de Rosetta Code référencent: 1083 tâches à programmer (ou algorithmes) 226 tâches à programmer (ou algorithmes) en mode "attente d'acceptation", 813 langages informatiques, exemples de code d'une tâche dans un langage de programmation.

Le contenu du site est sous licence de documentation libre GNU 1.2, même si certains composants peuvent faire l'objet d'une double licence sous des conditions plus permissives.

Le site Rosetta Code illustre comment des fonctionnalités énoncées sont implémentées de manière différente dans les divers langages de programmationNeil Walkinshaw. Chapter One: "Reverse-Engineering Software Behavior". "Advances in Computers". 2013. p. 14.Geoff Cox. "Speaking Code: Coding as Aesthetic and Political Expression". MIT Press, 2013. p. 6., et comment "la même" tâche est accomplie dans différents langages de programmationNick Montfort "No Code: Null Programs". 2013. p. 10..

Données et structure Le site Rosetta Code est organisé en une section transversale de tâches à réaliser (algorithmes ou problèmes informatique) versus une autre section celle des langages de programmation. La page d'un algorithme affiche toutes les solutions proposées par les contributeurs dans divers langages informatiques. Cela permet au visiteur, au programmeur, de comparer l’approche de chaque langage au problème énoncé.

Langages Ce qui suit représente un petit échantillon des 743 langages de programmation référencés sur Rosetta Code. Ne sont cités que les langages présents sur Wikipédia:

Ada ALGOL 60 ALGOL 68 ALGOL W APL awk AutoHotkey BASIC (40 formes différentes) Basic-256 FreeBasic PureBasic QuickBasic Turbo Basic bc Bourne shell C C++ C# Clojure COBOL Common Lisp D Delphi Erlang F# Factor Forth Fortran Elixir Go Groovy Haskell Icon J Java JavaScript Julia Kotlin Lisp m4 Maple Mathematica MATLAB MASM Maxima Modula-2 NASM Nim Objective-C OCaml Octave PARI/GP Pascal Perl PHP PL/I PowerShell Prolog PureBasic Python R Racket Raku REXX Ring Ruby Rust Scala Scheme Scilab Scratch Simula Smalltalk Snobol Swift Tcl TI-Basic Unix Shell Bourne shell (sh) Bourne-Again shell (bash) C shell (csh) Korn shell (ksh) VBA VBScript Visual Basic (VB6) Visual Basic .NET Xojo

(Pour voir une liste complète des langages informatiques contenant des exemples, voir : Rosetta Code computer langage popularity list.

Tâches Voici un petit extrait des 961 tâches présentes dans Rosetta Code. Ne sont cités que des algorithmes présents sur Wikipédia.

Algorithme d'Euclide Algorithme de Dijkstra Algorithme de Kosaraju Algorithme de Markov Algorithme de Tarjan Algorithme de tracé de segment de Xiaolin Wu Algorithmes de tri Tri à bulles (bubble sort) Tri de Shell (Shell sort) Tri fusion (merge sort) Tri par insertion (insertion sort) Tri par sélection (selection sort) Tri par tas (heap sort) Tri rapide (quick sort) Algorithme X de Knuth Approximation de π Automate cellulaire Calcul de la date de Pâques Carré magique Chasse au Wumpus Chiffrement par décalage Chiffres romains Codage de Huffman Code Morse Coefficient binomial Combinaisons Compression de Lempel-Ziv-Welch Conjecture d'Euler Conjecture de Syracuse Contrôle de redondance cyclique Courbes de Bézier Courbe du dragon Crible d'Ératosthène Dîner des philosophes Distance de Hamming Distance de Jaro-Winkler Distance de Levenshtein Élimination de Gauss-Jordan Ensemble de Julia Ensemble de Mandelbrot Étoile de la mort Factorielles Factorisation de Cholesky Fonction d'Ackermann Fonction gamma Fonctions trigonométriques Formule de haversine Formule de Machin Fourmi de Langton Fractions égyptiennes Fractions continues Identité d'Euler Intégration numérique Jeu de la vie de Conway Loi de Benford

Mélange de Fisher-Yates Méthode d'Euler Méthode de Monte-Carlo Méthode de Ruffini-Horner Méthodes de quadrature de Gauss Méthodes de Runge-Kutta Multiplication matricielle enchaînée Multiplication russe Nombre de Catalan Nombre de Harshad Nombre de Kaprekar Nombre de Lychrel Nombre de Lucas Nombre de Mersenne premier Nombre de Münchhausen Nombre parfait Nombre vampire Nombre de Bernoulli Nombres premiers Opération bit à bit Permutations Pi PGCD PPCM Problème de Josèphe Problème de Monty Hall Problème des huit dames Problème du cavalier Problème du sac à dos Produit de Kronecker Produit scalaire Quaternion Quine Racine de l'unité Règle de Cramer Reimerp ROT13 Spirale d'Archimède Spirale d'Ulam Statistiques Sudoku Suite aléatoire Suite de Farey Suite de Fibonacci Suite de Kolakoski Surface de subdivision de Catmull–Clark Test de primalité de Lucas-Lehmer Test de primalité de Miller-Rabin Théorème des restes chinois Tic-tac-toe Tours de Hanoï Transformation de Fourier rapide Transformée de Burrows-Wheeler Transformée de Hough Triangle de Héron Triangle de Pascal Triangle de Sierpiński Zéros d'une fonction

Voir aussi Langage de programmation Liste de langages de programmation Algorithme Liste d'algorithmes

Références

Liens externes

Raku on Rosetta Code

Catégorie:Théorie algorithmique des nombres Catégorie:Langage informatique Catégorie:Algorithme Catégorie:Algorithme numérique Catégorie:Algorithme d'infographie Catégorie:Algorithme de la théorie des graphes Catégorie:Algorithme de recherche Catégorie:Problème algorithmique Catégorie:Automate cellulaire Catégorie:Science des données