タグ

ブックマーク / www.kmonos.net (19)

  • d.y.d. - セキュリティ&プログラミングキャンプ

    17:05 09/08/31 FLTV FLTV で、 『レトリカルプログラミング』(副題: 真・自然言語プログラミング)と題して発表してきました: 発表スライド。 未来の言語…と言われて、いつもしているような言語機能妄想をバラバラと語ればよいのかなー と思って途中まで発表ネタを組んでたのですが、 やっぱり一スジが通ってる方が面白いだろうということで、一つ軸を通しました。 テーマは「日語や英語をプログラミング言語と見なしてみると、 実はヤツらはとてもパワフルで凄いので未来の言語は是非パクるべき」。 スライドでは私の思う具体例を3つほど挙げてるんですが、 まあそれはあくまで例でして、伝えたかったのは 「ちょっとみなさん自然言語からプログラミング的な『機能』を探すという考え方をしてみると面白いかもですよ?」 という軸そのものの方です。きっとあの3つの他にも色々あるはず。 ネタ元は、 今年の

    todesking
    todesking 2014/09/25
  • d.y.d.

    23:04 12/07/16 ICFP Contest 2012 この連休は、毎年恒例 ICFP Programming Contest に出ていました。 ソースコード置き場。 今回のお題は Boulder Dash っぽいゲームAI書けというものでした。ただしダイヤモンドではなく「λ」を回収します。 見た瞬間に、えっ無理だろそんなの、と思って思わず旅に出たくなってしまったりしていましたが、 やってみるとそれなりに手はあって、結局3日間ちまちまと改善を続けていました。 と言っても結局パッと思いつくことしかできていない…。 基的に貪欲アルゴリズム。(幅優先探索で)一番近いλに向かって直行、を繰り返す。 ただし岩の下にあるものを取ると盤面を崩壊させる恐れがあるので、そこだけ微妙に距離をおく たどり着けるλも出口もなくなったら、土をどけたり岩を押したり色々してみる。 が基方針で、ただしこれ

    todesking
    todesking 2014/06/20
  • d.y.d. - 2012年に読んだ面白論文紹介場所 参加記事

    23:00 13/03/07 2012年に読んだ面白論文紹介場所 参加記事です。3立てです。 ☆ 「博士の愛した数当て」 ☆ 「It's not Automatic.」 ☆ 「47」 博士の愛した数当て まず1目は、STACS'12 から "Playing Mastermind With Constant-Size Memory"。 ぼくの記憶は 1ターンしか もたない ヒット&ブローあるいはマスターマインドというゲームがあります。 私が遊んだことがあるバージョンは 出題者が、0-9の数字を4桁並べた数を頭に思い浮かべる。 回答者が、その数を当てようとする。0-9の数字を4桁並べた数を「これですか?」と出題者に質問 桁も値もあってる数字が x 個、場所が違うけど値はあってる数字が y 個あったら「x ヒット y ブロー」と返事 以下繰り返し。4ヒットになったらお終い。 こういうルールで

    todesking
    todesking 2014/06/20
  • 汎用ソート殺し - d.y.d.

    00:26 12/12/18 BookLive! 7月に出会ってからずっと電子書籍ストアとして BookLive! をひいきにしているのですが、一体どこが好きなのか語りたくなりました。 ITMedia の これでもう迷わない、電子書店完全ガイド という一連の記事の、 電子書籍の端末の話よりストアの話をしましょうよというコンセプトに思いっきり影響されています。 といっても、第一印象が「普通のことが普通にできるので感激した!!」というもので、 つまり今年の前半に使っていた幾つかの電子書籍ストア/専用アプリが残念だっただけかもしれません。 買ったがどこをクリックすれば読めるのか理解するのに10分かかった、とか、 6冊以上買うと棚アプリから画面外にがはみ出るので手でいちいち棚を変えて整理しないと読めない、とか。 当に普通に使えるという以上に特筆することもないんですが、 あ、でも、今年になる

    todesking
    todesking 2012/12/02
  • 自動微分 ≪フォワード・モード≫ - d.y.d.

    23:21 11/12/22 今年読んだ面白コンピュータサイエンス論文紹介カレンダー 第 n (1<n) 週目モードです。 ☆ 「難しい問題」 ☆ 「名のない関数」 ☆ 「演算のせいしつ」 「難しい問題」 [5] R. Impagliazzo and L. A. Levin. "No Better Ways to Generate Hard NP Instances than Picking Uniformly at Random." FOCS 1990. ランダム生成に興味があります。 パズルゲームを作りました。 さて、手強い難易度の面データを無限にランダム生成するにはどうすればいいだろう。 プログラミングコンテストの問題を作りました。 さて、自動チェック用のテストデータをランダム生成するにはどうすればいいだろう。 適当なランダム生成では、簡単なケースばっかり作られてしまい 嘘解法 に突

    自動微分 ≪フォワード・モード≫ - d.y.d.
    todesking
    todesking 2011/12/15
  • d.y.d.: 砦 - "Fortress" という新しい言語について

    21:58 06/04/29 FLOPS 自分はFLOPSには行ってないけど (すみません(^^;)それのために来日した人と会いまくる 日でした。具体的には shelarcy さんに誘われて、Oleg Kiselyov 氏 と Andrew Pimlott 氏 と語る会 →→ Guy Steele 氏と鍋をつつく会、のコンボ。 Oleg (SXMLの人でMetaOCamlの人でZipperFSの人でetc.etc.)もGuy(CommonLispの人でSchemeの 人でJavaの人でetc.etc.)も自分から見れば雲の遙か上の人で。このような機会をくれた方々に 当に当に感謝です。 Scheme, Haskell, ... Olegさん達とは、FLOPSで発表されてた Soutei というシステムの話。 なぜだか最後の方はひたすら cut-sea さんマシンのGaucheでUnif

    todesking
    todesking 2011/08/27
    Fortressきょうみぶかい、いまどうなってるのかしらべよう
  • d.y.d. 文字コード&ベイズ推定

    12:21 06/05/28 うたひめ 先日の記事に書いたように KOKIA にハマりまして、 とりあえず片っ端から聴いてみることにしました。まずは 1st アルバムの 『songbird』 から … …4曲目の "白い雪" ヤバい。超ヤバい。なんだこれ。ツボすぎる。 ベスト盤を聴いたとき感じた揺らぎなく落ち着いた歌唱力的な曲を期待して聴きはじめたら、 予想外の声質の歌が飛び込んできてびっくりしました。もちろん抜群に巧いのに かわりはないんですが、ずっと儚げな、ガラス細工みたいなイメージの、ああ、その、 つまり白い雪みたいな雰囲気の綺麗な声で。その声と奇跡的にマッチしたメロディ。 すごいなあ。9曲目の "ありがとう…" もベスト盤でのリテイクと比べて同じ印象で、 Amazonのreview で TenderBerry さんという方が近いことを書いておられました。 しかし書いてて自分の語彙の

    todesking
    todesking 2011/07/24
    今のLTでやったことのモチベーションについてはここを読むといいです
  • 正規表現しちへんげ! 第二夜

    09:25 10/12/31 年末まとめ 今年何やったっけ、と日記を読み返していました。何もやってないな…。 Polemy 作りました、くらい。 言語処理系作るのはやっぱり楽しいですね。 汎用言語として使う格的なものを作ろうとすると懲りすぎて一歩も進まなくなってしまう自分が見えるので、 来年は、そうだなあ、TopCoder/ICPC風コンテストに特化した言語というかC++へのトランスレータ、 くらいに絞って作ってみようかなあ。 書いた記事だと 最短性チェックの話 が自分では割と気に入っています。 これのもっとバグを許容するバージョン作れないか。 読んだ論文で面白かったのは "A Pearl on SAT Solving in Prolog" と "When Simulation Meets Antichains" (PDF) など。 あとは、今年読んで面白かったベスト5(順不同): 『

    todesking
    todesking 2011/01/27
    Polemyかっこいい
  • 20分でわかるPurely Functional Data Structures (PDF)

    20分でわかる Purely Functional Data Structures k.inaba (http://www.kmonos.net/) Apr. 4, 2010 あらすじ イ ミ ュ ー タ ブ ル デ ー タ 構 造 は 遅 い Immutable Object だけで作るデータ構造 このの 内 容を 全速力で 布教する お題:キュー (Queue) • FIFO (First-In First-Out) • pushBack(e) でデータeを入れる • popFront() で取り出せる • 入れた順に出てくる • 以上 破壊的キュー Immutable Object でない 打倒すべき目標 代 入 手続き型でよくある interface Queue<E> { void pushBack(E e); E popFront(); } よくある実装 1 2 3 ・ 4 ・

    todesking
    todesking 2010/12/02
    20分でわかるPurely Functional Data Structures[pdf]
  • 字句の構成 - プログラミング言語 D (日本語訳)

    ソースファイルが BOM で始まらない場合は、 最初の2文字は必ず U0000007F 以下でなければなりません。 二連文字(digraph)や三連文字(trigraph)はDには存在しません。 ソーステキストは Unicode Character の列へとデコードされ、 解釈されます。Character は、以下に分類されます: WhiteSpace, EndOfLine, Comment, SpecialTokenSequence, Token, そして最後に EndOfFile。 トークンへ分解する際には、最長一致戦略を用います。つまり、 字句解析器はできるだけ長いトークンを探そうとします。 例えば >> は右シフトトークンであって、 2個の不等号トークンとは解釈しません。この規則の例外は、 浮動小数点数リテラルとして読めるトークンに挟まれた .. です。 例えば 1..2 は、..

    todesking
    todesking 2010/08/13
    よんでる
  • 例外安全 - プログラミング言語 D (日本語訳)

    例外安全なプログラミングとは、 例外を投げる可能性があるコードが実際に例外を投げた場合に、 プログラムの状態が壊れずリソースもリークしないように作るプログラミングのことを言います。 これを正しく実現するには、既存の方法では、複雑で読みにくく脆いコード を書かねばなりませんでした。結果として、例外安全性に関して バグが残っていることが非常に多かったり、そもそも手間を省くために 例外安全が完全に無視されたりしてきました。 例として、数行の文を実行するあいだMutexをロックして、 終わったら解放するというケースを考えてみましょう: void abc() { Mutex m = new Mutex; lock(m); // mutexをロック foo(); // 処理を行う unlock(m); // mutexをアンロック } >foo() が例外を投げると、abc() は例外による巻き戻しで

    todesking
    todesking 2008/08/28
    scope(exit|failure)文
  • d.y.d.おもしろいみろん

    13:33 08/06/29 RSS of kmonos/wlog moved! http://www.kmonos.net/wlog/index.rdf いや、移動したのは15ヶ月前なので、すでにご存じの方は華麗にスルーしてください。 「ここのRSSが文字化けしてるよー」という方だけ、↑に登録変更していただけると、 直るかと思います。お手数おかけしてスミマセン。定期的に「文字化けってる」という 指摘を見かけるので再度ブロードキャストです。こう、辛辣な評議会とかで怒られそうですけど、 諸般の事情により古い方からリダイレクトかけるの難しいらしいのだよね… それはそうと、昨日の記事に追記しました。 10:26 08/06/28 Logic ∩ CS 検索してたらたまたまヒットした "On the Unusual Effectiveness of Logic in Computer Scienc

    todesking
    todesking 2008/06/04
    表示的意味論
  • d.y.d. memo: POPL 2

    17:17 08/01/30 ところで C++JavaScriptPHP が批判されてるのを見ると思わず何か言いたくなってしまうのだけど、 考えてみるに、他の言語だと割とどうでもいい。そういう意味では、今の自分が好きなプログラミング言語は この3つということになるのかなあ……などと徒然なるままに思いました。 単純に、つきあいが長い方から3つというだけかもしれない。 いやしかし、PHPに対する批判の多くはその通りであるとは思うのですが。 Attacking PHP で触れられてる「リストであり辞書でもある」 array ってあれは普通に便利じゃないです? 結構他の言語でも欲しくなるのですが。 17:08 08/01/29 PHP で Yコンビネータ PHP じゃ Y コンビネータつくれない と聞いて。 <?php // PHPでは関数呼び出しは 関数名(...) か 変数(...

    todesking
    todesking 2008/01/29
    PyPy、Specialization、引数固定、Specialize(eval,source)==compiled_source
  • Erlang Land

    電話会社エリクソンの研究所で作られた言語「Erlang」についてしばらく調べてみようと思います。読み方はたぶん"あーらん"で。 リアルタイム処理や誤り検出が可能で組込用途に使われていて、並行処理の記述も可能、 ML や Haskell、Clean などに代表される関数型プログラミング言語の一種である、 と、見た目なかなか盛りだくさんな感じ。さてさて。 ご意見・間違いの指摘等大歓迎。 インストール 概観1 概観2 * 変数 構文の基 データ構造 * パターンマッチ1 パターンマッチ2 パターンマッチ3 関数定義 落ち穂拾い メモ プロセス1 * プロセス2 インストール (2003/04/09) Open Source Erlang のページから、 ソースやメジャーなOS用のバイナリが手に入ります。異様にデカいので、 回線の細い方には厳しいかもしれません。Windowsの場合、 落としたイ

    todesking
    todesking 2007/05/05
    入門
  • d.y.d. Bowling

    21:11 07/02/26 俺定義で書けたら via この辺。 それをネタ元にして一人用パズルゲームが作れたらNP完全ぽい。 二人用対戦ゲームが作れたらPSPACE完全ぽい、というのを時々聞きます。 NP完全の一番基的な問題が SAT: bool型変数 x1 ~ xn を and と or と not で組み合わせた式があります。 さあ、あなたは、変数 x1 ~ xn の値をうまく決めて式全体の値を true にすることができますか?? という答えを見つけましょう系なのに対して、PSPACE完全の一番基的な問題が QBF: bool型変数 x1 ~ xn を and と or と not で組み合わせた式があります。 x1 をうまく決めて、「例えx2 がtrueでもfalseでも、そこですかさず x3 をうまく決めたら、 x4 がtrueになってもfalseになっても (以下繰り返し

    todesking
    todesking 2007/02/07
    おそろしすぎ。
  • わかったつもりになるD言語

    はじめに 2012年5月現在、最近、このページはあまり更新できていません。すみません m(_ _)m。 D言語友の会 が、長期間ちゃんと更新されている D 言語関係の日語サイトとしておすすめです。 こんにちは。ここは、プログラミング言語 D (D Programming Language, 通称D言語)を紹介するサイトです。 すでに Java など一般的なプログラミング言語の経験がある読者を前提として書かれています。 一部古いページを除いて、基的に、D 2.x 系統の言語仕様をベースに解説しています。 → 更新情報は RSS で 目次 1. Dってどんな言語? サンプルコード色々 D言語を大きくカテゴライズすると、「C風の構文を備えた」 「静的型」の「ネイティブコンパイル」言語と いうことになります。オブジェクト指向やテンプレートメタプログラミングなど、 幾つかのパラダイムをサポートし

    todesking
    todesking 2007/01/14
  • d.y.d. DanoMoi と Haskell

    17:24 06/09/27 XP theme 昨日 OSXP というビジュアルスタイルを知りました。 完全にMacOS化してない辺りがかなり好みです。しばらく使ってみよう。 ただ日語のせいかスタートメニュー周りがずれるので、TClockで調整したりユーザーの 表示名をスタイルに合わせて変えたりと適当に酷い合わせ方をしてます。 マジメに直そうよ>自分。 LCSD LCSD '06 (Library-Centric Software Design) のプログラムが出てました。 "ライブラリ" そのものを対象にしてその設計や実装について議論する学会…ということで 特に言語について限定されてはいません。が、実際中身を覗いてみると、 基調講演や Program commitee の面々の名前を見る人が見ればすぐわかるように、 えらく濃いC++使いが集結する感じの学会です。 (や、必ずしも皆が皆C

    todesking
    todesking 2006/09/09
    モナドについての解説
  • d.y.d - instanceof

    21:40 06/01/31 修論 第一稿submit!やほー!学科内発表も最終稿締め切りもまだまだ先に控えてますが、 だいぶ気が楽になりました。 塔 Re: Block Tower。 同じ直方体を2度通らないという制約が、簡単そうに見えてなかなか厄介に思えます。 普通のダイクストラ法なら各頂点でそこまでの最短経路さえ覚えとけば済むんですけど、 同じ直方体を2度使わないようにするためには、各頂点ごとに 「ある直方体Xを通う最短経路」「使わない最短経路」を両方計算しておく必要が あって、それを計算するには「直方体X,Yをどっちも使わない経路」やらなにやら、 理論的には最終的に全ての頂点集合2n個について、それを使わない 最短経路が入用になったりと。 あーでも、実際にはほとんどの「使わない経路」は共有できるからうまくやれば行けるかな? 古くから、風が吹くと桶屋が儲かるとは申しますが、それと

    todesking
    todesking 2006/04/22
    実行時型識別(RTTI)の代表的なアルゴリズム各種。PQ-encodingが高速だって話。
  • ECMAScript - on Surface of the Depth -

    この言語は、HTML内に埋め込んで動きのあるページを記述するための 「JavaScript」 として知られることが多いでしょう。しかし有名すぎるためか、 意外と面白いプログラミング言語であることはあまり気付かれていないように思います。 そこでここでは、HTMLをどうこうという話は置いておいて、 言語自体についてちょっとだけ深く見ていきましょう。 処理系選び 概観 * 関数リテラル 関数オブジェクト arguments オブジェクト isa 連想配列 コンストラクタ prototype * No prototype! スコープチェイン その他色々 * いくつかのさんぷる 処理系選び (2002/12/6) 対象とする言語仕様は 「ECMA-262 ECMAScript Language Specification 3rd Edition」 とします。 TAKI氏による 邦訳 を参考にすると読

  • 1