sed の検索結果:

ELVM Compiler Infrastructure について

…18/095437 sedlisp, beflisp, makelisp, bflisp 色々あって、Esolangですごく簡単なLisp処理系を書く、というのがマイブームになったことがありました。 GNU sed と GNU make は完全手書きでした。sedlisp を書いた時から、 @rui314 さんは「手書きじゃなくて中間層を介して変換した方が良いのではないか」と言っていたのですが、 sed や make だと、計算モデルが違いすぎるので直接書く方がラクかなという…

システムプログラミング会

…会的な感じで、closedに人集めてウダウダやるつもりだったんですが、途中でPFNさんに場所貸していただけるということで、不特定な人を呼ぶことになって、当初想定してたより大袈裟な会になりました。適当に募集すると人が集まって自己顕示欲が満たされるとか、普段得られない種類のフィードバックが得られたり交流ができる、てのがあるわけですが、めんどくさいのとグダグダ雑談がしにくいのが難点ですね。まあ自分自身が一般的に募集されてる会で勉強した面もあるわけで、そういうのの恩返しになるかもとい…

bflisp.bf

…ck で。だいたい sedlisp や beflisp や makelisp と似たようなことができます。ちょっとバグあるみたいですが。Malbolge は実装不能だと思うので、これ以上なくキツいターゲットじゃないかと思っています、ので Lisp シリーズはこれで最後でないかと。というか現世的な速度で動くとは思ってなかった。月なみですが、今のパソコン速いですねー。実現は簡単な 16bit ハーバードアーキの CPU を定義して、魔改造した 8cc で lisp.c をその C…

makelisp.mk

…縛りです。だいたい sedlisp や beflisp と似たようなことができます。最近作ってる GNU make clone であるところの kati でもちゃんと動きます。というか fizzbuzz.l とかだと 50 倍以上速い。実装はまあ、やるだけ…と言いたいところですが、加減乗除が無いとか、文字列演算も色々不便とかあったりはします。あと地味に引数以外にローカル変数が無いのもだるいですね。当初は lisp to make translator を実装する感じがラクかな…

Python 2/3 で小文字アルファベットと丸括弧だけで Quine を書く

…next(reversed(range(i))) で i-1 ができるということと、 @phoenixstarhiro が unichr(x)in(list(unichr(y))) で x==y ができるということを発見してくれたため、現実的なサイズで Quine が書けました。https://raw.githubusercontent.com/shinh/hack/master/alparen_py/alparen_quine.pyhttps://raw.githubuse…

beflisp.bef と LLVM Befunge backend

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

sedlisp.sed

…com/shinh/sedlispLisp インタプリタを書きました。 sed で。https://github.com/shinh/sedlisp/blob/master/sedlisp.sedREADME に書いた通り、それなりにややこしいプログラムも動く気がします。具体的には eval.l として、 eval の無いところで eval を実装しました。で、その上で FizzBuzz なんかが動きます。これはつまり S 式のパースは省略した Lisp のインタプリタと言っ…

Code Zip

…or 1..<> Perl6 でも書いてみたけど 1B 長い。 printf("%f ",get**2*17/6)for^get Bash でも書いてみたけど 1B 長く、そして何故か WA 喰らうので謎。これが WA じゃなければ、これをゴルフすればもうちょい短くなる気がするんだけどな。 dc -e'6k?[?d*17*6/pr1-d0<L]dsLx'ちなみに入出力が常識的なものだったら 9B くらい縮んで楽勝だったんですがね… sed '1!a6kd*17*6/p'|dc

\BV interpreter in sed (ICFPC 2013)

…543210' | sed -f bv.sed 0x91A2B3C4D5E6F7コード。 GNU sed と Mac の sed で動作確認 h s/.* // s/0x// y/abcdef/ABCDEF/ s/^/0000000000000000/ s/.*\(.\{16\}\)$/\1@/ :hex2bin s/$/;10;32;54;76;98;BA;DC;FE/ s/\(.\)@\([^;]*\).*;\1\(.\).*/\3@1\2/ s/@\([^;]*\);.…

clearstack

…location used in alloc() is not used in this function. void* p; // The allocated memory will be properly reclaimed even without our // clang plugin if we have this line. // p = NULL; asm(""::"m"(p)); main_loop(p); } int main() { GC_init(); …

20th IOCCC 入賞

