論文

Inverting back the inversion of control or, Continuations versus page-centric programming, Christian Queinnec, (2)

いまさらですが、前回の続き。本題の、継続を使ってどのようにクライアントの状態を楽に保存するか、という話です。 本論文に書いてある簡単な例を見てみましょう。二つの値を入力させて、それらの和を求めるようなwebアプリケーションです。 (define n1 0) …

Inverting back the inversion of control or, Continuations versus page-centric programming, Christian Queinnec, (1)

継続(continuation)を用いてwebプログラミングをすると、これまでの開発手法よりも従来のアプリケーション開発に近いスタイルで行うことができるようになるよ、というお話。 そもそも、なんでwebアプリケーションの開発が面倒になるかというと、以下の様な理…

The History of Haskell, Simon Peyton Jones, Paul Hudak, John Hughes, and Philip Wadler

最近久しくHaskellを触っていないわけですが、こんな論文(?)見つけました。まだまったく読んでないです。 どうやらHistory of Programming Languages Conference*1という集まりがあるらしく、本稿はその2007年に投稿したものみたいです。まだドラフトなので…

The Design and Implementation of Zap: A System for Migrating Computing Environments(2)

昨日の続き。 昨日のエントリの最後で挙げたような点を解決したプロセスマイグレーションのシステムをこの論文では提案している。 そういったプロセスマイグレーションのシステムを作る上で、以下のようなことを考えないといけない。 プロセス情報の一貫性 …

The Design and Implementation of Zap: A System for Migrating Computing Environments, Steven Osman, Dinesh Subhraveti, Gong Su, and Jason Nieh, OSDI 2002

プロセスマイグレーション(あるコンピュータ内のプロセスを、別のコンピュータに移す事)の研究。 プロセスマイグレーションが実現すれば、分散環境で以下のようなメリットを得る事ができると述べている。 ダウンしたホストからプロセスを移す事でサービス…

Using Time Travel to Diagnose Computer Problems, Andrew Whitaker, Richard S. Cox, and Steven D. Gribble

コンピュータの設定を変えて、システムの挙動がおかしくなる事はよくある。それを、システムの設定の変更(というか、ディスクの内容の変更)を保存しておく事で、きちんと動作していた状態に戻しましょう、という話。 これを聞いただけだと、Windowsのチェ…

"Devirtualizable Virtual Machines Enabling General, Single-Node, Online Maintenance", David E. Lowell, Yasushi Saito, and Eileen J. Samberg, ASPLOS '04

システムをアップグレードする際に、仮想マシン上に二つのOSインスタンスを設けて、片方のインスタンスでアップグレードを行い、それが完了したら元のOSからデータを移行することで、アップグレード中の代替用リソースを用意しなくとも動的にアップグレード…

Barbara Liskov

ふと、昨日の記事に書いた論文読んでて思ったんだけど、この論文の著者の一人になってるBarbara Liskovさんって、もしや「リスコフの置換原則(Liskov Substitution Principle)」のリスコフさんか??と思って調べてみたらやっぱりそうみたい。 ソフトウェア…

Sameer Ajmani, Barbara Liskov, Liuba Shrira, "Modular Software Upgrades for Distributed Systems", In European Conference on Object-Oriented Programming (ECOOP), July 2006.(1)

この論文は、分散システムを以下に動的にアップグレードするかと言う話。実際にシステムも作ったらしい。ファーストオーサーがGoogleの人だから、実際にGoogleで使われていたりするのかな。 以下、まとめ。 Introduction 分散システムを動的にアップグレード…

Michael Hicks, Scott Nettles, "Dynamic Software Updating", ACM TOPLS 2003(2)

これの続き。 動的パッチを実装する 動的パッチを実装する際に、基本的には二つの方法がある。 古いコードを動かしているコンピュータとは別のコンピュータを用意し、新しいコードをコンパイルして、そちらで稼動させる。そして、古い方にシグナルを送り、状…

Michael Hicks, Scott Nettles, "Dynamic Software Updating", ACM TOPLS 2003(1)

いかにしてシステムをとめることなくアップデートするかと言う研究。 そういったシステムでは、以下の四つの評価基準が満たされてる必要がある。 柔軟さ システムのどの部分もアップデートできるようにしたい 堅牢性(ロバストネス) アップデートによってクラ…

"Types and Programming Languages: The Next Generation", Benjamin Pierce

輪講でTAPLを読んでいる関係で、型が結構熱い。 と言うことで、Benjamin Pierceさんの型に関するサーベイの発表スライド、"Types and Programming Languages: The Next Generation"を読んでみた。 自分みたいに型をちょこっとかじった程度でも、様々な型の目…

助っ人:構成的な並列スケルトンによる並列プログラミングライブラリ

を読んだ。 以前、Google Labのペーパーを色々漁っていた時期があって、その中のMapReduceに関する論文とか、そのMapReduceを実装したSawzallの論文を読んでいて、このMapReduceの手法ってデータベースだけではなくて、並列計算にも使えるじゃんと思っていた…

