Erlang は「コンピュータにおいて汎用的な用途に使うことができる並列処理指向のプログラミング言語および実行環境である」(Wikipedia) 言語としては関数型言語で、軽量プロセスを扱うのが得意と聞いている。 ベトナム語のウェブサイト cntt.tv より Lập trình web với Erlang(Erlang によるウェブプログラミング) を翻訳する。 ==翻訳開始 Erlang によるウェブプログラミング Python, Ruby, PHP そして Java のように、よく使用される言語では、強力な ウェブフレームワークがたくさんあります。Erlang は世に出て20年になります。ネットワークプログラミングに対してはよいサポートがありますが、ウェブ方面はまだ弱いです。複雑なビューやコントローラのあるウェブをErlang で書くのは、いまのところ間違った決定でしょう。しかしな
"If the only tool you have is a hammer, you tend to see every problem as a nail" - Abraham Maslov MapReduce is a Java framework for parallel computations, designed and developed by Google. It is often referred to not only as a platform, but also more general as an algorithm (or a "programming model", as Google calls it itself). The main idea behind MapReduce is to spawn computations on a set of da
Under the category of "Concurrent Oriented Programming", Erlang has got some good attention recently due to some declared success from Facebook engineers of using Erlang in large scale applications. Tempted to figure out the underlying ingredients of Erlang, I decided to spent some time to learn the language. Multi-threading ProblemMultiple threads of execution is a common programming model in mod
晴天の価値 2月中旬に出張で千葉へ行った。5日間の滞在中はずっと快晴で、気温は20℃に迫る春のような暖かさだった。仕事は朝から晩まで現場を走り回る過酷なもので、身体的にも精神的にも追い込まれた。毎朝、京葉線から見える美しい景色を眺めて正気を保っていた。太平洋へ燦々と…
View this post on Instagram A post shared by kmuto (@mutokenshi) View this post on Instagram A post shared by kmuto (@mutokenshi) View this post on Instagram A post shared by kmuto (@mutokenshi) View this post on Instagram A post shared by kmuto (@mutokenshi) View this post on Instagram A post shared by kmuto (@mutokenshi) View this post on Instagram A post shared by kmuto (@mutokenshi) View this
概要 Erlang の軽量プロセスは非常に多くのプロセスを扱う事が出来るという特徴が あり、過去には 2000万プロセスが起動したとの情報がニュースグループに流れ 話題となりました。 しかし、ドキュメントにある情報を元に Erlang プロセスの起動数を計算して みても計算が合わなかったり、この 2000万という数字が半ば信じられなかった ので自分の目で確かめてみたいと思っていました。 そこで今回は、サン・マイクロシステムズ(株)様に 32G のメモリを搭載した Sun Fire T2000 をお貸しし頂くことが出来ましたので。このハードを使用して Erlangプロセス をどれくらい起動することが出来るのかを調べてみました。 検証環境 ハードウェア Sun Fire T2000 CPU UltraSPARC T1 メモリ32G OSSolaris 10 8/07 Erlang 実行環
Erlangのビヘイビアとは、「だいたいインターフェースのようなもの」と説明できるでしょう。例えば、Javaと比較するなら: Java Erlang インターフェース ビヘイビア 実装クラス コールバックモジュール implements Foo -behaviour(foo) そうであるなら、ErlangのビヘイビアをJavaのインターフェースで表現できそうですが、さて、どうでしょうか。 Erlangのビヘイビアとその例 Erlangのビヘイビア定義には特別な構文はなくて、予約された名前の関数を定義するだけです(「Erlang実験室:ビヘイビアを自分で定義する方法」参照)。例えば、gen_serverビヘイビアは次のようになっています。 -module(gen_server). -export([behaviour_info/1]). behaviour_info(callbacks) -
11/2に開催した、第3回KLab勉強会の資料と音声を公開します。 『DSASのここんとこ - ネットワークブート編』 〜 安井 真伸 (KLab株式会社) 発表資料 (PDF, 302 KB) 音声 (MP3, 39592 KB) 『Erlang による高可用システムの構築』 〜 濱野 司 (KLab株式会社) 発表資料 (PDF, 148 KB) 音声 (MP3, 30,202 KB) たくさんの方にお越しいただきありがとうございました。 おかげさまで、懇親会も含め盛況のうちに終わり、とても楽しい時間を過ごすことができました。 このまま、第4回、第5回と続けていければいいなあと思っています。 勉強会の内容や参加募集など、決まり次第このブログでアナウンスしますので、今後も購読していただければと思います。
Erlangにはシステムメッセージというものが定義されていて、これを使って走行中のプロセスを中断して介入することができます。とは言っても、システムメッセージは何ら特殊なものではなくて、普通のErlangメッセージに過ぎません。{system, From, Request}という形のメッセージが来たらどう行動すべきかの約束があるだけなのです。 したがって、システムメッセージの規約を守らないプロセスの中断・再開はできません。この点で、OSカーネルがサポートする割り込みとは違います。でも、規約による割り込みのメカニズムが面白いので、単純化した例で紹介します。 実例:カウンター まずは、実例のコード。 -module(counter). -export([start/1, loop/1]). start(N) when is_integer(N) -> spawn(?MODULE, loop, [
Erlangプログラムのビルドには、OSコマンドラインから普通のmakeコマンドを使うことが多いようですが、Erlangシェルから使えるmakeもあります。プログラムの構成が簡単なら、Erlangシェルからのmakeが便利なので紹介します。 一番簡単な使い方 カレントディレクトリにいくつかのErlangソース(モジュール;.erlファイル)があり、コンパイル結果(.beamファイル)を同じディレクトリに置くときは、 > make:all().で、.beamファイルを最新にしてくれます。 コンパイルは実行しないで、単に再コンパイルすべきモジュールを知りたいだけなら、 > make:all([noexec]).とすると、Out of date: モジュール名という形式で、再コンパイルすべきモジュール名が列挙されます。 標準的なディレクトリ構成 ある作業ディレクトリを$DEV_TOPとすると、次
Erlangには、EDocという、javadocとよく似たドキュメンテーション生成ツールがあります。 http://www.erlang.org/doc/man/edoc.html http://www.erlang.org/doc/pdf/edoc.pdf EDocはErlangソースファイル内のドキュメンテーションコメントからマニュアルを生成します。が、そのままでは日本語が使えないんですよね。 症状 まず、Shift JISのような(非Unicodeな)ネイティブエンコーディングで書くと、 error in XML parser: {ucs,{bad_utf8_character_code}}.のようなエラーになります。EDoc内で使っているXMLパーザー(xmerl、「Erlang実験室:ErlangのXML処理」を参照)が文句を言っているようです。 しょうがないので、入力ファイル(
「続・Erlangの型記法(間違い訂正)」にて: Erlangの型記法(type notation)は、言語仕様の外にある規約に過ぎません。しかし、型変数や型構成子が自由に使えるとなると、形式的に割ときれいな型システムを作れそうです。 実際にやってみます。Erlangの型システムを定式化してみます。ここで、型システムとは、型の表現(type expression)に関する構文論と意味論のことだと考えます。次の2つを目標とします。 現状使われている非形式的な型表記(type notation)構文をできるだけ尊重する。 形式的にある程度満足できる定式化を提供する。 内容: 型表現の構文 いろいろな型関数 型演算子 型変数と型環境 新しい型関数の定義 局所的な型束縛 開いた型表現の解釈 圏論的な意味論 まとめ(になってない) ●型表現の構文 型表現(type expression)は、型定数、
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く