We are currently working on new rules for what content should and shouldn't be allowed on this website, and are looking for feedback! See Esolang:2026 topicality proposal to view and give feedback on the current draft.

EsoInterpreters

From Esolang
Jump to navigation Jump to search

This page is for cross-referencing esoteric language interpreters that have been written in esoteric languages.

Longest chains without repetition

INTERCAL
Lazy K
Unefunge
Zetaplex

Befunge-93 Brainfuck Bub

BCT
Underload
UTM

ORK Kipple

Main table

The implementing languages are written down the left; the implemented languages are written across the top. To reduce width a bit, self-interpreters get their own column.

Legend
S Self-interpreter
C Part of cycle
X Other
  1. For the general article about self-interpreters, click here. For a list of self-interpreters, click here.
  2. Requires 3,5 gigabytes of RAM to operate. Prints data as ASCII values, not numbers. Terminates on EOF.
  3. Since it has no IO, the link leads to a Python program which generates self interpeter

GraphViz

The following simple and elegant Perl oneliner can be used to make a graph of this table, in GraphViz's inimitable style, on any system with the curl, perl and dot commands installed:

curl -s 'https://esolangs.org/wiki/EsoInterpreters?action=raw' | perl -ne 's/\[\[[^]|]*\|([^]]*)\]\]/$1/g; s/\[\[([^]]*)\]\]/$1/g; s/\[[^] ]+ ([^]]+)\]/$1/g; s/<!--.*?-->//g; s/&nbsp;//g; if (/^\{\|/) { $h = $r = []; @t = (); } elsif (/^\|-/) { $r = []; push @t, $r; } elsif (/^[|!](?!\})(?:\s*style=[^|]*\|)?\s*(.*)$/) { push @$r, $1; } END { sub n { ($l) = @_; $n = $n{$l}; if (not $n) { $n{$l} = $n = "n".(keys %n); print "$n [label=\"$l\"];\n"; } return $n; } print "digraph D {\n"; for $r (@t) { next if $#$r < 1; $d = n($r->[0]); print "$d -> $d;\n" if $r->[1]; for $i (2..$#$r) { $s = n($h->[$i]); print "$s -> $d;\n" if $r->[$i]; } } print "}\n"; }' | dot -Tpng -ointerps.png