The Design of Browsing and Berrypicking Techniques For The Online Search Interface

を授業の課題に関連していたので読んだ。 結構古い情報検索に関する論文なのだけど、Berrypickingという検索技術のモデルを提案していて検索技術の未来をもしかしたら示しているのかも知れない。結構面白いし、あくまでモデルの提案なので専門的な話はほとん…

"例外処理機構を備えた命令型言語のCPS変換とその定式化",住井英二郎、大根田裕一、米澤明憲

を読んだ。 非常にシンプルでわかりやすく、いいアイデアだと思った。ただ、性能評価がないのでどれだけメリットがあるか判断できないのが難点。

Sanjay Ghemawat, Howard Gobioff, Shun-Tak Leung "The Google file system", SOSP '03

を読んだ。読んでいて、特に物凄い技術使ってるなと思った点はなかった。 しかし、このファイルシステムが使われる際の前提がはっきりと定義されているので、かなり効率のよいシステムが出来上がっているように思える。こういった割りきりがきちんとできてい…

Rowan Davies, "A Temporal Logic Approach To Binding-Time Analysis"

をざっと読んだ。 時相論理(temporal logic)にnextという演算子を追加して、カリーハワード同型対応によって時相λ計算(temporal lambda calculus)というものが得られる。このtemporal lambda calculusは部分計算(partial evaluation)の解析に向いているとい…

"Optimistic Replication", Saito Yasushi, Marc Shapiro

を読んだ。 分散アプリケーションで扱うデータのレプリカの管理について厳密な一貫性を求めないようなシステムをまとめている。これはサーベイ論文なのだけどかなり良くまとまっており良い。様々なシステム(DNSとかCVSとか)の特徴が系統立てて図に分類されて…

気になった論文

webで色々見ていて気になった論文をリストアップしてみる。 Martin Abadi, Bluno Branchet, "Secrecy Types for Assymetric Communication" Dennis Volpano, Geoffrey Smith, et al., "A Sound Type System For Secure Flow Analysis" Steve Zdancewic, Andr…

"On the Pi-Calculus and Linear Logic", Bellin, Scott

面白そうかも。読んでみようかな。

"Xen and the Art of Virtualization", Paul Barham, Boris Dragovic, Keir Fraser, Steven Hand, Tim Harris, Alex Ho, Rolf Neugebauer, Ian Pratt, Andrew Warfield

今日はこれまた課題の関係でXenの論文を読んだ。MMU周りの話しか詳しくは読んでいないのだが、結構興味深かった。これでOSのソースコードの修正が自動的に出来ればかなり素晴らしいシステムだと思うんだけど。 まだ実際には使ったことはないけれど人の話を聞…

Chord: A Scalable Peer-to-Peer Lookup Service for Internet Applications

引き続きP2P。Chordの論文を読んでいて途中に書いてある擬似コードでどうもおかしい部分が一箇所あるような気がするのだが。もうちょっと良く考えてみてから書くことにします。

"LOOKING UP DATA in P2P Systems",Hari Balakrishnan, M. Frans Kaashoek, David Karger, Robert Morris, and Ion Stoica

授業の課題にも関係していることもあり、P2Pのことについて調べている。その流れでこの論文を読んでみた。 いくつかの代表的なP2Pシステムのlookupアルゴリズムを比較している。著者らはChordというシステムを開発しているのだが、この論文自体はサーベイ論…

A Language-Based Approach to Security

久しぶりにLanguage-Based Information-Flow Securityを読み直そうと探してたら上の論文もみつけた。読んでみよう。

SLam Calculus

酒井君のところにSLam Calculusのことが書いてあったけど、SLam Calculusは簡単に言えば型付きラムダ計算に、データの機密性のようなものを型として与える計算体系みたいなものかな。確か。 型チェックを通れば機密性の高いデータがそれよりも低いデータから…

Concepts and experiments in computational reflection 学校でダウンロードしよう。

Proof-Carrying Code, George C. Necula, Peter Lee

を読んだ。内容としては、プログラムの配布者はプログラムを配布する時にそのプログラムの正当性を示した証明を付加し、プログラムを実行する側はその証明を検証することでそのプログラムの安全性を確かめた上で実行できるようになるという話。 やっているこ…

Haskellソース読み

酒井君のアドバイスから、Lazy Depth-First Search and Linear Graph Algorithms in Haskellを読んでみる。 色々なところでつまづいてしまい、まだ読み終わっていないのだがHaskellプログラムの組み方などで参考になる部分が多い。 さらに、本論文で登場する…

実世界指向プログラミング

ふと見かけたので読んでみた。 Phicon(Physical Icon)を紙に印刷して使う「折り紙Phicon」作ったら整理するのが大変そう。。パソコンのデスクトップもぐちゃぐちゃになるくらいだからなぁ。