EsoInterpreters

From Esolang
(Redirected from Esointerpreters)
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.

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