Classic algorithm implementations across programming languages, measured by the BenchCommons toolset. It starts with Hello World in 452 languages.
This repository is the BenchCommons catalog of classic algorithm implementations across languages:
n-body, fannkuch-redux, spectral-norm, binary-trees, mandelbrot, sorting, searching, hashing and others.
Every implementation uses a pinned toolchain and has its output checked against a canonical expected output
before it is measured for time, memory and energy with perfratio
through benchmark-tool. The roadmap is tracked in
issue #11 and in docs/specs/.
It starts from Hello World, the first program almost everyone writes in a new language since Brian Kernighan used it in 1974. Hello World does almost no work, so it is the startup-cost baseline for each language: the time and memory a toolchain needs before any algorithm runs. The catalog has it in 452 languages: every language in the TIOBE Index top 100, the languages that shaped computing history, the new languages people are talking about, Brazilian languages, and a long tail of assembly, shell, scientific, hardware, markup and esoteric languages.
377 of 452 programs (83%) are checked on every push by GitHub Actions on Linux, macOS and Windows:
- β 346 run and their output is checked to contain "Hello World";
- π§ 31 are compiled or validated with the language's official tool, for languages that cannot print text (shaders, smart contracts, hardware, configuration) or have no free runtime.
- TIOBE Index β Top 50
- TIOBE Index β 51 to 100
- Historical languages
- Modern & trending languages
- More general-purpose languages
- Assembly, IR & bytecode
- Shells & automation
- Scientific, math & statistics
- Query languages
- Hardware, GPU & quantum
- Smart contracts
- Game & embedded scripting
- Markup, templates & web
- Configuration, build & infrastructure
- Brazilian languages π§π·
- Esoteric languages
- Running the tests
- Contributing
Ranking from the TIOBE Index of September 2026. Rankings change every month; the list is a snapshot. Purely graphical languages (Scratch, LabVIEW, Ladder Logic) have no text syntax, so their files contain a textual representation.
| # | Language | File | CI | Notes |
|---|---|---|---|---|
| 1 | Python | HelloWorld.py |
β | |
| 2 | C | HelloWorld.c |
β | |
| 3 | C++ | HelloWorld.cpp |
β | |
| 4 | Java | HelloWorld.java |
β | |
| 5 | C# | HelloWorld.cs |
β | |
| 6 | JavaScript | HelloWorld.js |
β | |
| 7 | Visual Basic | HelloWorld.vb |
β | |
| 8 | SQL | HelloWorld.sql |
β | |
| 9 | R | HelloWorld.r |
β | |
| 10 | Rust | HelloWorld.rs |
β | |
| 11 | Fortran | HelloWorld.f90 |
β | |
| 12 | Go | HelloWorld.go |
β | |
| 13 | Delphi / Object Pascal | HelloWorld.dpr |
β | |
| 14 | PHP | HelloWorld.php |
β | |
| 15 | Scratch | HelloWorld.txt |
textual (scratchblocks) form | |
| 16 | Assembly language | HelloWorld.asm |
β | MASM/TASM, DOS int 21h |
| 17 | Ada | helloworld.adb |
β | |
| 18 | Swift | HelloWorld.swift |
β | |
| 19 | Objective-C | HelloWorld.m |
β | |
| 20 | COBOL | HelloWorld.cob |
β | |
| 21 | Julia | HelloWorld.jl |
β | |
| 22 | Ruby | HelloWorld.rb |
β | |
| 23 | Perl | HelloWorld.pl |
β | |
| 24 | SAS | HelloWorld.sas |
||
| 25 | Classic Visual Basic | HelloWorld.bas |
||
| 26 | Kotlin | HelloWorld.kt |
β | |
| 27 | MATLAB | HelloWorld.m |
β | also runs in GNU Octave |
| 28 | Caml | HelloWorld.ml |
β | |
| 29 | Prolog | HelloWorld.pro |
β | |
| 30 | GML | HelloWorld.gml |
||
| 31 | Lua | HelloWorld.lua |
β | |
| 32 | PowerShell | HelloWorld.ps1 |
β | |
| 33 | D | HelloWorld.d |
β | |
| 34 | PL/SQL | HelloWorld.pls |
β | |
| 35 | ABAP | HelloWorld.abap |
β | |
| 36 | Transact-SQL | HelloWorld.sql |
β | |
| 37 | VBScript | HelloWorld.vbs |
β | |
| 38 | OCaml | HelloWorld.ml |
β | |
| 39 | TypeScript | HelloWorld.ts |
β | |
| 40 | Zig | HelloWorld.zig |
β | |
| 41 | Dart | HelloWorld.dart |
β | |
| 42 | X++ | HelloWorld.xpp |
||
| 43 | Lisp | HelloWorld.lisp |
β | |
| 44 | Scala | HelloWorld.scala |
β | |
| 45 | LabVIEW | HelloWorld.txt |
graphical; textual description | |
| 46 | Ladder Logic | HelloWorld.txt |
graphical; ASCII rung | |
| 47 | VHDL | HelloWorld.vhd |
β | |
| 48 | XSLT | HelloWorld.xsl |
β | |
| 49 | Haskell | HelloWorld.hs |
β | |
| 50 | (Visual) FoxPro | HelloWorld.prg |
TIOBE publishes positions 51β100 unranked, in alphabetical order.
Languages that shaped programming, ordered by the year they first appeared.
| Language | Year | File | CI | Notes |
|---|---|---|---|---|
| MAD | 1959 | HELLO.mad |
Michigan Algorithm Decoder | |
| RPG | 1959 | HelloWorld.rpgle |
modern free-form RPG IV | |
| ALGOL 60 | 1960 | HelloWorld.alg |
β | |
| JOSS | 1963 | HelloWorld.joss |
||
| BASIC | 1964 | HelloWorld.bas |
β | |
| JCL | 1964 | HELLO.jcl |
IBM mainframe Job Control Language | |
| ALGOL W | 1966 | HelloWorld.alw |
β | |
| APL | 1966 | HelloWorld.apl |
β | |
| MUMPS (M) | 1966 | HelloWorld.m |
β | |
| Simula | 1967 | HelloWorld.sim |
β | |
| SNOBOL4 | 1967 | HelloWorld.sno |
β | |
| ALGOL 68 | 1968 | HelloWorld.a68 |
β | |
| FOCAL | 1968 | HelloWorld.foc |
β | |
| B | 1969 | HelloWorld.b |
β | |
| Forth | 1970 | HelloWorld.fth |
β | |
| Pascal | 1970 | HelloWorld.pas |
β | |
| INTERCAL | 1972 | HelloWorld.i |
β | |
| Smalltalk | 1972 | HelloWorld.st |
β | |
| COMAL | 1973 | HelloWorld.lst |
β | |
| Ratfor | 1974 | HelloWorld.r |
β | |
| CLU | 1975 | HelloWorld.clu |
||
| Commodore BASIC | 1977 | HelloWorld.bas |
β | |
| Icon | 1977 | HelloWorld.icn |
β | |
| Hope | 1978 | HelloWorld.hop |
β | |
| Modula-2 | 1978 | HelloWorld.mod |
β | |
| dBase | 1979 | HelloWorld.prg |
β | |
| REXX | 1979 | HelloWorld.rexx |
β | |
| BBC BASIC | 1981 | HelloWorld.bbc |
β | |
| PostScript | 1982 | HelloWorld.ps |
β | |
| Turing | 1982 | HelloWorld.t |
||
| occam | 1983 | HelloWorld.occ |
||
| Standard ML | 1983 | HelloWorld.sml |
β | |
| Verilog / SystemVerilog | 1984 | HelloWorld.sv |
β | |
| Clipper | 1985 | HelloWorld.prg |
β | |
| Miranda | 1985 | HelloWorld.mira |
β | |
| Eiffel | 1986 | hello_world.e |
β | |
| ABC | 1987 | HelloWorld.abc |
β | |
| HyperTalk | 1987 | HelloWorld.hypertalk |
||
| Oberon | 1987 | HelloWorld.Mod |
β | |
| Self | 1987 | HelloWorld.self |
||
| Lingo | 1988 | HelloWorld.ls |
||
| Modula-3 | 1988 | Main.m3 |
β | |
| Sather | 1990 | HelloWorld.sa |
||
| TI-BASIC | 1990 | HELLO.8xp.txt |
TI-83/84 calculators | |
| QBasic | 1991 | HELLO.BAS |
β | |
| NewtonScript | 1993 | HelloWorld.nwt |
β | |
| Limbo | 1995 | HelloWorld.b |
||
| LotusScript | 1995 | HelloWorld.lss |
||
| Python 2 | 2000 | HelloWorld.py |
β |
New or fast-growing languages that are not (yet) in the TIOBE top 100.
| Language | File | CI | Notes |
|---|---|---|---|
| Ballerina | HelloWorld.bal |
β | |
| Bend | HelloWorld.bend |
β | |
| C3 | HelloWorld.c3 |
β | |
| Carbon | HelloWorld.carbon |
β | experimental |
| Chapel | HelloWorld.chpl |
β | |
| Crystal | HelloWorld.cr |
β | |
| Elm | Main.elm |
π§ | |
| Gleam | HelloWorld.gleam |
β | |
| Grain | HelloWorld.gr |
β | |
| Hare | HelloWorld.ha |
β | |
| Haxe | HelloWorld.hx |
β | |
| Inko | HelloWorld.inko |
β | |
| Jai | HelloWorld.jai |
closed beta | |
| Koka | helloworld.kk |
β | |
| Lean 4 | HelloWorld.lean |
β | |
| Mojo | HelloWorld.mojo |
β | |
| MoonBit | HelloWorld.mbt |
β | |
| Odin | HelloWorld.odin |
β | |
| Pony | HelloWorld.pony |
β | |
| Q# | HelloWorld.qs |
β | |
| Racket | HelloWorld.rkt |
β | |
| Raku (Perl 6) | HelloWorld.raku |
β | |
| ReScript | HelloWorld.res |
β | |
| Roc | HelloWorld.roc |
β | |
| Unison | HelloWorld.u |
β | |
| Vala | HelloWorld.vala |
β | |
| WebAssembly (WAT) | HelloWorld.wat |
β |
Functional, logic, object-oriented and scripting languages outside the TIOBE top 100.
| Language | File | CI | Notes |
|---|---|---|---|
| Agda | HelloWorld.agda |
β | |
| Alice ML | HelloWorld.aml |
||
| Arc | HelloWorld.arc |
β | |
| AssemblyScript | HelloWorld.ts |
β | |
| ATS | HelloWorld.dats |
β | |
| Austral | HelloWorld.aum |
β | |
| AutoLISP | HelloWorld.lsp |
||
| Babashka | HelloWorld.bb |
β | |
| Beef | Program.bf |
||
| Berry | HelloWorld.be |
β | |
| Boo | HelloWorld.boo |
β | |
| Carp | HelloWorld.carp |
β | |
| Ceylon | run.ceylon |
β | |
| CHICKEN Scheme | HelloWorld.scm |
β | |
| Civet | HelloWorld.civet |
β | |
| Clean | HelloWorld.icl |
β | |
| ClojureScript | HelloWorld.cljs |
β | |
| Cobra | HelloWorld.cobra |
β | |
| COOL | HelloWorld.cl |
Classroom Object Oriented Language; two variants | |
| Cpp2 (cppfront) | HelloWorld.cpp2 |
β | |
| Curry | HelloWorld.curry |
β | |
| Cyclone | HelloWorld.cyc |
||
| Dafny | HelloWorld.dfy |
β | |
| Dylan | hello-world.dylan |
β | |
| Emacs Lisp | HelloWorld.el |
β | |
| Eta | Main.hs |
β | |
| Euphoria | HelloWorld.ex |
β | |
| F* | HelloWorld.fst |
π§ | |
| Factor | hello-world.factor |
β | |
| Fantom | HelloWorld.fan |
β | |
| Fennel | HelloWorld.fnl |
β | |
| FreeBASIC | HelloWorld.bas |
β | |
| Frege | HelloWorld.fr |
β | |
| G-Portugol | HelloWorld.gpt |
β | open source Portugol compiler, 2005 |
| Genie | HelloWorld.gs |
β | |
| Golo | HelloWorld.golo |
β | |
| Gosu | HelloWorld.gsp |
β | |
| Hack | HelloWorld.hack |
β | |
| HolyC | HelloWorld.HC |
β | |
| Hy | HelloWorld.hy |
β | |
| Hylo | HelloWorld.hylo |
β | |
| Idris | HelloWorld.idr |
β | |
| Imba | HelloWorld.imba |
β | |
| Jakt | HelloWorld.jakt |
||
| Janet | HelloWorld.janet |
β | |
| Joy | HelloWorld.joy |
β | |
| Juliar | HelloWorld.jrl |
||
| Kotlin Script | HelloWorld.main.kts |
β | |
| LFE | HelloWorld.lfe |
β | |
| LiveScript | HelloWorld.ls |
β | |
| Lobster | HelloWorld.lobster |
β | |
| Logtalk | hello_world.lgt |
β | |
| Mercury | helloworld.m |
β | |
| MoonScript | HelloWorld.moon |
β | |
| Nelua | HelloWorld.nelua |
β | |
| Nemerle | HelloWorld.n |
||
| NetRexx | HelloWorld.nrx |
β | |
| newLISP | HelloWorld.lsp |
β | |
| Objective-J | HelloWorld.j |
β | |
| Oxygene | HelloWorld.pas |
||
| Oz | HelloWorld.oz |
β | |
| Pawn | HelloWorld.pwn |
β | |
| Picat | hello_world.pi |
β | |
| PicoLisp | HelloWorld.l |
β | |
| Pike | HelloWorld.pike |
β | |
| Portugol (VisuAlg) | HelloWorld.alg |
β | pseudocode used to teach programming in Brazil |
| Portugol Studio | HelloWorld.por |
β | UNIVALI |
| Potigol | HelloWorld.poti |
β | IFRN, functional language in Portuguese |
| Processing | HelloWorld.pde |
β | |
| PureScript | Main.purs |
β | |
| ReasonML | HelloWorld.re |
β | |
| Red | HelloWorld.red |
β | |
| Rocq (Coq) | HelloWorld.v |
β | |
| Seed7 | HelloWorld.sd7 |
β | |
| Shen | HelloWorld.shen |
β | |
| Small Basic | HelloWorld.sb |
||
| Terra | HelloWorld.t |
β | |
| Toit | hello.toit |
β | |
| Umka | HelloWorld.um |
β | |
| Unicon | HelloWorld.icn |
β | |
| Vale | HelloWorld.vale |
β | |
| Wren | HelloWorld.wren |
β | |
| X10 | HelloWorld.x10 |
β | |
| Xtend | HelloWorld.xtend |
β | |
| Zephir | World.zep |
β | |
| Γgua / DelΓ©gua | HelloWorld.egua |
β | DelΓ©gua is a fork of Γgua and runs .egua files |
Machine-level languages for specific architectures and virtual machines.
| Language | File | CI | Notes |
|---|---|---|---|
| Assembly (6502, Commodore 64) | HelloWorld.asm |
π§ | 64tass syntax; SYS 49152 to run |
| Assembly (ARM64, Linux) | HelloWorld.s |
β | |
| Assembly (ARM64, macOS) | HelloWorld.s |
β | |
| Assembly (MIPS, SPIM/MARS) | HelloWorld.asm |
β | |
| Assembly (RISC-V, Linux) | HelloWorld.s |
β | |
| Assembly (x86-64, Linux, NASM) | HelloWorld.asm |
β | |
| Assembly (Z80, CP/M) | HELLO.ASM |
β | |
| C-- | HelloWorld.cmm |
||
| CIL (.NET IL) | HelloWorld.il |
β | |
| JVM bytecode (Jasmin) | HelloWorld.j |
β | |
| LLVM IR | HelloWorld.ll |
β | |
| MMIX | HelloWorld.mms |
β | Donald Knuth's architecture from The Art of Computer Programming |
Command shells, OS scripting and desktop automation.
| Language | File | CI | Notes |
|---|---|---|---|
| AutoHotkey | HelloWorld.ahk |
||
| AutoIt | HelloWorld.au3 |
||
| Dash | HelloWorld.sh |
β | |
| dc | HelloWorld.dc |
β | |
| Elvish | HelloWorld.elv |
β | |
| Expect | HelloWorld.exp |
β | |
| fish | HelloWorld.fish |
β | |
| Google Apps Script | Code.gs |
||
| JavaScript for Automation (JXA) | HelloWorld.js |
β | |
| jq | HelloWorld.jq |
β | |
| KiXtart | HelloWorld.kix |
||
| Korn shell | HelloWorld.ksh |
β | |
| LibreOffice Basic | HelloWorld.bas |
||
| m4 | HelloWorld.m4 |
β | |
| mIRC scripting | HelloWorld.mrc |
||
| Nushell | HelloWorld.nu |
β | |
| rc (Plan 9 shell) | HelloWorld.rc |
β | |
| sed | HelloWorld.sed |
β | |
| VBA | HelloWorld.bas |
Microsoft Office macros | |
| Vim script | HelloWorld.vim |
β | |
| Windows CMD (NT batch) | HelloWorld.cmd |
β | |
| Xonsh | HelloWorld.xsh |
β | |
| YSH (Oils) | HelloWorld.ysh |
β |
Numerical computing, computer algebra and statistics.
| Language | File | CI | Notes |
|---|---|---|---|
| AMPL | HelloWorld.run |
β | |
| BQN | HelloWorld.bqn |
β | |
| GAP | HelloWorld.g |
β | |
| GAUSS | HelloWorld.gss |
||
| GNU Octave | HelloWorld.m |
β | |
| gnuplot | HelloWorld.gp |
β | |
| IDL | HelloWorld.pro |
β | |
| K | HelloWorld.k |
β | |
| Macaulay2 | HelloWorld.m2 |
β | |
| Magma | HelloWorld.m |
||
| Maple | HelloWorld.mpl |
||
| Maxima | HelloWorld.mac |
β | |
| MiniZinc | HelloWorld.mzn |
β | |
| Modelica | HelloWorld.mo |
β | |
| Nial | HelloWorld.ndf |
β | |
| PARI/GP | HelloWorld.gp |
β | |
| REDUCE | HelloWorld.red |
β | |
| SageMath | HelloWorld.sage |
β | |
| Scilab | HelloWorld.sce |
β | |
| SPSS Syntax | HelloWorld.sps |
β | |
| Stan | HelloWorld.stan |
β | |
| Stata | HelloWorld.do |
||
| Uiua | HelloWorld.ua |
β | |
| Wolfram Language (Mathematica) | HelloWorld.wl |
β |
Databases, graphs and data querying.
| Language | File | CI | Notes |
|---|---|---|---|
| Cypher | HelloWorld.cypher |
β | |
| Datalog (SoufflΓ©) | HelloWorld.dl |
β | |
| DAX | HelloWorld.dax |
||
| Excel formula | HelloWorld.xlsx.txt |
β | type it into any cell |
| GraphQL | HelloWorld.graphql |
π§ | schema plus query; the resolver returns "Hello World" |
| KQL (Kusto) | HelloWorld.kql |
||
| Natural | HELLO.nsp |
||
| OpenEdge ABL (Progress 4GL) | HelloWorld.p |
||
| PL/pgSQL | HelloWorld.sql |
β | |
| Power Query M | HelloWorld.pq |
||
| SPARQL | HelloWorld.rq |
β | |
| Splunk SPL | HelloWorld.spl |
||
| SQLite SQL | HelloWorld.sql |
β | |
| XQuery | HelloWorld.xq |
β |
Hardware description, GPU kernels and quantum programs.
| Language | File | CI | Notes |
|---|---|---|---|
| Amaranth HDL | hello_world.py |
β | |
| Bluespec SystemVerilog | HelloWorld.bsv |
β | |
| Chisel | HelloWorld.scala |
π§ | |
| CUDA | HelloWorld.cu |
π§ | |
| GLSL | HelloWorld.comp |
π§ | Vulkan compute shader with debugPrintfEXT |
| HLSL | HelloWorld.hlsl |
π§ | |
| Metal Shading Language | HelloWorld.metal |
||
| OpenQASM | HelloWorld.qasm |
π§ | quantum circuit; no text output |
| SystemC | HelloWorld.cpp |
β | |
| WGSL | HelloWorld.wgsl |
π§ | no text output; renders a solid color |
Blockchain and smart-contract languages.
| Language | File | CI | Notes |
|---|---|---|---|
| Cairo | hello_world.cairo |
β | |
| Clarity | hello-world.clar |
π§ | |
| ink! (Rust) | lib.rs |
π§ | |
| Michelson (Tezos) | hello_world.tz |
β | |
| Move | hello_world.move |
π§ | |
| Sway (Fuel) | main.sw |
π§ | |
| Vyper | HelloWorld.vy |
π§ | |
| Yul | HelloWorld.yul |
π§ |
Languages embedded in game engines and applications.
| Language | File | CI | Notes |
|---|---|---|---|
| AGS Script (Adventure Game Studio) | GlobalScript.asc |
||
| AngelScript | HelloWorld.as |
β | |
| Arduino | HelloWorld.ino |
π§ | |
| BlitzBasic | HelloWorld.bb |
||
| ChaiScript | HelloWorld.chai |
β | |
| GDScript (Godot) | hello_world.gd |
β | |
| Gravity | HelloWorld.gravity |
β | |
| Inform 7 | story.ni |
β | |
| LSL (Second Life) | HelloWorld.lsl |
π§ | |
| Luau (Roblox) | HelloWorld.luau |
β | |
| MicroPython | main.py |
β | |
| Minecraft function | hello.mcfunction |
π§ | |
| Papyrus (Skyrim) | HelloWorld.psc |
||
| PICO-8 Lua | hello.p8.lua |
||
| QuakeC | progs.qc |
π§ | |
| Ren'Py | script.rpy |
π§ | |
| Squirrel | HelloWorld.nut |
β | |
| Teal | HelloWorld.tl |
β | |
| UnrealScript | HelloWorld.uc |
||
| YueScript | HelloWorld.yue |
β | |
| ZIL (Zork Implementation Language) | hello.zil |
β |
Documents, stylesheets and templates. They render or produce "Hello World" instead of printing it.
Build systems, configuration languages and infrastructure as code.
| Language | File | CI | Notes |
|---|---|---|---|
| Ansible | hello-world.yml |
β | |
| Apache Ant | build.xml |
β | |
| Bicep | main.bicep |
π§ | |
| CMake | HelloWorld.cmake |
β | |
| CUE | HelloWorld.cue |
β | |
| Dhall | HelloWorld.dhall |
β | |
| Dockerfile | Dockerfile |
β | |
| GitHub Actions | hello-world.yml |
π§ | |
| Gradle Kotlin DSL | build.gradle.kts |
β | |
| HCL (Terraform) | main.tf |
β | |
| JSON | hello.json |
β | |
| Jsonnet | HelloWorld.jsonnet |
β | |
| just | justfile |
β | |
| KCL | HelloWorld.k |
β | |
| Make | Makefile |
β | |
| Meson | meson.build |
β | |
| Nickel | HelloWorld.ncl |
β | |
| Nix | HelloWorld.nix |
β | |
| Pkl | HelloWorld.pkl |
β | |
| Puppet | hello_world.pp |
β | |
| Rego (Open Policy Agent) | hello.rego |
β | |
| Starlark (Bazel) | BUILD.bazel |
β | |
| TOML | hello.toml |
β | |
| YAML | hello.yaml |
β |
Languages created in Brazil or designed for programming in Portuguese. Some of them also appear in other tables.
| Language | File | CI | Notes |
|---|---|---|---|
| BIRL | HelloWorld.birl |
β | keywords from bodybuilder Bambam's catchphrases |
| Elixir | HelloWorld.exs |
β | created by JosΓ© Valim, 2012 |
| G-Portugol | HelloWorld.gpt |
β | open source Portugol compiler, 2005 |
| Lua | HelloWorld.lua |
β | PUC-Rio, 1993 β the most widely used Brazilian language |
| Portugol (VisuAlg) | HelloWorld.alg |
β | pseudocode used to teach programming in Brazil |
| Portugol Studio | HelloWorld.por |
β | UNIVALI |
| Potigol | HelloWorld.poti |
β | IFRN, functional language in Portuguese |
| Γgua / DelΓ©gua | HelloWorld.egua |
β | DelΓ©gua is a fork of Γgua and runs .egua files |
Languages designed as jokes, puzzles or experiments.
| Language | File | CI | Notes |
|---|---|---|---|
| ArnoldC | HelloWorld.arnoldc |
β | |
| Befunge | HelloWorld.bf93 |
β | |
| BIRL | HelloWorld.birl |
β | keywords from bodybuilder Bambam's catchphrases |
| Brainfuck | HelloWorld.bf |
β | |
| Chef | HelloWorld.chef |
β | |
| COW | HelloWorld.cow |
β | generated from the Brainfuck program |
| Emojicode | HelloWorld.emojic |
β | |
| FALSE | HelloWorld.f |
||
| GolfScript | HelloWorld.gs |
β | |
| HQ9+ | HelloWorld.hq9 |
β | H prints "Hello, world!" |
| LOLCODE | HelloWorld.lol |
β | |
| Ook! | HelloWorld.ook |
β | generated from the Brainfuck program |
| Piet | HelloWorld.txt |
image-based; link to the canonical program | |
| Pyth | HelloWorld.pyth |
β | |
| Rockstar | HelloWorld.rock |
β | |
| Shakespeare | HelloWorld.spl |
β | |
| Unlambda | HelloWorld.unl |
β | |
| Whitespace | HelloWorld.ws |
β |
python3 scripts/hello.py check # metadata, files and README are consistent
python3 scripts/hello.py test # run every language whose toolchain is installed locally
python3 scripts/hello.py test --lang python --lang rust
python3 scripts/hello.py test --changed-since origin/master # only languages changed on this branch
python3 scripts/hello.py readme # regenerate this README from languages/*/language.json and */meta.jsonThe catalog is organized by language, with one folder per algorithm inside it:
languages/<lang>/
βββ language.json # the language: name, section or TIOBE position, year, notes
βββ hello-world/ # the startup-cost baseline every language has
β βββ meta.json # files and test of this implementation
β βββ HelloWorld.<ext>
βββ <algorithm>/ # more classic algorithms (see docs/specs/010-algorithm-set)
- Check the tables above: is the language already covered?
- For a new language, create
languages/<lang>/(lowercase, hyphens) with alanguage.json:{"name": "Python", "section": "general", "notes": ""}sectionis one of:historical,modern,general,assembly,shells,scientific,query,hardware,blockchain,game,markup,config,esoteric. - Add the implementation in
languages/<lang>/<algorithm>/(hello-worldfirst) with the program and ameta.json:{"files": ["HelloWorld.py"], "test": {"group": "base", "run": "python3 HelloWorld.py"}}testis optional: add it when the language can run on a GitHub runner.groupisbase(tools preinstalled on Ubuntu),apt(with an"apt": ["package"]list),extra(tools set up in the workflow),macosorwindows, ordocker(with a pinned"image";runexecutes inside it).needslists the commands that must exist (defaults to the first word ofrun). Set"kind": "compile"when the program cannot print and the test only checks that the official tool accepts it. - The program should be the idiomatic, minimal version for that language; Hello World prints (or displays)
Hello World. - Run
python3 scripts/hello.py readmeandpython3 scripts/hello.py check, then open a pull request.
Maintained by @matbrgz.
