Skip to main content
82 votes

Interpret brainfuck

brainfuck, 843 691 bytes Edit: decided to revisit this and found a surprising number of ways to golf off bytes ...
Jo King's user avatar
  • 47.2k
67 votes

Write a brain-flak classic interpreter!

Brain-Flak Classic, 1271 1247 1239 bytes ...
Nitrodon's user avatar
  • 10.8k
41 votes

Interpret brainfuck

Vim, 809 580 bytes -229 bytes because shenanigans and balderdash. ...
Aaroneous Miller's user avatar
33 votes
Accepted

Interpret +p code

05AB1E, 5 bytes vy.V, Try it online! Explanation This challenge fit 05AB1E like a glove :) ...
Emigna's user avatar
  • 53k
27 votes

Turing-Complete Language Interpreter

Vim, interpreting Malbolge Unshackled, 2010 bytes ...
Aaroneous Miller's user avatar
26 votes
Accepted

Talk interpreter

Jelly, 3 bytes y@/ Input is a single list: the accumulator, followed by the pairs. Try it online! How it works The y atom ...
Dennis's user avatar
  • 210k
26 votes

Write a "Hello" interpreter

Lenguage, \$1.42 \times 10^{122}\$ bytes minus a lot of bytes thanks to Kevin Cruijssen and Bubbler ...
Jo King's user avatar
  • 47.2k
25 votes

Interpret Befunge-93

Befunge-93 - 404 371 361 352 339 337 323 bytes ...
quintopia's user avatar
  • 4,138
25 votes

Make a ;# interpreter

Python 3, 69 68 bytes -1 byte thanks to @WheatWizard i=0 for c in input(): i+=c==';' if'#'==c:print(end=chr(i%127));i=0 Try it online!
ovs's user avatar
  • 59.5k
25 votes

Write an interpreter for *

*, 0 bytes Since * has no way of reading input, the default rules allow specifying that the input must be given by concatenating it onto the program. (... I ...
hmakholm left over Monica's user avatar
23 votes

Talk interpreter

Python 3, 43 bytes lambda s:re.sub("00|11","",s)[-1] import re Try it online! The function takes a single string as input, where the first character is the ...
Joel's user avatar
  • 1,751
21 votes

Write a Whitespace Interpreter

Vim, 2366 bytes ...
Aaroneous Miller's user avatar
21 votes

Build a Turing *incomplete* language

Python 2, 38 bytes lambda s,n:s.strip("()+*%n")or eval(s) Try it online! This evaluates a subset of Python 2 given by arithmetic expressions using only ...
xnor's user avatar
  • 145k
20 votes

Make a ;# interpreter

JavaScript (ES6), 76 82 80 bytes s=>s.replace(/./g,c=>c=='#'?String.fromCharCode(a%(a=127)):(a+=(c==';'),''),a=0) Demo ...
Arnauld's user avatar
  • 193k
20 votes

Final tribute to John Conway: FRACTRAN self-interpreter

30 fractions ...
m90's user avatar
  • 10.5k
20 votes

Obfuscate my ><>

><>, 555 bytes ...
tjjfvi's user avatar
  • 7,350
19 votes

McCarthy's LISP

Python 3, 770 bytes This is a REPL on stdin/stdout. Expects every line to be a full statement or empty. eval is used to shorten the implementation, but is ...
orlp's user avatar
  • 39.1k
18 votes

Interpret brainfuck

Retina 0.8.2, 386 391 386 bytes Code contains unprintable NUL (0x00) characters. It's also not super golfed yet, because it's already really slow, and if I golf it ...
mbomb007's user avatar
  • 23.4k
17 votes

8bit virtual machine

C (gcc), 1381 1338 1255 1073 bytes Huge improvement thanks to ceilingcat and Rogem. ...
Max Yekhlakov's user avatar
16 votes

Interpret ><> (Fish)

><>, 443 bytes ...
Jo King's user avatar
  • 47.2k
16 votes

Write a Deadfish Interpreter

flex, 86 \$\cdots\$ 83 82 bytes Saved 2 bytes and got moved into TIO thanks to Mukundan314!!! ...
Noodle9's user avatar
  • 20.2k
15 votes

Interpret brainfuck

TypeScript Types, 1807 1771 bytes ...
tjjfvi's user avatar
  • 7,350
15 votes

Run Stackylogic

Retina, 79 78 73 68 66 65 63 62 55 44 bytes Byte count assumes ISO 8859-1 encoding. +`(.)([^_]*)\?<|(¶.*)0<|1<(¶.+) $2$1$4<$3 1< Input is via ...
Martin Ender's user avatar
15 votes

Build a Turing *incomplete* language

APL (Dyalog Unicode), 15 14 bytes (⍎⍞~'⎕⍎⍣⌶?{')⎕ Try it online! A full program that takes two inputs (an array of numbers in APL syntax, and then a line of APL ...
Bubbler's user avatar
  • 76.9k
14 votes

Interpret brainfuck

C (gcc) Linux x86_64, 884 621 525 487 439 383 358 347 bytes ...
ceilingcat's user avatar
  • 7,605
14 votes

Make a ;# interpreter

Java 8, 100 bytes s->{int i=0;for(byte b:s.getBytes()){if(b==59)i++;if(b==35){System.out.print((char)(i%127));i=0;}}}; Try it online!
svp's user avatar
  • 191
14 votes

Final tribute to John Conway: FRACTRAN self-interpreter

24 fractions $$\frac{2}{3}, \frac{5}{7}, \frac{7^{12} 41}{5^{12} 23}, \frac{7^{13}}{5^{13} 37}, \frac{3^{10} 7^3 13}{5^{13} 31}, \frac{3^2 7^{11} 19^1 41}{2^2 5^{11} 29}, \frac{3^3 7^{10} 19^1 23}{2^3 ...
benrg's user avatar
  • 719
14 votes

Implement SKI combinator calculus

Seed, 5925 5909 5890 5871 bytes ...
Kamila Szewczyk's user avatar

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