What programming languages have been created by CGCC users?

Language-creation has become a popular activity on CGCC. A decent portion of answers, especially answers, are written in languages invented by the community. These are also languages that might be unfamiliar to this site's wider viewing audience.

What languages (esoteric, golfing, or not) have been created by our users? For each language, please include some of the following details:

• Language name and creator
• Links to resources, like documentation and interpreter
• A brief description of the language, some of its main concepts and features, and its history

List of languages

function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=meta.codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=meta.codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var a=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(a="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var r=a.match(SCORE_REG);r?e.push({user:getAuthorName(s),size:+r[2],language:r[1],link:s.share_link}):console.log(a)}),e.sort(function(e,s){var a=e.size,r=s.size;return a-r});var s={},a=1,r=null,n=1;e.forEach(function(e){e.size!=r&&(n=a),r=e.size,++a;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;o=jQuery("<a>"+o+"</a>").text(),s[o]=s[o]||{lang:e.language,lang_raw:o,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang_raw.toLowerCase()>s.lang_raw.toLowerCase()?1:e.lang_raw.toLowerCase()<s.lang_raw.toLowerCase()?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var QUESTION_ID=6918,ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",OVERRIDE_USER=2867,answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n]+)\s*<\/h\d>/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<script src=https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js></script><link rel=stylesheet type=text/css href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"><div id=language-list><h2>Languages by CGCC Users</h2><table class=language-list><thead><tr><td>Language<td>User<tbody id=languages></table></div><table style=display:none><tbody id=answer-template><tr><td>{{PLACE}}<td>{{NAME}}<td>{{LANGUAGE}}<td>{{SIZE}}<td><a href={{LINK}}>Link</a></table><table style=display:none><tbody id=language-template><tr><td>{{LANGUAGE}}<td>{{NAME}}<td><a href={{LINK}}>Link</a></table>

• Todo: Add 2D matching languages and every language Calvin makes up for golf questions Sep 9, 2015 at 2:45
• Do languages whose only non-proprietary interpreters were created by PPCG users count? Sep 12, 2015 at 17:01
• The title is somewhat misleading. Do general purpose languages not related to golfing still count when they have been created by PPCG users? The title suggests yes, but mostly (and naturally) the answers relate to golfing.
– user42643
Sep 12, 2015 at 21:59
• @minxomat This question is open to all languages created by PPCG users. Sep 13, 2015 at 4:36
• @bmarks I say you could go ahead and post it, specifically mentioning the interpreter. Sep 13, 2015 at 4:42
• @PhiNotPi A suggestion: Implement a snippet in your question to list the languages. This site is quite long.
– user42643
Sep 14, 2015 at 6:27
• @minxomat Done. Sep 21, 2015 at 19:05
• A quick note about the snippet: User means the person who posted about it here, not necessarily the user who created the language. Example: I did not create Ostrich, I merely posted it here. Sep 21, 2015 at 19:12
• @AlexA. Maybe we could add a formatting guide, and suggest that the inventor be added in the header? Sep 25, 2015 at 17:33
• @BetaDecay Yeah I had thought about that. Language name, creator, and year. Up to Phi though. Sep 25, 2015 at 18:32
• @Adnan 05AB1E should be on here. Jan 19, 2017 at 21:19
• Can I post mine here if I have several alternative names?
– user100411
Oct 2, 2021 at 8:43

TLDCode

Created by The_Lone_Devil (Me) and is a (WIP) stack based language.

The name is likely to change one day when I think of a good one.

I created it as something to work on during some downtime at work, and to learn Kotlin a bit better (the language the interpreter is written in).

There is some documentation, as well as a Kotlin based interpreter over on the Github page

Some features include

• User functions, by pushing a string containing code onto the top of the stack, and then storing the top of the stack into a named variable, you can push the variable onto the stack and eval it to execute.
• Immutable variables, once a variable is set, only a copy can be pushed onto the stack, they can never change.
• The name sounds like "Too long; didn't code" :p Jan 25, 2018 at 16:09
• @RedClover TL;DR is the first thing I thought of when I saw the title. Dec 31, 2018 at 23:26

MashedPotatoes

MashedPotatoes is a register-based esoteric programming language designed by yours truly that "mashes" together several syntactic constructs from other languages and alters their meaning significantly.

The central theme of MashedPotatoes is to confuse color-coding parsers while making code difficult to read and frustrating to write. Almost every construct in the language is borrowed syntactically from another language but does not serve its original purpose. Examples:

