This project began with an attempt to write the fastest lisp interpreter I could in under 1000 lines of C. It snowballed from there as I kept trying to see if I could add powerful features with minimal code. At the same time I assembled a library of some of my favorite C code (by myself and others) to use as a base for a standard library. This includes
ios, a replacement for parts of C’s stdio that adds more flexible features.
nullc is a C-like embeddable programming language with advanced features such as function overloading, operator overloading, class member functions and properties, automatic garbage collection, closures, coroutines, local functions, type inference, runtime type information, modules, list comprehension, enums, namespaces, generic functions and classes.
Language is type-safe and memory-safe.
nullc library can execute code on a VM or translate it to x86 code for fast execution. It can also translate nullc files into C source files.
This simple programming language with built-in graphical functions and an easy to use and offline usable browser IDE is well suited as a teaching and learning language. You can also use it to write graphical applications that you can embed in a web page.
Orca is an esoteric programming language, designed to create procedural sequencers in which each letter of the alphabet is an operation, where lowercase letters operate on bang, uppercase letters operate each frame.
The application is not a synthesiser, but a flexible livecoding environment capable of sending MIDI, OSC & UDP to your audio interface, like Ableton, Renoise, VCV Rack or SuperCollider.
I regularly hear people asking which programming language to learn, and then reeling off a list of very similar languages (“Should I learn Java, C#, C++, Python, or Ruby?”). In response I usually tell them that it doesn’t really matter, as long as they get started. There are fundamentals behind them.
KDL is a document language with xml-like semantics that looks like you’re invoking a bunch of CLI commands! It’s meant to be used both as a serialization format and a configuration language, much like JSON, YAML, or XML.
The language is based on SDLang, with a number of modifications and clarifications on its syntax and behavior.
The current version of the KDL spec is
Joker is a small interpreted dialect of Clojure written in Go. It is also a Clojure(Script) linter.
Nelua is a systems programming language for performance sensitive applications, like real-time applications and game engines. Its syntax and semantics are similar to Lua, but its garbage collection is optional, it provides optional type notations, and it is free from an interpreter. Nelua uses ahead-of-time compilation to generate optimized native binaries. It is metaprogrammable at compile-time using Lua and it is simple and easy to use.
Pyret is a programming language designed to serve as an outstanding choice for programming education while exploring the confluence of scripting and functional programming. It’s under active design and development, and free to use or modify.
Imba is a Web programming language that’s fast in two ways: Imba’s time-saving syntax with built-in tags and styles results in less typing and switching files so you can build things fast. Imba’s groundbreaking memoized DOM is an order of magnitude faster than virtual DOM libraries, so you can build fast things.
I’ve been working on optimizations in Loko Scheme recently and have implemented large parts of A Sufficiently Smart Compiler for Procedural Records (Keep & Dybvig, 2012). At the same time I have improved the representation of record type descriptors and wanted to share a simple trick I used to improve record type checks for non-sealed records. But first I should explain what a record is in Scheme.
A minimal, efficient and practical proof and programming language. Under the hoods, it is basically Haskell, except purer and with dependent types. That means it can handle mathematical theorems just like Coq, Idris, Lean and Agda. On the surface, it aims to be more practical and looks more like TypeScript. Compared to other proof assistants, Kind has:
Novel type-level features. Check this article on super-inductive datatypes.
An accessible syntax that makes it less scary. Check SYNTAX.md.
A complete bootstrap: the language is implemented in itself. Check it here.
Efficient real-world compilers. Check http://uwu.tech/ for a list of apps. (WIP)
Sketching is a language/library for creative coding. The focus is to make graphical programs accessible for beginners, artists, educators and designers. Sketching is free to use and the source is available to read and improve.
The main focus of Sketching is graphical programs. Running a program will display a canvas ready to show static images or animation.
The inspiration for Sketching came from the Processing project. Processing is a programming language built on top of Java. The Processing language was devised by Ben Fry and Casey Reas.
Think of Sketching as what Processing would have looked like, if it used Racket as its programming language instead of Java. Alternatively, think of Sketching as Racket with an easy to use graphics library.
Although inspired by the Processing project, this project has no affiliation with the Processing Foundation.
Kawa is a general-purpose programming language that runs on the Java platform. It aims to combine:
the benefits of dynamic scripting languages (non-verbose code with less boiler-plate, fast and easy start-up, a REPL, no required compilation step); with
the benefits of traditional compiled languages (fast execution, static error detection, modularity, zero-overhead Java platform integration).
Kawa is also a useful framework for implementing other programming languages on the Java platform. It has many useful utility classes.
This document describes the Oil language from clean slate perspective. Knowledge of Unix shell or the compatible OSH language isn’t assumed. But shell users will see similarities, simplifications, and upgrades.
This document is long because it demonstrates nearly every feature of the language. You may want to read it in multiple sittings, or read The Simplest Explanation of Oil first.
A summary of what follows:
Oil has interleaved word, command, and expression languages.
The command language has Ruby-like blocks, and the expression language has Python-like data types.
Oil has two kinds of builtins that form the “standard library”.
Languages for data (like JSON) are complementary to Oil code.
OSH and Oil share both an interpreter data model and a process model (provided by the Unix kernel). Understanding these common models will make you both a better shell user and Oil user.
Keep those 4 points in mind as you read the details below.
If you have heard of Zig before, you may know it as a promising new programming language which is ambitiously trying to overthrow C as the de-facto systems language. But did you know that it also can straight up compile C code?
This has been possible for a while, and you can see some examples of this on the home page. What’s new is that the zig cc sub-command is available, and it supports the same options as Clang, which, in turn, supports the same options as GCC.
Now, I’m sure you’re feeling pretty skeptical right about now, so let me hook you real quick before I get into the juicy details.
A lean, statically typed, compiled, general-purpose, procedural, object-oriented, and garbage collected programming language in the Pascal tradition, with support for generic programming…
Janet is a functional and imperative programming language and bytecode interpreter. It is a lisp-like language, but lists are replaced by other data structures (arrays, tables (hash table), struct (immutable hash table), tuples). The language also supports bridging to native code written in C, meta-programming with macros, and bytecode assembly.
There is a REPL for trying out the language, as well as the ability to run script files. This client program is separate from the core runtime, so Janet can be embedded in other programs. Try Janet in your browser at https://janet-lang.org.
I’m Linus. In 2019, I made a programming language called Ink. Since then, I’ve used it to build a number of side projects, including a ray tracer, a compiler, an assembler, a Twitter client, a writing app, and some personal productivity tools. I write about Ink, programming languages, and software at large on this blog, which is served by a server written in Ink.