#contents

* ぜひ読むべし [#f4374a5d]
-[[境界を越える: 継続とWeb開発、そしてJavaプログラミング:http://www.ibm.com/developerworks/jp/java/library/j-cb03216/]]
-[[Programming Languages: Application and Interpretation by Shriram Krishnamurthi:http://www.cs.brown.edu/~sk/Publications/Books/ProgLangs/]]
-- Schemeを軸に、現在の関数型言語を取り巻くトピックをまとめています。遅延評価、型理論、論理プログラミング、継続サーバなど。SICPの正統後継者登場。
- [[入門OCaml:http://book.mycom.co.jp/book/978-4-8399-2311-2/978-4-8399-2311-2.shtml]]第7章"OCamlで作ってみよう 〜MySQLと連係したバグトラックシステム〜"

* Haskell [#y109f347]
** HAppS -- Haskell Application Server v 0.8.8 [#a00898c0]
- http://happs.org/
** WASH [#xadbdcf5]
- http://www.informatik.uni-freiburg.de/~thiemann/WASH/
- 下村さんが試しました。
** Kaya [#c3a1f280]
- http://kayalang.org/
- [[有名なHaskellプログラムTop10入りしました。:http://haskell-news.blogspot.com/2008/01/top-10-most-popular-haskell-programs.html]]

* OCaml [#g8c1d3ae]
** [[Ocsigen:http://www.ocsigen.org/]] [#n7983670]
- OCamlによる継続ベースWeb開発フレームワーク [#ud483357]
- 今井さんが試しています。
- [[論文 Typing web interaction with Objective Caml:http://www.pps.jussieu.fr/~balat/publications/2006mlworkshop-balat-ocsigen.pdf]]
- 特徴
-- 継続ベースWebプログラミング
-- XHTMLの静的チェック
-- セッションの自動管理
-- モジュール指向
-- HTTPサーバの実装には協調スレッドを利用。
-- カウンタはこう書けます。

 let compt = 
   let next =
     let c = ref 0 in
       (fun () -> c := !c + 1; !c)
   in
   register_new_service 
     ~url:["compt"]
     ~get_params:unit
     (fun _ () () ->  return
       (html
        (head (title (pcdata "counter")) [])
        (body [p [pcdata (string_of_int (next ()))]])))

-- See this example [[here:http://www.ocsigen.org/tuto/compt]]
- サンプル(いつか消す): http://tsukimi.agusa.i.is.nagoya-u.ac.jp:18080/eliomsample/ -- [[けいご]] &new{2007-07-12 (木) 08:34:01};
- サンプル(いつか消す): http://tsukimi.agusa.i.is.nagoya-u.ac.jp:18080/eliomsample/ -- [[けいご]] &new{2007-07-12 (木) 08:48:01};

* Scheme/Lisp [#df260efd]

** SISCweb [#rc3b2709]
- http://siscweb.sourceforge.net/
- SISCweb is a framework to facilitate writing stateful Scheme web applications in a J2EE environment. 
- J2EE上で動くScheme処理系SISCは、継続を完全にサポートしています。それを使って継続サーバを作ったようです。

** Hop [#aae7fafa]
- http://hop.inria.fr/
- Hop is a new programming language designed for the Web 2.0.
- 独自のScheme処理系Biglooと、Scheme->JavascriptコンパイラであるScheme2jsを、Web開発に活用している。

** [[Implementation and Use of the PLT Scheme Web Server:http://www.cs.brown.edu/~sk/Publications/Papers/Published/khmgpf-impl-use-plt-web-server-journal/]] [#u67237c8]
- PLT-Scheme製の継続サーバ。Schemeではこれが最先端と思われる。
- [[Experience Report: Scheme in Commercial Web Application Development:http://blog.plt-scheme.org/2007/08/experience-report-scheme-in-commercial.html]] [#ja0484e9]


** [[Kahua:http://www.kahua.org/]] [#obb1687a]
- 日本人開発のScheme処理系であるGaucheを使用。CPSスタイルの継続サーバ。

** [[Common Cold:http://www.discontinuity.info/~pkhuong/common-cold/]] [#i21fb07d]
- Common Lisp 製 継続サーバ。 クロージャや継続をシリアライズできるらしい。
- 開発者のblog http://www.pvk.ca/Blog/Latest.html

*Smalltalk [#s9170dc3]

**[[Seaside:http://www.seaside.st/]] [#n0dcc05c]
- 継続サーバの実装の最先端。デバッグ環境の充実は他の追随を許していない。
- [[Seasideの開発者のblog:http://www.avibryant.com/2006/05/ongoing-continu.html]] 継続サーバのゆくえについて語っている

*Ruby [#dfc75ee3]
** Ruby on Rails [#jdb881e2]
- がんばればだれでもできることを、がんばらなくてもできるようにしている
- テーブル名(複数形)とクラス名(単数形)を自動で対応させる(ActiveRecord)
- クラステンプレートの自動作成(scaffold)
- 標準ライブラリの大幅な拡張(ActiveSupport)
- Webサーバがついてくる。テストはこれでして、本番はApacheに移す
- FastCGIが必須なほど重いらしい

*Javascript [#l22adbfd]
** Cocoon2 [#rd486153]
- 継続付きの特別なJavascript処理系、Rhinoを使っている。FlowScriptは、継続を利用して、Web開発に構造化プログラミングの福音をもたらす。

** Rhino in Spring [#h5bde9ac]
- http://rhinoinspring.sourceforge.net/
- Rhinoの継続と、SpringのMVCの利点を併せ持つ、継続サーバです。

** Helma [#m64aa669]
- http://dev.helma.org/
- http://gobi.helma.at/Documentation/Developers/MarkupLib/
- [[ウノウラボ Unoh Labs: JavaScriptだけでWebサイトが構築できるHelma:http://labs.unoh.net/2007/10/javascriptwebhalma.html]]
- [[MOONGIFT: » サーバサイドJavaScriptフレームワーク「Helma」:オープンソースを毎日紹介:http://www.moongift.jp/2007/07/helma/]]

* 継続について [#i188a441]
- [[継続]]
- [[WebBasedアプリケーションと継続について、わかりやすい説明:http://www.shiro.dreamhost.com/scheme/wiliki/wiliki.cgi?Scheme%3aCPS]]

* 継続サーバとは [#z633f1a1]
-[[もとネタになった、Queinnec氏の論文PDF:http://www-spi.lip6.fr/~queinnec/PDF/webcont.pdf]]
- GaucheとFastCGIで作ってみました。 http://d.hatena.ne.jp/Gemma/20070707
- Javascriptで作ってみました。ブラウザのみで動くのが利点。http://d.hatena.ne.jp/Gemma/20070812
トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS