Befunge の検索結果:

ELVM Compiler Infrastructure について

…きました。ですが、 Befunge の時はなにか中間に入れないとキツいと感じたので、 LLVM bitcode から雑に変換する、という方法でやりました。といっても、 LLVM bitcode は任意のものを許すわけではなく、変換器がサポートしてる命令しか吐かないように注意深く書かれた lisp.c を LLVM bitcode にして、そこから Befunge に変換する、というようなやり方でした。で、 Brainfuck もやってみるかなぁと思った時に、これは自明に Be…

ELVM Compiler Infrastructure

…INTERCAL, Befunge, Whitespace などがあります。例えば Lisp を Piet で動かしたりもできるようになりました。 lisp.png を gimp で開いてスクリーンショットを撮ったこの画像なんかは結構お気にいりです。JavaScript に変換することもできるので、デモサイトは ELVM を使って作った JS で作られています。http://shinh.skr.jp/elvm/8cc.js.htmlスライドにも書きましたが、「チューリング完全…

bflisp.bf

…さのなにかを挟んだ方が簡単じゃないの?って言ってて、それを採用した感じです。 sed/befunge/make の時は挟まない方が簡単だと今でも思ってますが、 Brainfuck 直行はまあムリゲー感しか無いです。Befunge の時は LLVM bit code からだったのですが、 8cc にしたのは Brainfuck 上で C コンパイラ自体を動かすという夢があるからです。これ実現するにはまだまだやること多いはず…です。 8cc 大変いじりやすくてありがたかったです。

2D Lisp

