Skip to content

cbpudding/link-all-the-languages

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

94 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Link All the Languages!

An ongoing project created by Alexander Hill where we link as many programming languages as possible into a single executable.

Theory

Most programming languages provide a foreign function interface to the C language. Therefore, language X should be able to call functions in language Y and language Y should be able to call functions in language X using the C ABI.

Languages

Tier 3 (Statically linked and fully interoperable)

  • Assembly
  • C
  • C++
  • Nim
  • Zig

Tier 2 (Can call C and be called by C)

  • D
  • Lua
  • Rust

Tier 1 (Can be called by C)

  • Fortran
  • Go
  • Java
  • Kotlin
  • Python
  • Rexx
  • Ruby
  • Tcl

To-do

  • Ada
  • Agda
  • ALGOL
  • APL
  • B
  • Ballerina
  • BCPL
  • Boo
  • Bosque
  • C#
  • C--
  • Caml
  • Carbon
  • Carp
  • Clojure
  • COBOL
  • CoffeeScript
  • Common Lisp
  • Coq
  • Dart
  • Eiffel
  • Elixir
  • Erlang
  • F
  • F#
  • Forth
  • FreeBasic
  • Futhark
  • Groovy
  • Hack
  • Haskell
  • Haxe
  • Hy
  • Idris
  • Janet
  • Javascript
  • Julia
  • MATLAB
  • Mercury
  • Modula-3
  • OCaml
  • Oz
  • Pascal
  • Perl
  • PL/I
  • PHP
  • PowerShell
  • Prolog
  • R
  • Racket
  • Raku
  • Ratfor
  • RPG
  • Scala
  • Scheme
  • Smalltalk
  • Squirrel
  • Swift
  • Typescript
  • Unison

Impossible

Rules for including languages

  1. Languages must be statically linked
  2. Languages must be able to use their standard library
  3. Languages must be able to call C and be called by C
  4. Languages must be stable(1.0.0 or greater in semantic versioning)

About

Creating the world's most complex "Hello world" program

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published