Comparison of open-source programming language licensing

This is a comparison of open-source programming language licensing and related legal issues, covering all language implementations. Open-source programming languages are those that are released under open-source licenses.

   Title   

Language

Implementation license

Additional information

GNAT

Ada

GPLv3

FSF GNAT is GPLv3 with runtime exception, other versions have a GPL runtime.

ALGOL 68G

ALGOL 68

GPL

ELLA ALGOL 68

ALGOL 68

Public domain or Crown copyright

BWK awk

AWK

Custom

gawk

AWK

GPLv3

mawk

AWK

GPLv2

GCC

C, C++, Objective-C, ASM, Go

GPL

Clang, LLVM

C, C++, Objective-C

NCSA

OpenCOBOL

COBOL

GPL

Mono

C#, Visual Basic .NET

GPLv2, MIT (X11), LGPLv2

Erlang

Erlang

Erlang, Apache 2.0

Gforth

Forth

GPLv3

Open Firmware

Forth

BSD

Pforth

Forth

Public domain

FreeBASIC

BASIC

GPL

Inspired by and compatible with QBasic.

Gambas

BASIC

GPL

Partially compatible with Visual Basic code.

Harbour

Harbour

GPL

Helium

Haskell

GPL

Icon

Icon

Public domain

IcedTea

Java

GPL

WebKit JavaScriptCore

JavaScript

LGPL v2.1

SpiderMonkey

JavaScript

MPL

V8

JavaScript

BSD

Julia

Julia

MIT, GPL and BSD

A few (optional) GPL math libraries make the full environment GPL as a whole.

Emacs Lisp

Lisp

GPLv3

EGL

EGL

EPL

Lua

Lua

MIT

Logtalk

Logtalk

GPLv3

linking exception

Free Pascal

Pascal, Object Pascal

GPL, LGPL

GPL applies to the compiler, while LGPL with static linking exception applies to the runtime libraries

Perl

Perl

Artistic or GPL

PHP

PHP

PHP (BSD-style)

Pike

Pike

GPL, LGPL, MPL 1.1

Free Poplog

POP-11, Common Lisp, Prolog, Standard ML

Custom, based on MIT/XFree86

GNU Prolog

Prolog

GPLv2

SWI-Prolog

Prolog

LGPL

Ciao

Prolog

GPL, LGPL

''Opa

Opa

Affero GPL

Python

Python

PSF (GPL compatible)

Jython

Python

PSF (GPL compatible)

IronPython

Python

Ms-PL

PyPy

Python

MIT

Regina

REXX

LGPL

Ruby MRI

Ruby

Ruby or GPL

Reference implementation through v1.8

YARV

Ruby

Ruby or BSD

Reference implementation for v1.9; GPL for v1.9.1–1.9.2; BSDL for 1.9.3+

JRuby

Ruby

CPL, GPL, LGPL

IronRuby

Ruby

Ms-PL

Rubinius

Ruby

BSD

XRuby

Ruby

GPL v2

Bigloo

Scheme

GPL, LGPL

Chicken

Scheme

BSD

Gambit

Scheme

LGPL, Apache

Guile

Scheme

LGPL

JScheme

Scheme

zlib

BiwaScheme

Scheme

MIT

Kawa

Scheme

MIT

Racket

Scheme

LGPL

Scsh

Scheme

BSD

GNU Smalltalk

Smalltalk

GPL v2

Pharo

Smalltalk

MIT

Squeak

Smalltalk

Apple Public Source, Apache (OLTPC)

CSNOBOL4

SNOBOL4

Custom

Tcl/Tk

Tcl/Tk

Tcl/Tk (BSD-style)

MINT

TRAC

GPL

ash

Unix Shell

BSD

''bash

Unix Shell

GPLv3

ksh93

Unix Shell

CPL

Clojure

Clojure

EPL

ClojureCLR

Clojure

EPL

Clojure-Py

Clojure

EPL

ClojureScript

Clojure

EPL

Scala

Scala

BSD

F#

F#

Apache

TypeScript

TypeScript

Apache

Gc

Go

BSD-style

Rust

Rust

MIT

Vala

Vala

LGPL

Dart

Dart

BSD

Multics PL/I

PL/I

MIT

R

R

GPL

Swift

Swift

Apache