Skip to content

About

Classic algorithm implementations across hundreds of programming languages, measured by BenchCommons with perfratio. Started as Hello World in 452 languages.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

1 watching

Forks

Latest commit

Β 

History

303 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

catalog-algorithms

Classic algorithm implementations across programming languages, measured by the BenchCommons toolset. It starts with Hello World in 452 languages.

CI Languages Tested in CI TIOBE coverage License

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.

Contents

TIOBE Index β€” Top 50

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 Index β€” 51 to 100

TIOBE publishes positions 51–100 unranked, in alphabetical order.

Language File CI Notes
ActionScript HelloWorld.as
Apex HelloWorld.cls
AppleScript HelloWorld.applescript βœ…
Awk HelloWorld.awk βœ…
Bash HelloWorld.bash βœ…
bc HelloWorld.bc βœ…
BCPL HelloWorld.bcpl βœ…
Bourne shell HelloWorld.sh βœ…
C shell HelloWorld.csh βœ…
CFML HelloWorld.cfm βœ…
CL (OS/400) HelloWorld.clle
Clojure HelloWorld.clj βœ…
CoffeeScript HelloWorld.coffee βœ…
cT HelloWorld.t
ECMAScript HelloWorld.mjs βœ…
EGL HelloWorld.egl
Elixir HelloWorld.exs βœ…
Erlang helloworld.erl βœ…
F# HelloWorld.fs βœ…
GAMS HelloWorld.gms
Groovy HelloWorld.groovy βœ…
Io HelloWorld.io βœ…
J HelloWorld.ijs βœ…
J# HelloWorld.jsl
JScript HelloWorld.js βœ… Windows Script Host
Logo HelloWorld.logo βœ…
ML HelloWorld.sml βœ…
MS-DOS batch HelloWorld.bat βœ…
NetLogo HelloWorld.nls
Nim HelloWorld.nim βœ…
OpenCL HelloWorld.cl πŸ”§
PL/I HelloWorld.pli βœ…
PowerScript HelloWorld.powerscript
Pure Data HelloWorld.pd βœ… patch file; prints to the Pd console
PureBasic HelloWorld.pb
Q HelloWorld.q
REBOL HelloWorld.reb βœ…
Ring HelloWorld.ring βœ…
Scheme HelloWorld.scm βœ…
Solidity HelloWorld.sol πŸ”§
Structured Text HelloWorld.st πŸ”§ IEC 61131-3
Tcl HelloWorld.tcl βœ…
tcsh HelloWorld.tcsh βœ…
thinBasic HelloWorld.tbasic
V HelloWorld.v
Xbase++ HelloWorld.prg βœ…
XC HelloWorld.xc βœ…
Xojo HelloWorld.xojo_code
XPL HelloWorld.xpl
Z shell HelloWorld.zsh βœ…

Historical languages

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 βœ…

Modern & trending languages

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 βœ…

More general-purpose languages

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

Assembly, IR & bytecode

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

Shells & automation

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 βœ…

Scientific, math & statistics

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 βœ…

Query languages

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, GPU & quantum

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

Smart contracts

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 πŸ”§

Game & embedded scripting

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 βœ…

Markup, templates & web

Documents, stylesheets and templates. They render or produce "Hello World" instead of printing it.

Language File CI Notes
AsciiDoc HelloWorld.adoc βœ…
Astro HelloWorld.astro βœ…
Blade (Laravel) hello.blade.php βœ…
Classic ASP HelloWorld.asp
CSS HelloWorld.css πŸ”§
EJS HelloWorld.ejs βœ…
Encapsulated PostScript HelloWorld.eps βœ…
ERB (Embedded Ruby) HelloWorld.erb βœ…
Graphviz DOT HelloWorld.dot πŸ”§
Haml HelloWorld.haml βœ…
Handlebars HelloWorld.hbs πŸ”§
HTML HelloWorld.html βœ…
Jinja HelloWorld.jinja βœ…
JSP HelloWorld.jsp βœ…
JSX (React) HelloWorld.jsx βœ…
LaTeX HelloWorld.tex βœ…
Liquid HelloWorld.liquid βœ…
Markdown HelloWorld.md βœ…
MDX HelloWorld.mdx βœ…
Mermaid HelloWorld.mmd πŸ”§
Mustache HelloWorld.mustache βœ…
Org mode HelloWorld.org βœ…
PlantUML HelloWorld.puml βœ…
Pug HelloWorld.pug βœ…
Razor (ASP.NET) HelloWorld.cshtml βœ…
reStructuredText HelloWorld.rst βœ…
RTF HelloWorld.rtf βœ…
Slim HelloWorld.slim βœ…
Svelte HelloWorld.svelte βœ…
SVG HelloWorld.svg βœ…
TeX (plain) HelloWorld.tex βœ…
troff / groff HelloWorld.ms βœ…
Twig HelloWorld.twig βœ…
Typst HelloWorld.typ βœ…
VRML HelloWorld.wrl πŸ”§
Vue (SFC) HelloWorld.vue βœ…
XML HelloWorld.xml βœ…

Configuration, build & infrastructure

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 βœ…

Brazilian languages πŸ‡§πŸ‡·

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

Esoteric languages

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 βœ…

Running the tests

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.json

Contributing

The 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)
  1. Check the tables above: is the language already covered?
  2. For a new language, create languages/<lang>/ (lowercase, hyphens) with a language.json:
    {"name": "Python", "section": "general", "notes": ""}
    section is one of: historical, modern, general, assembly, shells, scientific, query, hardware, blockchain, game, markup, config, esoteric.
  3. Add the implementation in languages/<lang>/<algorithm>/ (hello-world first) with the program and a meta.json:
    {"files": ["HelloWorld.py"], "test": {"group": "base", "run": "python3 HelloWorld.py"}}
    test is optional: add it when the language can run on a GitHub runner. group is base (tools preinstalled on Ubuntu), apt (with an "apt": ["package"] list), extra (tools set up in the workflow), macos or windows, or docker (with a pinned "image"; run executes inside it). needs lists the commands that must exist (defaults to the first word of run). Set "kind": "compile" when the program cannot print and the test only checks that the official tool accepts it.
  4. The program should be the idiomatic, minimal version for that language; Hello World prints (or displays) Hello World.
  5. Run python3 scripts/hello.py readme and python3 scripts/hello.py check, then open a pull request.

Contributors

Maintained by @matbrgz.

matbrgz

Contributors

License

MIT

About

Classic algorithm implementations across hundreds of programming languages, measured by BenchCommons with perfratio. Started as Hello World in 452 languages.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages