[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

タグ

befungeに関するyouzのブックマーク (7)

  • 2014-06-27 2D Lisp - 兼雑記

    beflisp.bef が 1次元 Lisp しかサポートしてないのはけしからん、と言われてその通りだなぁと思ったので、 lisp2d.c てのを書いて beflisp2d.bef を生成してみました。 bc2bef.cc は全くいじる必要がありませんでした。 Befunge コードが C 書くだけで作れるってのはラクチンですね… で、こんなコードが動きます。2次元であることに面白い意味を持たせるアイデアが無かったので、単に 2D レイアウトできるようになっただけです。 Befunge 同様コードが交差できるのは少しオシャレ。気をつけないと括弧のつもりで使った v が文字列の一部になったりするので、書くのはかなり大変 (defun fizzbuzz ^ (fizzbuzz 1) @ ^ zzuB ( 0 (5 n dom) i ^ f v ^ q ( eq ^ ^ fi) ^ v m e

    2014-06-27 2D Lisp - 兼雑記
    youz
    youz 2014/06/27
    あれ、無限ループしてね? って思ったけど最初の ^ は"下へ方向転換する開き括弧"なのかw
  • beflisp.bef と LLVM Befunge backend - 2014-06-22 - 兼雑記

    https://github.com/shinh/beflisp Lisp インタプリタを作りました。今度は Befunge で。 https://github.com/shinh/beflisp/blob/master/beflisp.bef コードを見ればわかりますが、手書きは諦めました。 前回の sed と違って Befunge は数値演算は素直に提供してくれてるので、アドレス計算なんかをするプリミティブが提供しやすいです。ただ、 Befunge-93 は文字列とか関数コールという概念が無いので、手動でフロー管理するのは地獄でしょうね… ということで、 C で lisp を書いて、それを clang で LLVM bitcode に変換してから、トランスレータで Befunge に変換、という構成になっています。 実装 トランスレータは任意の C コードを Befunge に変換でき

    beflisp.bef と LLVM Befunge backend - 2014-06-22 - 兼雑記
    youz
    youz 2014/06/23
    aieee... > C で lisp を書いて、それを clang で LLVM bitcode に変換してから、トランスレータで Befunge に変換、という構成になっています。
  • ICFP programming contest 2012 - 兼雑記

    http://shinh.skr.jp/dat_dir/icfp12.tgz 二日目から遊んでました。 <vp0"L"2p0"F"0p0"E"0p0"D"*55p0"C"0p0"B"*25p0"A"0 p"d"00 v< >0"J"0p 0"M"0p v > >00g"F"0g2p 10g"F"0g1+2p :"F"0g2+ v v p0"N"0 < > "G"0p ^ > :"*"- #v_^ 2 v < ^ +1g0"G" _^#!-"@": < > :"\"- #v_ "G"0g v p > 010p 000p > #^~:00g 10g"e" +p:"R"-#^_00g 50p10g 60pv v p0"G"+1 < v< ^p00+1g00 _v#-5-5 < < p0"F"+3g0"F" < ^p01+1g01p000_v#g00< v < > ~$~$~$~$~$ "B" v

    ICFP programming contest 2012 - 兼雑記
  • Funge-98 Final Specification

    Chris Pressey, Sept 11, 1998 revised for clarity: Sept 30 1998 Table of Contents Introduction What is a Funge? About this Document The Funge Virtual Machine Code and Data Funge-Space Stack Stack Funge Source File Format Code: Program Flow Instruction Pointer Instructions Direction Changing Wrapping Flow Control Decision Making Data: Cell Crunching Integers Strings Stack Manipulation Stack Stack Ma

  • cfunge

  • Befunge - Wikipedia

    Befunge は難解プログラミング言語の一つ。手続き型、スタック型で、自己変更的な言語である。実用言語ではない難解プログラミング言語のひとつ。 この言語のプログラムの命令は一次元の列ではなく二次元の格子上に並んでいて、実行する向きを上下左右に変更できる。この言語の任意の1命令は、ソースコード中で1文字で表現される。したがって、ソースコード中の行と桁がプログラムの格子の位置に対応する。 1993 年、Chris Pressey が「コンパイルが困難な言語」として作った。Befunge-93 はプログラムのサイズが 80 桁 25 行に固定されている。Befunge-93 の拡張 (一般化) である Funge-98 にはこの制限は無く、チューリング完全である。さらに Funge-98 には任意次元への拡張やマルチスレッド対応等が含まれている。

  • 新言語考えた - まめめも

    テーマは befunge + π計算。 ちなみにπ計算の知識は sumii 様のπ-calculus 超入門を読んだだけしかない。 以下、befunge はみな知っているものとしています。 基部分 実行モデルは基的には befunge で、2 次元上のコードをカーソルが走って fetch しながら実行が進む。初期状態では左上の原点から右方向に向かって走るプロセスが 1 だけ。各プロセスは数値またはチャンネルからなるスタック (っぽいもの) を持っている。 '|' は fork 。進行方向に対して左右に分かれて走り出す。 v > AAA > | > BBB上のコードでは、 AAA と BBB を並列実行する。fork したらスタックは全部コピーされる (fork した後でスタックをいじっても、相方のスタックは変化しない) 。 '&' はチャンネルを生成してスタックに乗せる。'!' は送

    新言語考えた - まめめも
    youz
    youz 2008/08/26
    befunge+π計算。ピタゴラスイッチみたい。
  • 1