Erlang

Lightweight Language Future

いってきました。 Lightweight Language Future http://ll.jus.or.jp/2008/program 午前中は - Larry Wall の基調講演と、今回のテーマ「未来」に関するパネルディスカッション。 - LarryさんはPerl6でBNFっぽい記法をそのままかけるようになる的な話。 - パ…

単一代入制約とメッセージ通信の効率

Eralngは一度、束縛(値の代入)をした変数の値を書き換えることが出来ないようになっている。 これが軽量プロセスの効率化に寄与していることは、想像していた(Rubyの高橋さんもそうでしょうといってた)。 つっこんで考えてなかったんですけど、Erlang-MLで …

Erlang book 購入。

Erlang book 購入。 うぉー。読むぞー。Erlangの時代がくるぞー。 ・・・っていうかちょっと読む余裕がない。 Programming Erlang: Software for a Concurrent Worldposted with amazlet on 07.08.21Joe Armstrong Pragmatic Bookshelf (2007/07)売り上げラ…

gen_serverでErlangをサーバにする

Erlangでとても深い話で毎回参考になる檜山さんのブログで クライアント・サーバー型分散アプリケーションの話がありました。 檜山正幸のキマイラ飼育記 - Erlang分散アプリケーションのお作法 また、バックエンドはIDLコンパイラ本体とは切り離されているの…

ejabberd

Erlangで記述されたもっとも有名なアプリ ejabberd。 Windows版インストーラをとってきて http://ejabberd.jabber.ru/download いれてみたが、ずいぶん簡単にサーバがあがるものである。まあ、あたりまえか。 webインタフェースがあるので、アカウントなどは…

Eralng Course もくじ

公式サイトにある Erlang Courseを適当に訳したものです。 [メモ] Eralng Course * Module 1 - History * Module 2 - Sequential Programming (前編) * Module 2 - Sequential Programming (中編) * Module 2 - Sequential Programming (後編) * Module 3 - …

Apache vs. yaws の人

このひとのworkらしい。 Erlangの本もこのひとか。 Joe Armstrongさん、現在はSICS(Swedish Institute of Computer Science)の人っぽい Joe Armstrong SICS home page 日本のPrologの会議INAPS'96で96年に発表しているようだ。

Comet勉強会 第2回

第2回Comet勉強会 http://rails.office.drecom.jp/takiuchi/daily/200706/18 に行ってきました。 ドリコム瀧内さん、また参加者の方々、お疲れさまでした。 濃密な時間をいただきました。ありがとうございました。 メモです。無編集。 * Erlangの2000万プロ…

Eralng Course: Module 3 - Concurrent Programming 後編

もくじ 登録されたプロセス (Registered Processes) register(Alias, Pid) プロセスID: Pid のプロセスを別名(Alias)に登録 start() -> Pid = spawn(num_anal, server, []) register(analyser, Pid). analyse(Seq) -> analyser ! {self(),{analyse,Seq}}, re…

Eralng Course: Module 3 - Concurrent Programming 中編

もくじ 選択的メッセージ受信 (Selective Message Reception) 以下のとき、メッセージの発信順序とは関係なく、 foo, bar の順に受信処理される。 recieve foo -> true end, recieve bar -> true end どのメッセージも選択 (Selection of any message) 以下…

Eralng Course: Module 3 - Concurrent Programming 前編

もくじ 定義(Definitions) * プロセス Process - 並列動作。完全な仮想マシン。 システムはたくさんの並列プロセスを 同時に実行することがある。 * メッセージ Message - プロセス間通信手段 * タイムアウト Timeout - あたえられた時間の間、待機するしく…

Eralng Course: Module 2 - Sequential Programming (後編)

もくじ リスト操作 ( Traversing Lists ) よくあるパターン (このへんはProlog) Xを合計するsum関数の結果を、 Xの数を出すlen関数の結果で割った ものが avarage ですよ。 average(X) -> sum(X) / len(X). sumはリストの一番前と、その 残り要素のsumを足し…

Eralng Course: Module 2 - Sequential Programming (中編)

もくじ 関数呼出(Function Calls) 関数名はアトムのルールに沿っている必要がある コロン区切りでモジュール名を前置。 引数にはErlangのあらゆるデータ構造が入る。 module:func(Arg1, Arg2, ... Argn) func(Arg1, Arg2, .. Argn) 引数の数が異なる関数は別…

Eralng Course: Module 2 - Sequential Programming (前編)

もくじ 数値(Numbers) 普通に数値を書く 2#1010, 16#1AD3: 数字+シャープで2進16進。 $A: $マークは Char->Ascii 123.45: 小数点をうつと float 123E-10: 有効数字のパターンでもかけるよ アトム(Atoms) 普通に文字を書く aaaa : "aaaa"という文字 'I am' : …

Eralng Cource: Module 1 - History

もくじ * 基礎部分に、並列性とエラー回復能力 を持っていなければならない * 実行モデルにはバックトラッキングは必須ではない (Lisp/Prolog にない特性) * 並列性の粒度 - 1非同期通信=1言語内プロセス (Parlog にない特性) * そこで、Lisp/Prolog/Parlog …

Erlangをみて思ったこと

1. Prologに似てるなあ。 2. 大学のとき、SICStus Prolog という処理系を使っていたのをおもいだすなぁ。PrologとTcl/Tkでソケット通信しながらゴニャゴニャしたなぁ。どっちもソケットは簡単に書けたなぁ。 3. SICStus Prologはスウェーデンの研究所が作っ…

Javaの中のひとのErlang評

「Javaに並列処理と関数型言語の要素を」、ティム・ブレイ氏 − @IT 「Hadoopは外部ライブラリですが、Java言語自体で並列処理をサポートすることも必要」(ブレイ氏)といい、そのモデルとして2年ほど前から“Erlang”(アーラン)に注目しているという(参考…

erlang も ejabberd も yaws も apt-getできる

ということにまず感動。 話題の道具は、すでに使える状態でそこにあった。