…ここの Set based solver ぽいのを bit 演算で実装して、あとは適当にゴルフしてたらこのサイズにおさまるようになりました。たしか空白コメントのぞいて 2kB くらいあったコードを 1kB くらいまで縮めました。予想以上に回りの数字がコードサイズを消費しちゃうなぁとか思っていました。整形する前のコードはたぶんこれです。http://shinh.skr.jp/dat_dir/nonogram6.c他の入賞コードも一通り見たんですが、とりあえず akari.c が…

正規表現 FizzBuzz メモ

wake と sed のセパレータがちょっと違う場所があったのを適当に修正。 \%!; until (/;/) { #|fizzbuzz: l1,1 #%! { : } \%!; $\=$/; #\(\) #|k(.);.*\1(.).*:"$2" #%! s/$/;0123456789;/ \%!; s/$/;0123456789;/; #|j(.):k$+;0123456789 #%! s/9;\(.*;\)/;\10/ \%!; s/9;(.*;)/;${+}0/; #…

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

…きな言語のひとつに sed っていうか正規表現があるので、それについて。どの程度好きかというと、ほとんど 正規表現しか無いような wake という esoteric language を作ってみたことがある程度には好きな感じです。正規表現ってヤツは普通文字列のマッチングに使うやつで、もちろんループとかは書けないわけですけど、しかしまぁちょっとした計算くらいなら割とできたりします。ループや出力の部分だけ、元の言語の機能から借りてやれば、割と色んなプログラムが書けます。例えば F…

StringPiece というライブラリの話

…\ int elapsed = clock() - start; \ assert(!strcmp(joined.c_str(), "/tmp/hoge.c")); \ printf("%s %f\n", msg, (double)elapsed / CLOCKS_PER_SEC); \ } while (0) int main() { const string& dir = "/tmp"; const string& base = "hoge.c"; string join…

wake 続き

…。このへんによると sed 好きな人にそれなりに遊んでもらっているようなので良かったなーと思いました。http://jarp.does.notwork.org/diary/http://ls-al.jp/blog2/そういえば partial match じゃなくて full match ではまる、ってのは私もよくやります。 partial match を指示できる記法とか、 Perl の s///ge 的なのはあってもいいのかなーとは思ったんですが、まぁ make ぽさを殺…

プログラム言語 wake

…いかなと思います。 sed と比較すると、 fizzbuzz 書くまでの時間とか考えるとだいぶラクだったかなぁとか思います。別にラクさを目的として作ったわけじゃないですが。ミニマルな言語としては、こんなもんかなぁと思うのですが、なんか機能を足すとしたら、整数演算くらいは欲しいかな…とは思います。 $[...] があったらその中身を四則演算する、くらいかなぁと(追記: どっちかというと、 include をできるようにして、標準ライブラリとして提供すればいいか…)。昨日思いつい…

回文

…クリです。 # based on http://d.hatena.ne.jp/KeisukeNakano/20070626/1182879045 # usage: beef =(ruby palin_bf_q.rb) > palin_quine.bf hash = { '+'=>'>>', '-'=>'>++>', '.'=>'>+++>', '<'=>'>+>+', '>'=>'>+++>+', '['=>'>>+++', ']'=>'>++>+++', } code='+…

2009年度言語雑談会

…はちょっとどうなのかなーとかいう。sed が好き: なんで好きかっていうとやれることができるギリギリっていうのもあるけど、正規表現が好きで好きでしょうがないというのが一番の理由だったと思いだした。ゴルフで問題を部品に分解して組んでいくことができない: ゴルフ以外というか普通にプログラム解く時は当然できるということを言い忘れた。一般的に optimization ってのは global にやればやるほど圧倒的に大変になるけど、しかし成果物は少し良くなるって意識が強いんだよなぁ。

人材獲得作戦.sed

…6.html適当に sed で解いてみた。サイズ決め打ちで書いたら割と簡単だった… H ${ x # initialize seen positions h x s/.\(.\{25\}\).S.\(.\{25\}\)./*\1***\2*/ x # initialize initial state of the queue s/S /SN/ /N/{H;s/N/ /} s/ S/NS/ /N/{H;s/N/ /} s/\(S.\{26\}\) /\1N/ /N/{H;s/N…

WebKit について (コード)

…cialTagParsed みたいな変数を作ったら、「special とかじゃわからんがな」と怒られて、「うんそうだねじゃあこっちの関数名もなおしとくね…」といじった記憶があります。一方で省メモリや高速化なんかの点では、これはなかなかすごく頑張ってるように思います。まず省メモリについては、そこらじゅうで bit field が使われてるとかいう時点で既にアレです。あとは共有できるものはなるべく共有するというのもよくやられています。例えば RenderStyle というスタイル…

qif2.rb

…uYmB51HrrtSEDJ4AHcrxcxt1Ro55dX19XG1wz 9u0pWG66JGnVGcpWr/A62MIAQ='.unpack 'm';include( Zlib);eval(Inflate.inflate(c.at 0))));by(shinh) いいところはリバーシブルなところ。出力された gif を ruby なり perl なりで実行すると元の rb が出てくるです。 % diff =(perl =(ruby1.9 =(ruby qif2.gif))…

年末

…るっぽい。Proposed Wording for Placement Insert: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2680.pdfTODO: 来年あるなら herumi さんをお誘いする。 http://homepage1.nifty.com/herumi/diary/0812.html#28 拉致、移動 なぜか IM 飲み会というものに参加させていただくことになっていて、 Cryolit…

C++0x メモ

…ability-Based Leak Detection (revised) http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2670.htmGC をサポートするほげほげ。下記が詳しい。http://d.hatena.ne.jp/faith_and_brave/20081117/1226913980 N2802: A plea to reconsider detach-on-destruction for th…

binspect

…4], [:clrUsed, 2], [:clrImportant, 2], ]]] palette = [:palette, [ [[:r, 0], [:g, 0], [:b, 0], [:unused, 0]], [[:r, 255], [:g, 255], [:b, 255], [:unused, 0]], ]] bmp = [fileHdr, infoHdr, palette] bin = BMP.new.dump(bmp) bin += %Q( BEGIN{puts…

Ruby Kaigi 2008

…ード書いてて、あと sed で Compound interest 解いたけど案の定タイムアウトとかしたりしてました。かけ算とか無理です。んでから講評とかしなければならなかったのですが、誰が1位かさっぱりわからないとか、自分のコード説明するけどそれとっくに破られてるし、とか色々ひどかったです。プレゼン用の html はその場で html を出力するプログラムを書いた。なんかしら参加して下さった方々ありがとうございます。リモートで旗包み系なコードを投稿して下さった本職の方々もあ…

__dyld_stub_binding_helper_interface で落ちてた件

…might be used as parameters movl %ecx,ECX_SAVE(%esp) movl %edx,EDX_SAVE(%esp) movdqa %xmm0,XMMM0_SAVE(%esp) # ここで落ちた movdqa %xmm1,XMMM1_SAVE(%esp) movdqa %xmm2,XMMM2_SAVE(%esp) movdqa %xmm3,XMMM3_SAVE(%esp) まぁ要はとりあえずレジスタの値保存しておいてから bind する関…

ファイル種類統計

今度はホームディレクトリ以下にあるファイルのファイル種類を調べてみた。展開したアーカイブが結構多いんだろうなーというかんじ。でも正直なんでなのかよくわからんファイルも多いな。 XML 10位とか。今回使ったソースコード。要 libmagic-dev と gchartrb 。http://shinh.skr.jp/koneta/ftstat.tgz % ln -s gchartrb-0.8/lib gchart % ruby extconf.rb % make % ruby f…

human readable digits

…!/usr/bin/ruby -p gsub(/\d+/){"%#{s=$&.size-1}s#{%w(T G M k)[4-s/3]}"%$&[0,s%3+1]} サンプル実行例。 i@uco ~> free|hrd total used free shared buffers cached Mem: 515k 500k 15k 0 122k 51k -/+ buffers/cache: 326k 189k Swap: 0 0 0ちなみに free -m とかは知ってます。

GCC とメタプログラミング

… \ done | sed 's|$(srcdir)/||' > tmp-gencheck.h $(SHELL) $(srcdir)/../move-if-change tmp-gencheck.h gencheck.h $(STAMP) s-gencheckとかやってファイル一覧を適当に sed とかでいじりつつ作っている。あと GCC でコード生成というと GGC とかが有名かと思います。 GGC は GCC 用の GC で、 gengtype* がメインのソースコードぽ…

ゆくとしくるとし

…ただし愛は Perl とか sed にそそがれていた(愛人)。つまりまぁあんまり新しい言語とかやらんかったような。来年は PostScript と J と Emacs LISP あたりができるようになってると良い。あと最近 D 見てない。来年といえばなんか毎年思ってる気がするけどゲーム作りたいなぁ。とかまぁそういうことばかり考えてると他のことを全くやらないのであった。最近非プログラマに現状を説明する時は「ゲームするよりマンガ読むよりプログラム書いてる方がラク」とか言っている。

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