…ありませんでした。 Befunge コードが C 書くだけで作れるってのはラクチンですね…で、こんなコードが動きます。2次元であることに面白い意味を持たせるアイデアが無かったので、単に 2D レイアウトできるようになっただけです。 Befunge 同様コードが交差できるのは少しオシャレ。気をつけないと括弧のつもりで使った v が文字列の一部になったりするので、書くのはかなり大変 (defun fizzbuzz ^ (fizzbuzz 1) @ ^ zzuB ( 0 (5 n …

追記

TODO の後者の方はやった。3倍はやくなりました。前者の方はとりあえずレジスタって概念を導入してみて、少しだけはやくなりました。次で使う場合はレジスタっていうか Befunge のスタックに残しておけるんで、そういうことをすれば少しだけ速くなるはずですが、そんなとこはボトルネックでは無い気もするのでもういいやという結論に

beflisp.bef と LLVM Befunge backend

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

2012年まとめ

… ICFPC in Befunge 、 IOCCC と hello broken keyboard 、小文字アルファベット Quine for ruby 1.8 、 TLE 2位、 Malbolge 、あたり。 ChangeLog に自分の名前を混入させようプロジェクト的には binutils と LLVM ハタから見るとあんまなんもやってない感があるけど、なんか少なくとも一昨年よりは趣味コーディングに時間を費していたと思う。割と最近書いてない種類のコードが多くて、なにやらま…

Hello golf in Malbolge

…ストのために巨大な befunge プログラムを書きました。 Malbolge 概要 ご存じの人が多いかと思いますが、 Malbolge という超難解言語があります。この言語の難解さは brainfuck などがかわいく見える、というか、私の感覚では ruby と brainfuck くらいの差が brainfuck と malbolge の間には存在しています。いや、もっと広いかもしれず。Malbolge について一言で紹介すると、「抜群のバランス感覚で適当に設計された神ク…

Hello broken keyboard

…計算できないわけですが、適当に素因数分解してそれぞれの部分の最短の式を使う感じでやってました。このへんで本当に最短かっていうとたぶん最短じゃない、ってのが少し気持ち悪い感じではあります…あとは他の言語だと perl と befunge がすごそうなのでちゃんと確認しないとですね…あと z80 とか 数字しばりプログラミング した時のコードをそのまま提出しただけだったんですが、たった3種類でいけるもんなんですね… ADD A,IMM と HALT と CALL だけ、ですかね?

Befunge コードの説明

忘れないうちに適当におえかきしてみました。

ICFP programming contest 2012

…00$< ^ $ <Befunge で書いたソルバ。一応確認した範囲では正しくシミュレーションできてると思う。出した答えはちゃんと正の点数出るし。遊んでた理由はマラソンチックなコーディング飽きてるっていうのと、ちょうどネタ的にいい問題だなーと思ったから。一度こういうのやってみたかったんですよね。二度とやりたくないですが。メモリダンプするだけでビジュアライザが完成するのがえらい。ちなみにシミュレータ完成が終了6時間前という、未だかつてないスタートラインの遠さでした。一応答え吐く…

拡張正規表現でカウンタを書く

…あと先日 世界一の Befunge コーダーであることが判明しました(誇張)。なにしようかなぁ考えたのですが、私の好きな言語のひとつに sed っていうか正規表現があるので、それについて。どの程度好きかというと、ほとんど 正規表現しか無いような wake という esoteric language を作ってみたことがある程度には好きな感じです。正規表現ってヤツは普通文字列のマッチングに使うやつで、もちろんループとかは書けないわけですけど、しかしまぁちょっとした計算くらいなら割…

Befunge をゲームにしたい

…わけです。で、まぁ Befunge なら動いてる最中のもの修正するくらいなんとかなるかなーという、そういうどうでもいい思いからまたどうでもいいものを作りました。http://jsdo.it/shinh/xkIHどうも Firefox で動く気配が無いですがまぁめんどいのでいいです。 Chrome か Safari 専用ということで。ゲームとしては、とにかく Hello, world! なり Fizz Buzz なりをなるべく早く完成させろってものになってます。私の記録としては…

Quine いろいろ

…白いかと思います。 Befunge なんかも自分のロードされた空間をメモリとして読めるので比較的簡単に作れるなど。あと、 PHP という言語はご存じの通り Quine に最適化して設計された言語であるため、 a などという1バイトのコードが Quine になってしまったりします。さすがですね。 追記 from id:yshl さん http://d.hatena.ne.jp/yshl/20081102#1225609290PostScript の Quine 短い。文字列をプ…

fizzbuzz7.gif

…ました。具体的には Befunge 。http://shinh.skr.jp/dat_dir/fizzbuzz7.gif前回との差分としては、 Perl と Ruby のコードを融合させた方が明らかに短くなるので融合させて、 z80 をちょっとはマジメにゴルフして、 Befunge 入る隙間を適当に作ってつっこんだというような感じです。したらまだなんか空いてたので by shinh とか入れといた。 z80 と x86 を人生を賭けて縮めたらもう一個くらいなんか入るんじゃない…

cal

…(msg, c); Befunge は id:mayah さん長くなりすぎだっ…とか勝手に対抗心を燃やして適当に作った。そんなに短くもない。あと p と g 封印しておられたらしいのでそもそも。 v144725736146 0&#&%&%&&%&%& >25*"aS rF hT eW uT oM uS">:#,_&v v+g0p00:&--+/4:/**455:/***2558::< >\:::554**%!\4%+\8552***%*!\v v:%7-p12+g12*!-2…

Polyglot Quine 続き

…ir/poly_quine5.txtなんかサイズが40倍とかに膨れあがってしまったんだけど、まぁこれでも頑張ったんだというか最初のバージョンは 80kB とかあって、 公式サイトにある BFI.c とかではメモリサイズの都合で動かないにゃーとか思ってたのを頑張って縮めてこんなもん。 32768Byte のメモリを割とギリギリ全部使うはず。まぁまだいくらでも縮められるだろうけど。あとは Befunge は zfunge なら余裕で混じるだろうけど。自明すぎてやる気起きないよな。

Perl / Ruby / Python / C++ / Brainfuck / Befunge あたりで Hello

…++ world! i@colinux ~/wrk/ag> ./befunge.rb poly_hello.txt Hello, Befunge world! i@colinux ~/wrk/ag> ./BFI poly_hello.txt Hello, Brainfuck world!なんか昨日のヤツを仕組みをわかりやすくする目的でこういうのを作ってたんですが忘れさられていたので。 Whitespace とか Whirl とかは余裕で足せるけど見苦しくなるので加えてません。

Brainfuck でも Whitespace でも Befunge でもある ELF バイナリ

を作ってみました。http://shinh.skr.jp/dat_dir/tetraglothttp://shinh.skr.jp/dat_dir/tetraglot.asmPolyglot はこのへんに昔感動しました。昔拾った時は 1991 年バージョンで Perl は入ってませんでしたが入ったのですね。http://ideology.com.au/polyglot/さらに Brainfuck や Whitespace を埋めるのは簡単そうに見えますがどうなのかしら。

C でも BF でも WS でもある

… world! が実行できるけど全部出力はおんなじー、というような。http://shinh.skr.jp/dat_dir/bfws.cWS 埋めるのは簡単で、 BF も "Hello, world!\0+++++..." などとするなりコメントに埋めるなりして後をすっとばせば簡単なのですが、それだとつまらないので C のコードに溶け込んでもらってます。C のコードとしては Obfuscation が足りないし、 Befunge も埋めるくらいのことはしたかったのでイマイチ。

最近のあなごる

…ven+lines#BefungeBF と似たような。 _55+-v0 |\0:~_~:,55+-1 @ csort.rb, csort.pl http://golf.shinh.org/p.rb?sort+characters#Rubyこれしか無い。 $><<gets.scan(/./).sort print sort<>=~/./g csort.c http://golf.shinh.org/p.rb?sort+characters#Ckurimuraさんはおかしい。 s…

アナゴル適当に公開

…むと思えないなー。 Befunge仕様変えちゃったのは申し訳ない。 "!dlrow ,olleH">:#,_@ example.sed ソースが行方不明だよ!おっかしーなー。結構マジメに縮めた記憶があるんだけど勝ててない。 smiley.sed もう一個別解が作れたような。 i: i:- s/$/:-)/ :l p s/$/))/ /.\{65\}/!bl smiley.bf まぁ、普通に。 ++++++++[>---->+>++>+++>>+[<++++]<-]>>+>--…

CORE WARS 2D

…考えてたりします。 Befunge 勉強しはじめたのは、このネタ作るためだったりするわけです。なんかめんどい気分なのでちゃんとした説明とかは気がむいたら今度。ゲームとして成立させるためのメモ 終了命令 @ は無い方がいい。数クロック停止する命令にするとかどうかなー。 & は未実装。 マウス入力で数値が STDIN に入るっての考えたけど強すぎるよなー 相手を殺す以外の終了条件案その1。敵のスタート地点に自分のプログラムカウンタが到達すれば勝利。 (invade.bef) 相手…

dance.d とか

…]); } あと負荷とかは面白いことならなんでも大歓迎ですからドンドンやっちゃってください。ていうか Haskell コンパイラとか 10秒やってもコンパイル時間足りないらしいですからね。hello はやっぱり kurimura さんかーと納得気味。というか普通に Haskell 書いておられててびびります。 Haskell は echo からしてダメ。あとは Befunge に ySas さんが参戦してきていて面白くなってきました。 ICFP を思い出す感じなんだよなーと。