• The text --help is the numerical literal representing zero. This is the only numerical literal whose value does not change.
• The Perl "baby carriage" operator @{[ ... ]} returns the negative of the argument
• The Common Lisp style print statement (format t " ... ") is the basic looping construct in MashedPotatoes.

Additionally, to make sure programmers don't become complacent, many syntactic constructs change meaning each time you use them. There are three registers: the accumulator, the counter, and the evaluator. However, none of these registers can be accessed directly. They are accessed by the following expressions.

• STDERR, which returns the accumulator the first time it is used in a program, the counter the second, and the evaluator the third.
• \$[, which returns the counter, then the evaluator and then the accumulator.
• uniq -c (the backticks are significant) refers to the evaluator, then the accumulator, and then the counter.

So to refer to a register, you have to find an identifier that is currently pointing to that register. This design decision ensures that programmers who are refactoring code still have a sufficiently challenging task. Likewise, labels are used to activate several commands. There are three labels (plus a fourth "nullary" label), and each label has four names. Referring to a label by the wrong name is a syntax error, and the name changes every time you use it.

Resources:

FAQs:

• Why? I got bored at work one day and this was the result.
• Are there any example programs? Yes, the Esolang page has a well-documented factorial program and a (less well-documented) Fibonacci program.
• What does "Hello World" look like in MashedPotatoes? No idea. I tried once to write it and eventually gave up. If you can write "Hello World" in MashedPotatoes, please let me know.

ALPHA

I made up this esoteric language by me, SnivyDroid, on the 27th of January, 2018 after reading about alphabetical-based esolangs like alphuck, it is just pseudo-code currently although I am working on structuring a interpreter with what little knowledge I have about parsing and interpreting code.

Basic Syntax

ALPHA Revolves around 1-character alphabetical mirrored commands, basically you start a command with the corresponding letter and you end it with the corresponding letter

Starting a line

KK


Printing a statement

KMSDFOODMK


Hello World

KMDHELLO WORLDDMK


Here is the entire command set I made up:

A=Not Equal
B=Subtract
C=If
D=String
E=Divide
F=Multiply
G=Equal
I=For loop
J=Variable
K=Line
L=While loop
M=Print
N=Break
O=Not
P=Integer
Q=Take input
R=Do
S=Array
T=Join
U=Set
V=Pop
W=Then
X=Modulo
Y=Append
Z=Special


(Yes, I specifically shuffled the commands to make it painful)

Z would act as a way to access different sets of commands to extend into more specific functions.

Hopefully I should be able to write an interpreter one day, and if anyone has any advice on what I can use to make one that would be neat.

Here are some other examples I whipped up:

Wide text generator

KMHTD DQQTD DHMK
KK - Start line
KM - Start print
KMHT - Start Join
KMHTD D - Add String arg
KMHTD DQQ - Add input arg
KMHTD DQQT - End Join
KMHTD DQQTD D - Add String arg
KMHTD DQQTD DH - End Add
KMHTD DQQTD DHM - End print
KMHTD DQQTD DHMK - End line


Generate a N-Length list of N

KUJAJSSUK
KMIUJCJUUJIJQQUIRYSSVIVYRMK


Any feedback?

• How does KMDHELLO WORLDDMK work? Since the string indicator is D, wouldn't the string truncate at HELLO WORL, then begin another string? Mar 5, 2018 at 21:12
• I created a buffer called ZA that will escape strings. A single ZA will just act as a normal set of characters but ZA surrounding any characters will escape them from the string. Mar 5, 2018 at 21:32

BFZip

While not technically a programming language, I made this to help Brainfuck golfers to reduce their byte count.

Unfortunately, there are some glaring issues that make this unusable. I would appreciate any help with fixing them.

You can still calculate the bytes hypothetically if you use this formula, where n is the original byte count: ⌈3⋅n⁄8⌉

• This seems a bit like CompressedFuck (which also uses a 3-bit encoding, albeit a different one) and Spoon (which uses a variable-length Huffman encoding for maximum compression, and also has some extra commands) Feb 23, 2018 at 20:48
• @EsolangingFruit I didn't even know that CompressedFuck existed, now I feel like I did all that work for nothing :( Feb 23, 2018 at 21:31
• You could generalize your implementation into an arbitrary BF translator to handled BFZip, CompressedFuck, Spoon, etc. Feb 23, 2018 at 22:38

Pixiedust

By Stephen Leppik

If you ask a 5-year-old what tells a computer what to do, they'll probably answer along the lines of "fairies and pixie dust". With the existence of this assembly-like language, that's not entirely wrong.