読者です 読者をやめる 読者になる 読者になる

Unlambda

UnlambdaでVMを実装する(後編)

Esolang Advent Calendar 2016 3日目の記事です。 今回は、前編で説明したデータ構造を使って、どうやってEsolang VMの実行をシミュレートするUnlambdaプログラムを構成するかを解説します。 実装方針 VMの状態 命令の実行 メインループ ELVMバックエンドの…

UnlambdaでVMを実装する(前編)

Esolang Advent Calendar 2016 2日目の記事です。 ELVMにUnlambdaバックエンドを実装して、C言語のプログラムをUnlambdaに変換できるようにした話です。ちょっと長くなったので2回に分けました。 Unlambdaとは ELVMとは Unlambdaでデータ構造を表現する ペア…

8cc.unl

Unlambdaで動くCコンパイラができました。 https://github.com/irori/8cc.unl id:shinichiro_hさんのbflispで使われている改造版8ccのアセンブリ出力からUnlambdaへのトランスレータです。 これで同一のCプログラムをBrainfuckとUnlambdaの両方で動かせます…

Unlambda で Lisp インタプリタ

https://github.com/irori/unlambda-lisp3 連休だったので Unlambda で Lisp インタプリタを作ってみました。Adventure を作ったときのコードジェネレータを流用して、今回新たに書いたコードは 400 行ちょっとでした。生成された Unlambda プログラムは 35k…

Unlambda で限定継続

Esolang Advent Calendar 2013 用の記事です。Unlambda という esoteric language がありまして、s, k, i といった少数の組み込み関数と関数適用演算子 ` のみでプログラムを書くという、Brainfuck の関数型版とでもいうような言語です。 The Unlambda Progr…

JavaScript Unlambda interpreter

http://inazz.jp/unlambda/ inazz さんがブラウザ上で動く Unlambda インタプリタを作っておられます。 実行中の式を表示しながらステップ実行できます。しかも速いです。 Adventure がサクサク動いてびっくりしました。

Adventure in Unlambda 解説 その2

前回の続きです。今回は Adventure のゲーム部分の実装について解説します。

Adventure in Unlambda 解説 その1

Adventure in Unlambda のコード解説です。(ゲームのネタバレはありません。)

Adventure in Unlambda

世界最初のアドベンチャーゲームであり、「アドベンチャー」ゲームというジャンルの語源ともなった Colossal Cave Adventure を Unlambda に移植しました。advent-unlambda.tar.gz (github) (2011/12/15 ソースコードが一部抜けていたのを修正しました)コ…