# Tag Info

## Hot answers tagged language-design

48

Legendre This language is only Turing-complete if and only if Legendre's conjecture is false, i.e. there exists a integer n > 0 such that there are no primes between n^2 and (n+1)^2. This language takes some inspiration from Underload, though in some respects it is very different from it. Programs in Legendre are made up of series of positive integers (0 ...

32

SnakeEx Solves 15/16 problems so far! Online Interpreter! - Full Language Spec - Javascript Source The idea behind this language is to define 'snakes' that move around the text checking characters using a regex-like syntax. A program in SnakeEx consists of a list of definitions for snakes using different sequences of commands. Snakes can spawn other ...

30

Shuffle (written in C++), Cracked! by Martin Edit Martin cracked it. To see his solution, click the link. My solution has also been added. Edit Fixed print-d command to be able to handle both registers and stacks. As this is a debugging command which is not permitted in a solution, this should not affect anyone using the previous version of the ...

24

Changeling (safe) ShapeScript ShapeScript is a naturally occurring programming language. Shape shifters (or Changelings, as they prefer to be called) can transform into a set of instructions that allows them to process data. ShapeScript is a stack-based language with a relatively simple syntax. Unsurprisingly, most of its built-ins deal with altering the ...

22

Brian & Chuck, Cracked by cardboard_box I've been intrigued for some time now by the idea of a programming language where two programs interact with each other (probably inspired by ROCB). This challenge was a nice incentive to tackle this concept at last while trying to keep the language as minimal as possible. The design goals were to make the ...

21

Slip, Python 3.4 (Github wiki, online interpreter) Like feersum's submission this is also based on traversing the grid, but like CarpetPython's submission this is based on regex. Somehow it looks like I managed to take the middle ground. There's a quite a lot of unimplemented features which I want to add, so where relevant I've noted what I intend to do ...

21

XOISC This OISC is based on Fokker's X-combinator which is defined as follows: $$X = \lambda f\ . f\ (\lambda g\ h\ x\ . g\ x\ (h\ x))\ (\lambda a\ b\ c\ . a)$$ If we acknowledge the fact that the SKI-calculus is Turing complete the above $X$-combinator is Turing complete as well. This is because $S$, $K$ and $I$ can be written in terms of $X$,...

19

Draw Draw is an OISC acting on a 2D grid, marking squares in a manner similar to the Wang B-machine. However, to keep the language as simple and OISC-y as possible, all instructions (of which there are a grand total of one) mark the square just stepped on, and, in order to be able to halt, stepping on a marked square terminates the program. The program ...

18

PMA/Snails (C++) I envision the language as snails moving around a grid and executing commands. The snails leave a trail of slime on each square which they move onto, which by default causes the square to be subsequently unmatchable. A match is successful if the end of the list of commands is reached. There are enough operators now that we're going to need ...

15

HPR, written in Python 3 (Cracked by TheNumberOne) HPR (the name means nothing) is a language for processing lists of integers. It is designed to be minimalistic, extremely limited, and free of "artificial" restrictions. Programming in HPR is painful, not because you have to solve a puzzle to keep the interpreter from shouting at you, but because it's hard ...

15

-3 Here's the gist. Memory Memory is a map of tapes, where the keys are strings and values are arbitrary-sized integers. Additionally, there is a set of labels, where the program can jump to. There is a stack, which contains the operands, which are strings. There is an offset, which controls where in the memory's tapes it can access. The One ...

14

