Unlambda
Unlambdaインタプリタの性能を気にする人というのもあまりいないと思いますが、ELVMをセルフビルドすると何日もかかったり、AtCoderをUnlambdaで解いてみたら時間制限が厳しかったという話を見て、まあ速いインタプリタあるといいよねと思っていました。 Unl…
Esolang Advent Calendar 2016 3日目の記事です。 今回は、前編で説明したデータ構造を使って、どうやってEsolang VMの実行をシミュレートするUnlambdaプログラムを構成するかを解説します。 実装方針 VMの状態 命令の実行 メインループ ELVMバックエンドの…
Esolang Advent Calendar 2016 2日目の記事です。 ELVMにUnlambdaバックエンドを実装して、C言語のプログラムをUnlambdaに変換できるようにした話です。ちょっと長くなったので2回に分けました。 Unlambdaとは ELVMとは Unlambdaでデータ構造を表現する ペア…
Unlambdaで動くCコンパイラができました。 https://github.com/irori/8cc.unl id:shinichiro_hさんのbflispで使われている改造版8ccのアセンブリ出力からUnlambdaへのトランスレータです。 これで同一のCプログラムをBrainfuckとUnlambdaの両方で動かせます…
https://github.com/irori/unlambda-lisp3 連休だったので Unlambda で Lisp インタプリタを作ってみました。Adventure を作ったときのコードジェネレータを流用して、今回新たに書いたコードは 400 行ちょっとでした。生成された Unlambda プログラムは 35k…
Esolang Advent Calendar 2013 用の記事です。Unlambda という esoteric language がありまして、s, k, i といった少数の組み込み関数と関数適用演算子 ` のみでプログラムを書くという、Brainfuck の関数型版とでもいうような言語です。 The Unlambda Progr…
http://inazz.jp/unlambda/ inazz さんがブラウザ上で動く Unlambda インタプリタを作っておられます。 実行中の式を表示しながらステップ実行できます。しかも速いです。 Adventure がサクサク動いてびっくりしました。
前回の続きです。今回は Adventure のゲーム部分の実装について解説します。
Adventure in Unlambda のコード解説です。(ゲームのネタバレはありません。)
世界最初のアドベンチャーゲームであり、「アドベンチャー」ゲームというジャンルの語源ともなった Colossal Cave Adventure を Unlambda に移植しました。advent-unlambda.tar.gz (github) (2011/12/15 ソースコードが一部抜けていたのを修正しました)コ…