Befunge JIT コンパイラ

…投げ捨てられますし。Befunge は VM なのに自己書き換え持ってるのと、あとプログラムカウンタがわけわからん4方に向いたりランダムで方向分岐したりするのがコンパイラを書くのが難しい点かと思います。後者の方は話は簡単で、4方向のバイナリを生成してしまえば問題ありません。方向分岐は適当に goto left_5_3; みたいなコードを埋めてやればいいわけです。自己書き換えの方は面倒くさくて、なんかしらランタイムに機械語を自己書き換えできないといけません。一命令から生成される…

…考えたんだけどな。 Befunge ゴルフは案外面白いので他の人もぜひ。私の Hello はこんなの。 "!dlrow ,olleH",,,,,,,<@ hello.d Hello は縮めよう無いのかなぁと思ってたら kurimura さんの D の 36B が謎。なんだこれ。 echo.sh pg というコマンド発見にかかっていた。 m4 とか入ってないのなー。 echo.rb echo は実は結構面白い。なんせ Ruby 8B まだわからんからな…!私のは exec'pg…

Befunge

…jp/koneta/befunge.rbインタプリタが欲しくなったので書きました…が、ちょっとぐぐってみるとこちらにもあったのであった。http://mono.kmc.gr.jp/~yhara/w/?Befungeでもなんかサンプルが動いたり動かなかったりするのでまぁ存在価値はあるかもしれないとかまぁどうでもいいんですが。Befunge は眺めてみるに Whitespace よりセンスいいなーと思います。ごく普通のスタックマシンなんですが、やはり自分のプログラム領域を編集でき…

なにかあれば下記メールアドレスへ。
shinichiro.hamaji _at_ gmail.com
shinichiro.h