Grime, Haskell Introduction Grime is based on Boolean grammars. The basic idea is to construct rectangular patterns from smaller components, and check whether they are found in the input matrix. So far, Grime only supports rectangular matches, and solves at least 11 problems more or less elegantly. EDIT: Fixed the crosses (thanks to DLosc for spotting the ...

14

The Re2d class, Python 2 Update: added "9. Alignment" problem. My approach is to use the Python re module to do the searching and matching. The Re2d class prepares the text for processing, executes the re functions, and formats the results for output. Note that this is not a whole new language - it is the standard regular expression language projected ...

14

Union Closed This programming language is Turing complete iff the Union-closed Sets conjecture is incorrect. Controls List of Commands: x++ Increment x (INC) x-- Decrement x (DEC) j(x,y) Add instruction set x if y is 0 to end of instruction queue All variables are initialized as 0 Syntax Programs are written as a set of sets of ...

13

Fermat primes The language works on two potentially infinite tapes, where each location of the tape can store an arbitrary integer. Both tapes are filled with -1 at start. There is also two tape heads that start at position 0 on both tapes. The interpreter will first read the input, and store the values into the first (data) tape, starting at position 0. ...

12

TKDYNS (To Kill the Dragon, You Need a Sword) - Cracked by Martin Büttner EDIT: I've added my solution and explanation below the main post. Background In this language, you take control of a valiant warrior who has been tasked with slaying a terrible dragon. The dragon lives in an underground labyrinth, full of perils and dangers, and until now, no-one ...

10

TMARL Template Matching and Recognition Language Description My interpreter takes up 24K chars (code snippets take up characters?), so the full description can be found here. The best part: the interpreter is in Javascript, meaning you can try it right here! var reservedOutsideInput = "\u0007"; var templateChar = "\$" function run(){ var ...

10

Soles This programming language is Turing complete iff the Scholz conjecture is true. I wrote this language because @SztupY was saying that there wouldn't be any results that rely on the conjecture to be true to be Turing complete List of Commands +(x) Increment x (INC) -(x) Decrement x (DEC) j(x,y) Jump to instruction x if y is 0 (JZ) ...

10

Perfection/Imperfection Whew, that was fun. Perfection/Imperfection is only complete if there are infinite perfect numbers. If there are, it's called Perfection, and if there are not, it is called Imperfection. Until this mystery is solved, it holds both names. A perfect number is a number whose divisors sum to the number, so six is a perfect number ...

10

Swallows w/ Coconut v2 As the previous version had errors which made it invalid for this contest, and I don't want to have the upvotes from the previous version count for this version which is significantly different, this version is being submitted as a new post. This language is not Turing complete if the Collatz Conjecture can be proven for all positive ...

10

Blindfolded Arithmetic Possibly a fairly easy language to start off with, relatively speaking. (There are limits on how difficult a language I can make because I have to prove it Turing-complete myself!) For this language, the program set is the set of Blindfolded Arithmetic programs as given in the section "program" below, the input set is the set of ...

9

Betrothed Betrothed Github. The readme and specification is on the github, under "README.txt". Generally, a Betrothed program is composed of pairs of lines, whose lengths are distinct twin prime pairs or betrothed pairs (no duplicates can occur). The program is executed by find "pliable subsets" of the first line in the pair within the second line. The ...

8

Firetype, Cracked by Martin Büttner A really weird mix of BF and CJam. And who knows what else! Pretty sure this'll be an easy one, but it was fun anyway. FYI, the name is referring to Vermillion Fire from Final Fantasy Type-0. NOTE: Please forgive me for any ambiguities in this description. I'm not the best writer... :O Martin cracked this really quickly!...

8

2. Score: 2938 2583 The modified interpreter is here on TIO. String literal is the most obvious addition to the language, mainly to combat kolmogorov-complexity challenges. Solutions 1. "Hello, World!" - 20 bytes (-28) #"Hello, World!"[o>] Any kolmogorov-complexity challenge can be completed using the structure #"<string>"[o>] ...

7

I suggest all of them! More seriously, they all come in handy some of the time, and the more the better! Implicit input is never bad, just have a flag to turn it off. Variables are helpful so they don't need to be found on a stack or tape; same with registers. Stacks are helpful to store data, and so are tapes. I recommend trying to implement multiple, say ...

7

Picofuck (safe) Picofuck is similar to Smallfuck. It operates on a binary tape which is unbound on the right, bound on the left. It has the following commands: > move the pointer right < move the pointer left. If the pointer falls off the tape, the program terminates. * flip the bit at the pointer ( if the bit at the pointer is 0, jump to the next ...

7

Acc!! (safe) It's baack... ... and hopefully definitely more loophole-proof. I already read the Acc! spec. How is Acc!! different? In Acc!!, loop variables go out of scope when the loop exits. You can only use them inside the loop. Outside, you'll get a "name is not defined" error. Other than this change, the languages are identical. Statements ...

6

Zinc, Cracked! by @Zgarb Also available at GitHub. You need Dart 1.12 and Pub. Just run pub get to download the only dependency, a parsing library. Here's to hoping to this one lasts longer than 30 minutes! :O The language Zinc is oriented around redefining operators. You can redefine all the operators in the language easily! The structure of a typical ...

5

Compass Soup (cracked by cardboard_box) Interpreter: C++ Compass Soup is kind of like a Turing machine with an infinite 2-dimensional tape. The main catch is that the instruction memory and data memory are in the same space, and the output of the program is the entire contents of that space. How it works A program is a 2-dimensional block of text. The ...

Only top voted, non community-wiki answers of a minimum length are eligible