diff --git a/backend/src/langs.ts b/backend/src/langs.ts index d836aa3..d63e096 100644 --- a/backend/src/langs.ts +++ b/backend/src/langs.ts @@ -223,6 +223,22 @@ Nude pagoda careens. main: "main.be", run: "befunge-repl main.be", template: `64+"!dlrow ,olleH">:#,_@ +`, + }, + blc: { + aliases: [ + "binarylambdacalculus", + "lc", + "binary", + "lambdacalculus", + "lambda", + ], + name: "Binary Lambda Calculus", + monacoLang: "plaintext", + main: "main.blc", + run: "cat main.blc | binary-to-text | tromp", + template: `001010100100100001100101011011000110110001101111001011000010 +000001110111011011110111001001101100011001000010000100001010 `, }, brainf: { diff --git a/scripts/docker-install-phase6.bash b/scripts/docker-install-phase6.bash index 4e0a0cb..f928069 100755 --- a/scripts/docker-install-phase6.bash +++ b/scripts/docker-install-phase6.bash @@ -56,6 +56,23 @@ befunge.run(fs.readFileSync(args[0], { encoding: "utf-8" })).catch((err) => { EOF chmod +x /usr/bin/befunge-repl +# Binary Lambda Calculus +tee /usr/bin/binary-to-text >/dev/null <<"EOF" +#!/usr/bin/env python3 + +import re +import sys + +text = re.sub(r"[^01]", "", sys.stdin.read()) +out = [] + +for m in re.finditer(r"([01]{8})", text): + out += chr(int(m.group(0), 2)) + +print("".join(out), end="") +EOF +chmod +x /usr/bin/binary-to-text + # BrainF tee /usr/bin/brainf-repl >/dev/null <<"EOF" #!/usr/bin/env python3 diff --git a/scripts/docker-install-phase7.bash b/scripts/docker-install-phase7.bash index ec8f3f2..b9d5696 100755 --- a/scripts/docker-install-phase7.bash +++ b/scripts/docker-install-phase7.bash @@ -11,6 +11,11 @@ sed -i 's#env python#env python2#' Beatnik/script/beatnik.py mv Beatnik/script/beatnik.py /usr/bin/beatnik rm -rf Beatnik +# Binary Lambda Calculus +wget -nv https://www.ioccc.org/2012/tromp/tromp.c +clang tromp.c -Wno-everything -DInt=long -DX=8 -DA=500000 -o /usr/bin/tromp +rm tromp.c + # Erlang git clone https://github.com/erlang-ls/erlang_ls.git pushd erlang_ls >/dev/null