タグ

ProgrammingとMathに関するnozomのブックマーク (21)

  • 静的単一代入 - Wikipedia

    静的単一代入(せいてきたんいつだいにゅう、英: Static Single Assignment form, SSA)形式は、コンパイラ設計における 中間表現 (IR) のひとつで、各変数が一度のみ代入されるよう定義されたものである。もともとの中間表現における変数は「バージョン」に分割され、全ての変数の定義がバージョンを表現できるよう、通例新たな変数は元の名前に添え字を付けて表現される。SSA ではuse-def 連鎖が明示的であり、連鎖は要素を一つだけ持つ。 SSA はRon Cytron、Jeanne Ferrante、Barry Rosen、Mark Wegman、Ken Zadeck および IBM の研究者たちにより1980年代に開発された。 Scheme、ML、Haskell などの関数型言語のコンパイラでは、Fortran や C などのコンパイラで SSA の利用が期待され

    静的単一代入 - Wikipedia
  • บาคาร่าออนไลน์ ฝากถอนไม่มีขั้นต่ำ เว็บบาคาร่า ใหม่ล่าสุด 2025

    เว็บตรง บาคาร่าออนไลน์ ค่ายใหญ่ที่สุด บาคาร่า99 เรียนเชิญมาทางนี้ได้เลย บาคาร่าออนไลน์ เกมทุกชนิดเป็นไปเพื่อความบันเทิง เดิมพันได้เสียเป็นไปเพื่อความสนุกสนาน ดังนั้นจึงไม่ควรเล่นแบบเอาเป็นเอาตายเพื่อให้ได้เงินรางวัลให้สาสมกับการลงทุน หากคุณยังคิดว่ายิ่งลงทุนมากโอกาสยิ่งได้มาก ยิ่งเสียยิ่งต้องเอาคืน นั่นเป็นความคิดที่ผิด บาคาร่าออนไลน์ และนำคุณไปสู่การเป็นหนี้สินเพื่อนำเงินเหล่านั้นมาลงทุนเรื่อยๆ อ

  • 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

  • 檜山正幸のキマイラ飼育記 - 圏論やモナドが、どうして文書処理やXMLと関係するのですか?

    …という類<たぐい>の質問に答えるのはちょっと面倒なんですけど、とりあえず1つだけ具体例を挙げておきましょう。テンプレート処理が、もろにモナドになっている、ってハナシ。今回はテキスト処理について説明。次回(いつになるかまったく不明)はXML処理の予定。 テキスト処理だけでも長ーい説明(最長記録かも)なのだけど、分割すると“勢い”がなくなるから一挙掲載。読むときはユックリ・ジックリ読んでくださいね。プログラミング課題も、実際にコーディングしないまでも、「こうやればいいな」という方針くらいは考えてください。 ※印刷のときはサイドバーが消えます。 内容: ネストしたテキスト テンプレート処理 ブロック、文字列、名前 フラット・テキストとテンプレート・テキスト 多段階のテンプレート処理 蛇足 素材を整理しよう モナドに向かって突っ走れ!! バッチリ、モナドだぜぇ 残りは脱兎のごとく 最後に言ってお

    檜山正幸のキマイラ飼育記 - 圏論やモナドが、どうして文書処理やXMLと関係するのですか?
    nozom
    nozom 2007/01/25
    なんとなく分かった気にしてくれる
  • HoareRules CallableLibrary - 檜山正幸のキマイラ飼育記 (はてなBlog)

    コーラブルはすべてユーザー(利用者)定義となるわけだが、このコーラブル群とHoareRules実行フレームワークは切り離そう。適当なインターフェースを仕切りにして、コーラブルの詳細は隠蔽する。 public interface CallableLibrary { // 実行フレームワークから呼ぶ必要があるメソッド群 } 絶対に必要なのは: // 名前をキーとしてコーラブルを取得、なければnullが返る。 // 僕はgetXxx()よりxxx()が好き public Callable callable(String name); public Function function(String name); // 述語も関数に含まれることに注意 public Predicate predicate(String name); public Command command(String name

    HoareRules CallableLibrary - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • HoareRulesの実行フレームワーク - 檜山正幸のキマイラ飼育記 (はてなBlog)

    構文だけを示しても実感がないでしょうから、どのように実行されるかを記述します。実装言語はJavaということにします。 ●コーラブルの実装方式 コーラブル(述語、関数、コマンド)に組み込みのものは存在しません。すべてユーザー定義です。次のようなインターフェースの実装クラスとしてコーラブルを定義します。 public interface Callable { public Object call(Object[] args) throws Exception; } public interface Function extends Callable { } public interface Predicate extends Function { Boolean call(Object[] args) throws Exception; } public interface Command e

    HoareRulesの実行フレームワーク - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • HoareRulesの関数構文、その意味的区別 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    構文的には関数呼び出しであっても、用途/役割、あるいは型(タイプ)により、次の3種に分類されます。 述語 -- 戻り値はboolean、副作用なし。 (狭義の)関数 -- 戻り値の型は任意、値を必ず戻す。副作用なし。 コマンド -- 戻り値の型は任意、値がなくてもよい(void戻り値)。副作用があってもよい。 使い方と制限は: 条件式のトップレベルに出現できるのは述語だけ。 条件式の述語引数内に出現できるのは(狭義の)関数だけ。ただし、述語も関数の一種とみなす。 アクション(複文の)のトップレベルに出現できるのはコマンドだけ。 アクションのコマンド引数内には何でも出現できるが、値を返さないコマンドはまずい。 以後、混乱を避けるために、関数呼び出し構文に対応する実体をコーラブルと呼び、狭義の(副作用なし、値を戻す)関数を単に関数と呼びましょう。原理的には、関数をコマンドとして使っても何の問題

    HoareRulesの関数構文、その意味的区別 - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • δ符号によるデータ領域の節約:CodeZine

    はじめに α(アルファ)符号・γ(ガンマ)符号・δ(デルタ)符号は、自然数を表現するための不定長ビット列です。筆者は、δ符号については、雑誌『Interface』の2002年10月号で知りました。以下、δ符号について詳細を解説します。 対象読者 データ圧縮、特に独自方式での高密度データ格納に興味がある方を対象としています。この記事を読むためには、C++の基的な文法および演算子についての知識が必要です。クラスやテンプレート、STLなどは使用していません。 必要な環境 稿の対象環境は、Microsoft Visual C++ 6.0以降のMicrosoft社製C++コンパイラです。一部にインラインアセンブラ、およびPentium命令を使用しています。他のC++環境への移植はさほど困難ではありません。しかし、C環境に移植する場合は、関数の多重定義に留意してください。 δ符号について 通常、デ

  • はじめての圏論 その第5歩:変換キューの圏 - 檜山正幸のキマイラ飼育記

    しりとりの圏HShiriは単なる“お遊び”だし、行列の圏Matは所詮(高校の)“数学”だし、やっぱり現実離れしているじゃん -- と思ってます? そうでもないのよね。多くの物理現象/計算現象、電気回路のような工学的な対象までも圏で定式化できるんですよ。例えば、量子テレポーテーション/エンタングルメントの、コンパクト閉圏を使った計算(「幼稚園児のための量子力学とその周辺」参照)はその良い例でしょう(つっても、僕は物理がサッパリわからんのだけどさ)。 それでまー、第三の例として今回はソフトウェア的なネタを出そう、と。なにがいいかなー? 僕が大好きなパイプ&フィルター(「パイプ&フィルターの思い出」参照)の圏論的な定式化(の単純化した一例)にします。FIFO(First In/First Out)バッファを内蔵したフィルター達からなる圏を紹介します。 内容: 変換キュー(バッファ付きフィルター)

    はじめての圏論 その第5歩:変換キューの圏 - 檜山正幸のキマイラ飼育記
  • はじめての圏論 その第1歩:しりとりの圏 - 檜山正幸のキマイラ飼育記

    全体目次: 第1歩:しりとりの圏 (このエントリー) 第2歩:行列の圏 第3歩:極端な圏達 第4歩:部分圏 第5歩:変換キューの圏 第6歩:有限変換キューと半圏 第7歩:アミダの圏 第8歩:順序集合の埋め込み表現 第9歩:基に戻って、圏論感覚を養うハナシとか 付録/番外など: 中間付録A:絵を描いてみた 番外:同期/非同期の結合 中間付録B:アミダとブレイド 番外:米田の補題に向けてのオシャベリ 一部のプログラミング言語の背景として、圏論(カテゴリー論)が使われたりするせいか、以前に比べれば多少は圏論に興味を持つ人が増えたような気がしなくもないような。でも、安直な入門的文書はあまり見かけないですね。もちろん、シッカリした教科書や論説はあるんですが、どうもシッカリし過ぎているような。例えば、圏の例として「コンパクト・ハウスドルフ空間と連続写像の圏」とか言われてもねぇ(この例はいい例なんです

    はじめての圏論 その第1歩:しりとりの圏 - 檜山正幸のキマイラ飼育記
    nozom
    nozom 2006/08/21
    しりとりで圏論入門
  • 万能数値表現法 URR

    ━─────────────────────────────────── アセンブラ講座(番外編) 《万能数値表現法 URR》 鎌田 誠 ──────────────────────────────────── IEEE 754 で規格化されている浮動小数点数の表現方法は符号と指数部と仮数 部に整然と分けられていてわかりやすく、実装も容易なのですが、指数部と仮数 部を区切る位置を固定してしまったために、大きな数を扱いたい技術者には指数 部の範囲が狭すぎ、精度を要求する技術者には仮数部のビット数が少なすぎると いう問題点があります。 しかし、かつて日人によって IEEE 754 よりも算術的に優れている浮動小数 点数の表現方法が考案されていたことを知る人はほとんどいないでしょう。その 数値表現法は考案された当時の技術では実装が困難だったために規格化されなか ったようですが、非常に興味深い数

    nozom
    nozom 2006/07/31
    算術圧縮っぽい
  • データ型のクレイジー計算 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    sumiiさん曰く: 「積型(組)と和型(バリアント)はあるから、多項式にテイラー展開すれば√τみたいな型も考えられる」という話を思い出しました。どこで聞いたのか思い出せないのですが… R. F. C. Waltersの"Categories and Computer Science (Cambridge Computer Science Texts)"ってのChaper 4 "Data Types"に、crazy calculation と称して無限級数の計算が載っています(sumiiさんのソースとは違う気がするが)。けっこう笑えるので紹介しましょう。 項目がAである列 まず、「I + A + AA + AAA + ... って面白いよ」と同じ例。項目の型(値の集合だと思ってください)がAである列(sequence)をSとすると、方程式は: S = I + A×S (Iは空列だけからな

    データ型のクレイジー計算 - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • I + A + AA + AAA + ... って面白いよ - 檜山正幸のキマイラ飼育記 (はてなBlog)

    「プログラムの算術的計算法 (続き&完結)」に、Aがプログラムの文(複文や複雑な表現も含める)だとして、I + A + A2 + A3 + ... という無限級数形式が、非決定性の繰り返し、つまり「Aを何回か繰り返すこと、ただし何回かは不明/未定」を表すといいました。 実は、I + A + A2 + A3 + ... って無限級数形式は他でも登場するもので、これ、なかなかに面白いよ。ざっと説明しましょう。 プログラムと正規表現 既に指摘したように、プログラムの計算と正規表現(正規言語)の計算はよく似てます。 演算の概念 プログラム 正規表現 掛け算 順次実行 連接 足し算 非決定性の選択 合併(ユニオン) 単位 何もしない文 空列のみの単元言語 零 ハングする文 空集合 I + A + A2 + A3 + ... は、どちらの場合も、「任意回の繰り返し」(実行 or 連接)ですね。 関係の

    I + A + AA + AAA + ... って面白いよ - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • プログラムの算術的計算法(続き&完結) - 檜山正幸のキマイラ飼育記 (はてなBlog)

    昨日の続き。 ※印刷の時はサイドバー消えます。 内容: 特別なプログラム文 簡潔な記法と計算法則 計算例 手順から直感へ、そしてふたたび手順へ 非決定性の繰り返し whileの実現 計算法と図解法 前編 特別なプログラム文 A, Bなどの大文字は、プログラムの文(複文や複雑な表現も含める)を表すと約束したのですが、これらは何か特定の文ではなくて文一般を表します。それに対して、以下のIとOは特定の文を表す固有名詞として使います。 I (skip)-- 空文、何もしない O (hang) -- 先に進めないで制御不能/無反応になる Iはおなじみの空文です。Oのほうは、制御がつまってしまって(ささって)進めず終われずの状態になる文です。無限ループに陥る文だと思ってもいいです。記号「I」「O」は、「1」「0」に似せて選んでいるのですが、実際、Aが何であっても次の法則が成立します。 A;I = I;

    プログラムの算術的計算法(続き&完結) - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • プログラムの算術的計算法 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    あー、やっぱりな -- 連休で調子がくるって、まだ何かおかしいよ。 で、少し頭のトレーニングになる話でもしましょうか。 pが論理式で、Aが文とか文の並びだとして、if (p) {A;} else {A;}って書く人はあまりいませんよね、これは単にA;と書いても“同じ”だから。次の3つの表現も事実上“同じ”なのはわかるでしょう。 // その1 if (p) { ; } else { if (q) { A; } } // その2 if (!p) { if (q) { A; } } // その3 if (!p && q) {A;} 次の「その2」はなんだか無意味みたいですが、「その1」と“同じ”です。 // その1 while (p) {A;} // その2 if (p) { A; while (p) {A;} } さて、一般に2つのプログラムコードが“同じ”であることを判定するのは難しいことで

    プログラムの算術的計算法 - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • d.y.d. 文字コード&ベイズ推定

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

    nozom
    nozom 2006/05/02
    tarai関数の停止性について
  • OBB vs AABB - Radium Software Development

    This domain may be for sale!

    nozom
    nozom 2006/03/24
  • C/C++のvoidってのは何だろね - 檜山正幸のキマイラ飼育記 (はてなBlog)

    プログラミング言語の重箱の隅をつつくシリーズ(って、そんなシリーズねーよ)。 ※ひとつ前が、あんまり僕らしくもない(と僕自身が感じる)エントリーだったのでコレ追加しよう、っと。 少し前に、無値(値がないということ)を話題にしました。その後、C/C++のvoidってのは、単に無値を意味するだけではないことに気付いたので書いておきます。 まず、voidの解釈として、値の集合が空集合と、値の集合が単元集合(singleton set)がありますが、空集合はちょっと変で単元集合が良かろうって言いました。それで、voidは単元集合(ただし、そのメンバーが何であるかは重要ではない)だと理解します。 さて、void *p;って書いてあるとき、pが指す先に“voidの値”があるってわけではありません。なにか未知のモノがあるという意味です。気分としては、Any *p;です。pが指す先に置いてあるデータの可能

    C/C++のvoidってのは何だろね - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • プログラマのための「ゲーデルの不完全性定理」(4):「展望」への緊急パッチ(オハナシだよ) - 檜山正幸のキマイラ飼育記 (はてなBlog)

    yoriyukiさんとの一連のやりとりで、「プログラマのための『ゲーデルの不完全性定理』」シリーズ第2回「速攻速習編」の「ゲーデルの不完全性定理への(ほんの少し)展望」に問題があると判明しました。その問題とは主に次の2点です。 あまりにも説明をはしょっている。そのため、誤解・誤読のリスクが高い。 「ゲーデル」という、歴史上実在の人物を表す固有名詞の使い方が間違っている。 1番目に関しては、ていねいな説明を書く以外の対策がなく、手短な展望としてはいかんともしがたいです。ただし、ある程度の予備知識を仮定してよいなら、次が補足説明になっています。 プログラマのための「ゲーデルの不完全性定理」番外:「デタラメだ」と言われたので… - 檜山正幸のキマイラ飼育記 Yoriyukiさんへの返答:内容的なコメント編 - 檜山正幸のキマイラ飼育記 メモ編 不完全性定理シリーズの背景とシナリオ - 檜山正幸の

    プログラマのための「ゲーデルの不完全性定理」(4):「展望」への緊急パッチ(オハナシだよ) - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 今風の型理論入門(本編) - 檜山正幸のキマイラ飼育記 (はてなBlog)

    前ふりは「型→代数→…それから:型理論入門(の前半)」にあります。これは編(後半)。1回読み切り(長いけど)で、比較的新しい*1型理論を紹介します。「入門(門に入る)」というよりは門の外から中を覗いてみる程度。 説明用コードはJavaの構文を使います。ただし、パッケージ宣言は書かないし、publicはなるべく省略。 内容: インターフェースなんて、所詮こんなもの 心理的効果とか、人間-人間コミュニケーションとかは、別問題 わけわからんインターフェースに制約を付加する もっと制約を足してみる 謎のインターフェースに意図されたもの で、それが型理論にどうつながるの? インターフェースなんて、所詮こんなもの まず、次のインターフェースを見てください。 interface AB { int a(); void b(); } これスゴイでしょ。何がスゴイって、これを見てもなんのことやらサッパリわか

    今風の型理論入門(本編) - 檜山正幸のキマイラ飼育記 (はてなBlog)