# Programming Language Design

## Take a look at our projects

compiled
concurrent
first-class types
functional
imperative
interpreted
logic
multi-paradigm
non-programming language
object-oriented
parallel
pure
scripting
static types
strong types
systems

### [Name Redacted]

[Name Redacted]

It is designed to be easy, yet powerful, compiling to LLVM and self-hosting. Our goal is for it to be faster than C and easier than Python.

### AEC

[Name Redacted]

A low-level programming language with syntax inspired by BASIC and Ada. Right now, it can target x86 and WebAssembly.

### Alox

[Name Redacted]

GPU-Accelerated, Distributed, Actor Model Language

### Amp

[Name Redacted]

A minimalistic systems language for modern software

### Amun

[Name Redacted]

A low-level programming language with a simple and productive design inspired by C/C++, Rust, Go, Jai.

### Ante

[Name Redacted]

A compiled systems language focusing on providing extensibility through the use of a compile-time API.

### Argon

[Name Redacted]

Argon is an interpreted multi-paradigm programming language. Its syntax is influenced by many modern languages and aims to be elegant, clean and simple to use.

### Calypso

[Name Redacted]

Calypso is a mostly imperative language with some functional influences that is focused on flexibility and simplicity.

### Cella

[Name Redacted]

A strongly-typed minimalistic systems programming language with semantic side-effects and minimal runtime overhead

### C3

[Name Redacted]

An evolution of C, adding modules, error handling and semantic macros.

### Chaos

[Name Redacted]

Strongly typed, dynamic yet compilable, test-oriented procedural programming language that achieves zero cyclomatic complexity.

### CASC

[Name Redacted]

A JVM language focus on concise syntaxes and enhancing language features from Java.

### Chika

[Name Redacted]

S-expression programming language, with VM targeting both PC and Arduino.

### Closey

[Name Redacted]

A functional language that aims to be as simple as possible but as efficient and user friendly as possible.

### Cognate

[Name Redacted]

A highly readable quasi-concatenative dynamic language.

### Cone

[Name Redacted]

A fast, fit, friendly, and safe systems programming language to power the 3D web.

### Core

[Name Redacted]

a modern, minimal programming language

### Dyvil

[Name Redacted]

A multi-paradigm, general purpose language for the JVM, with an extensible syntax.

### Egel

[Name Redacted]

An interpreter for eager untyped combinator rewriting implemented in C++.

### Fennel

[Name Redacted]

A lisp which compiles to Lua with zero overhead, revived by technomancy.

### Firefly

[Name Redacted]

Full-stack language with colorless async/await and object capabilities.

### ForthScript

[Name Redacted]

Simple yet powerful concatenative stack-based scripting lang with code-as-data paradigm. Aims to run on bare metal like FORTH!

### FuncSug

[Name Redacted]

An alternative to event-driven programming that resolves the callback hell and the state management problem thanks to very structured concurrency and await-event instructions.

### Futhark

[Name Redacted]

A high-performance parallel functional array language targeting GPUs.

### Gera

[Name Redacted]

A high-level, procedural, compiled and garbage collected programming language without type annotations.

### Gwion

[Name Redacted]

A strongly-timed musical programming language

### Hascal

[Name Redacted]

Hascal is a general purpose and open source programming language designed to build optimal, maintainable, reliable and efficient software.

### H-hat

[Name Redacted]

A quantum programming language aimed to build quantum algorithms through a higher abstraction layer.

### Hook

[Name Redacted]

An imperative, cross-platform, dynamically typed scripting language that utilizes a mutable value semantics approach.

### Horse64

[Name Redacted]

Dynamically typed but orderly, reducing chaos in large projects. A grounded Python-alike.

### ilo Token

[Name Redacted]

A rule-based dictionary-based Toki Pona to English translator that translates into multiple English outputs showing many possible grammatical and semantic interpretation of the text. No machine learning involved.

### Imp

[Name Redacted]

A statically typed and compiled scripting language with the goal of increasing programmer confidence.

### Inko

[Name Redacted]

A gradually typed, interpreted, object-oriented language drawing inspiration from many others.

### Insitux

[Name Redacted]

Extensible s-expression scripting language written in portable TypeScript.

### jank

[Name Redacted]

A Clojure dialect hosted on LLVM with native C++ interop.

### Jazz

[Name Redacted]

A systems programming language with a JIT and AOT compiler that uses GCCJIT as backend.

### Jinx

[Name Redacted]

A clean, embeddable scripting language designed with an asynchronous and thread-safe execution model.

### Kitten

[Name Redacted]

A statically typed concatenative language with effect types.

### Peridot

[Name Redacted]

A fast functional language based on two level type theory

### Lesma

[Name Redacted]

A fast compiled, statically typed, pythonesque programming language.

### Lobster

[Name Redacted]

Flow-senstitive type inference, specialization, compile-time reference counting, and Python-y syntax.

### MANOOL

[Name Redacted]

Programming language that combines high abstraction power with great control over asymptotic complexity and performance of your programs

### Mercury

[Name Redacted]

A logic/functional programming language with advanced static analysis and error detection features.

### Mlatu

[Name Redacted]

Statically-typed, purely-functional, concatenative

### Monte

[Name Redacted]

A dynamic programming language inspired by Python and E.

### Mu

[Name Redacted]

A purely statement-oriented language (like Basic) designed for teaching programming 1-on-1.

