Rosetta Code ist eine Wiki -basierte Website zur Programmier- Chrestomathy mit Implementierungen gängiger Algorithmen und Lösungen für verschiedene Programmierprobleme in vielen verschiedenen Programmiersprachen . [ 1 ] [ 2 ] Sie ist nach dem Stein von Rosetta benannt , auf dem derselbe Text in drei Sprachen eingraviert ist und der somit die erstmalige Entzifferung der ägyptischen Hieroglyphen ermöglichte. [ 3 ]
Webseite
Rosetta Code wurde 2007 von Michael Mol entwickelt. [ 3 ] Die Inhalte der Website sind unter der GNU Free Documentation License 1.2 lizenziert, wobei einige Komponenten möglicherweise unter freizügigeren Bedingungen parallel lizenziert sind. [ 4 ]
Das Rosetta-Code-Web-Repository veranschaulicht , wie die gewünschte Funktionalität in verschiedenen Programmierparadigmen sehr unterschiedlich implementiert wird [ 5 ] [ 6 ] und wie „dieselbe“ Aufgabe in verschiedenen Programmiersprachen gelöst wird [ 7 ] .
Stand 22. Februar 2024 umfasst der Rosetta-Code: [ 8 ]
- 1.266 Programmieraufgaben (oder -probleme)
- 404 zusätzliche Entwurfsprogrammierungsaufgaben
- 933 Computerprogrammiersprachen, die zur Lösung von Aufgaben verwendet werden
Im August 2022 migrierte Rosetta Code von einem unabhängigen Hosting-Anbieter zu Miraheze .
Daten und Struktur
Die Rosetta-Code-Website ist als durchsuchbare Übersicht über Aufgaben (spezifische Programmierprobleme oder -überlegungen) und Programmiersprachen organisiert. [ 2 ] Auf der Seite einer Aufgabe werden von Besuchern beigesteuerte Lösungen in verschiedenen Programmiersprachen angezeigt, sodass der Betrachter die jeweiligen Lösungsansätze vergleichen kann.
Aufgabenseiten werden in sprachspezifischen Listen basierend auf den Sprachen der bereitgestellten Lösungen angezeigt; eine Aufgabe mit einer Lösung in der Programmiersprache C erscheint in der Liste für C. Wenn dieselbe Aufgabe eine Lösung in Ruby hat , erscheint die Aufgabe auch in der Liste für Ruby.
Sprachen
Zu den auf Rosetta Code enthaltenen Programmiersprachen (die auch in Wikipedia beschrieben sind) gehören unter anderem: [ 9 ]
- Ada
- ALGOL 60
- ALGOL 68
- ALGOL W
- APL
- AWK
- AutoHotkey
- BASIC (58 Varianten)
- C
- C#
- C++
- Ceylon
- Clojure
- COBOL
- Common Lisp
- D
- Delphi
- Erlang
- F#
- Faktor
- Viertens
- Fortran
- Elixier
- Gehen
- Apache Groovy
- Haskell
- Symbol
- J
- Java
- JavaScript
- Julia
- Kotlin
- Lua
- Ahorn
- Mathematica
- MATLAB
- Nim
- OCaml
- Oktave
- ooRexx
- PARI/GP
- Pascal
- Perl
- PHP
- Picolisp
- PL/I
- PowerShell
- Prolog
- PureBasic
- Python
- R
- Schläger
- Raku (Perl 6)
- Rot
- REXX
- Rubin
- Rost
- Scala
- Schema
- Seed7
- SequenzL
- Schnell
- Tcl
- Unicon
- V (Vlang)
- XPL0
Eine vollständige Liste der Programmiersprachen, für die es Beispiele (Einträge/Lösungen zu den Rosetta-Code-Aufgaben) gibt, ist verfügbar. [ 10 ]
Aufgaben
Zu den Aufgaben, die auf Rosetta Code zu finden sind, gehören unter anderem: [ 11 ]
- " 99 Flaschen Bier " (Lied)
- Abkürzungen
- Ackermann-Funktion
- Freundliche Zahlen
- Anagramme
- Bernoulli-Zahlen
- Bitweise Operationen
- Cholesky-Zerlegung
- Kombinationen
- Kommentare
- Kettenbrüche
- Zyklische Redundanzprüfung (CRC-32)
- de Bruijn-Sequenz
- Todesstern (unentschieden)
- Punktprodukt
- Drachenkurve
- Ägyptische Bruchteile
- Acht-Damen-Puzzle
- Fakultäten
- Fibonacci-Folge
- FizzBuzz
- Galton-Box -Animation (Bohnenbox-Animation)
- Gammafunktion
- Gaußsche Elimination
- Größter gemeinsamer Teiler (ggT)
- Hallo Welt Programm Hallo Welt/Text
- Hofstadter Q-Folge
- Unendlichkeit
- Kleinstes gemeinsames Vielfaches (kgV)
- Leonardo-Zahlen
- Levenshtein-Distanz
- Schau-und-Sag-Sequenz
- Lucas-Zahlen
- Lucas-Lehmer-Primzahltest
- Mandelbrot-Menge (Zeichnung)
- Mersenne-Primzahlen
- Miller-Rabin-Primzahltest
- Morsezeichen
- Numerische Integration
- Pascalsches Dreieck (zeichnen)
- Perfekte Zahlen
- Permutationen
- Primzahlen (102 Aufgaben)
- Primorialzahlen
- Quaternionen
- Quine
- Zufallszahlen
- Schere, Stein, Papier (spielen)
- Römische Zahlen (kodieren/dekodieren)
- Wurzeln der Einheit
- Nullstellen einer Funktion
- Rot13 – eine einfache Buchstabensubstitutionschiffre
- Runge-Kutta-Methode
- SEDOLs
- Semiprimzahlen
- Sierpinski-Dreieck (zeichnen)
- Sortieralgorithmen (41)
- Quadratfreie ganze Zahlen
- Statistiken
- Stängel- und Blattdarstellung
- Funktionsdefinition
- Sudoku (lösen)
- Taxinummern
- Thue-Morse-Sequenz
- Tic-Tac-Toe (Kreuz und Kreis)
- Turm von Hanoi (lösen)
- Trigonometrische Funktionen
- Ulam-Spirale (zeichnen)
- Vampirzahlen
- Xiaolin Wus Linienalgorithmus (zeichnen)
- Zebra-Rätsel oder Einstein-Rätsel
- Vertretung in Zeckendorf
Siehe auch
- Beispielzentrierte Programmierung
- Wikifunctions – Wikimedia Open Library mit wiederverwendbarem Code
Referenzen
- ↑ Ralf Lämmel. „Software-Chrestomathien“. doi : 10.1016/j.scico.2013.11.014 . 2013.
- ^ ein b Nanz, Sebastian; Furia, Carlo A. (2015). Eine vergleichende Studie über Programmiersprachen im Rosetta-Code . S. 778–788 . arXiv : 1409.0252 . doi : 10.1109/ICSE.2015.90 . ISBN 978-1-4799-1934-5. S2CID 2570311 .
- ^ a b "Rosetta Code: Über den Rosetta Code" . www.rosettacode.org . 8. August 2010.
- ^ „Rosetta Code:Copyrights“ . 24. Januar 2010. Abgerufen am 19. Dezember 2010 .
- ^ Neil Walkinshaw. Kapitel 1: „Reverse-Engineering Software Behavior“. „Advances in Computers“ . 2013. S. 14.
- ^ Geoff Cox. „Speaking Code: Coding as Aesthetic and Political Expression“ . MIT Press, 2013. S. 6.
- ^ Nick Montfort „No Code: Null Programs“ . 2013. S. 10.
- ^ „Willkommen zum Rosetta-Code“ . Abgerufen am 7. Januar 2007 .
- ^ „Meistverlinkte Kategorien“ . Abgerufen am 22.02.2024 .
- ^ „Rosetta Code/Sprachen/Vollständige Liste“ . rosettacode.org . 4. März 2024.
- ^ „Seiten mit den meisten Kategorien“ . Abgerufen am 11.10.2018 .