### Mushroom

[Name Redacted]

An experimental functional programming language with an emphasis on type inference and aesthetic syntax.

### Myrddin

[Name Redacted]

A systems language aiming to fit in a similar niche to C, but with fewer bullets in your feet.

### Never

[Name Redacted]

A simple syntactically-scoped, strongly-typed, call-by-value, functional language.

### NGS

[Name Redacted]

Next Generation Shell, an alternative to many scripting languages, with syntax for idempotent resource manipulation.

### Nib

[Name Redacted]

A semi-concatenative that extends array language features such as tacit programming and scalar extension.

### Okta

[Name Redacted]

Compiled, imperative and general-purpose programming language that aims to provide a simple platform to create efficient software.

### Oopsilon

[Name Redacted]

Dynamic object language modelled after Smalltalk, with a gradual typing system affording expressiveness rivalling ML or Haskell.

### Owen

[Name Redacted]

A language close to C with modern touches.

### oXyl

[Name Redacted]

A functional language designed to work on parallel CPU and GPGPU using a functional paradigm and context system to contain side effects.

### Plasma

[Name Redacted]

A language that balances functional and imperative programming, and has state-of-the-art concurrency and parallelism features.

### Pikelet

[Name Redacted]

A friendly little systems language with first-class types and unboxed data.

### PISC

[Name Redacted]

An attempt to make concatenative programming less mind-bendy via locals, closures, and syntactic sugar.

### Pointless

[Name Redacted]

A scripting language for learning and fun. Designed for teaching and exploring functional programming.

### Popr

[Name Redacted]

Concatenative programming for types as well as values, striving for purity, correctness, and efficient execution.

### Psyche-c

[Name Redacted]

A compiler for incomplete C code.

### Pyash

[Name Redacted]

A language based on linguistic universals for totally taking over the world.

### Rebuild

[Name Redacted]

A project to experiment with and build the ultimate systems programming language.

### Rhovas

[Name Redacted]

An experimental programming language for API design.

### RicScript

[Name Redacted]

A dynamically typed interpreted scripting language.

### Riff

[Name Redacted]

A dynamically typed programming language designed primarily for prototyping and command-line usage.

### Ry

[Name Redacted]

An open source programming language for web development with expressive type system similar to Rust.

### Saltwater

[Name Redacted]

A C compiler written in Rust.

### Sixten

[Name Redacted]

A dependently typed language where all data is unboxed by default. Functional programming with fewer indirections!

### Snowball

[Name Redacted]

🐱 Snowball is a low-weight, statically typed, object oriented programming language with garbage collector and module system.

### Sophie

[Name Redacted]

Call-by-need statically-duck-typed pure-functional actor language named for French mathematician Sophie Germain.

### Sphere

[Name Redacted]

Cross-architecture, freestanding and light-weight OOP Language made for OS and general software development with Direct Memory Manipulation

### Star

[Name Redacted]

An experimental programming language that's made to be powerful, productive, and predictable.

### Swallow

[Name Redacted]

An easy to use systems programming language with python-like syntax

### Theta

[Name Redacted]

A statically typed, functional programming language that compiles to WebAssembly.

### TopShell

[Name Redacted]

Purely functional scripting language with structural types, type inference, reactive streams and visualization.

### Truck

[Name Redacted]

Truck is a dynamic programming language with a focus on simplicity.

### Valkyrie

[Name Redacted]

Valkyrie is a multi-stage gradual typed language with first class continuation and effect system.

### Vox

[Name Redacted]

Statically typed compiled language inspired by D. Both JIT and AOT compilation. Can be used for scripting in D programs.

### WLambda

[Name Redacted]

An embeddable dynamic scripting language for Rust. Every value can be called and the syntax is a blend of Perl, Lua, JavaScript and LISP.

### Wu

[Name Redacted]

An expression oriented, gradually typed, sweet, and mission-critical programming language.

### Ü

[Name Redacted]

A statically-typed C++/Rust-like compiled language. Main goals are safety and speed.

## #proglangdesign on irc.libera.chat

### Joining the IRC channel

There are many ways to connect to IRC. You can:

- Install one of the ( many! ) available IRC clients.
- Use riot.im (join #proglangdesign:libera.chat)
- Join the #proglangdesign channel with a web-based client.

You may also wish to peruse this excerpt from a documentary on IRC.

### IRC Bots

No channel is complete without a collection of noisy bots. They are also a good way to show off your programming language.

- egelbot : Speaks Egel .
- popr : Speaks Popr . Also supports interactive programs.
- sturluson : Speaks Futhark .
- gwionbot : Speaks Gwion .

To try out a bot, simply say ` `botname: some <lang> code` `.

## Resources

### PLD Wiki

We have a wiki ! Only members of the GitHub organization can edit the wiki .

### Joining the GitHub organization

If you are a regular on #proglangdesign, ask hackerfoo for an invitation to the GitHub organization . GitHub organization membership is necessary to edit the wiki, or modify this website without needing to make a pull request.

### Handy Links

- Practical Foundations for Programming Languages (PDF) is a very comprehensive introduction to programming language theory.
- Lambda the Ultimate , probably the oldest programming languages weblog out there.
- Crafting Interpreters , an online, in progress book by Bob Nystrom explaining how to create interpreters and compilers from both Java and C, from scratch.