トップスポーツチームの監督に教わる秘訣
この論文では、氏が発見した原則を要約し、その原則をいかにしてソフトウェア開発に応用するかを説明します。
作者 Werner Schuster, 翻訳者 編集部 投稿日 2008年1月27日 午後5時47分
RubyはYACCのバージョン(Rubyパーサを作るときに使用されるRubyで書かれた最初のRubyパーサ)(source)であるRACCと呼ばれるパーサージェネレータと既に一緒に販売されている。Parsing Expression Grammars(PEGs)は書きやすくまた保持しやすい。それらはシンプルだけれどLALRかもしくはLR-1グラマーの従来のパーサジェネレータよりも作業しやすい正規表現の強力な汎化である。字句解析のフェーズが必要無く、先読みによって文脈依存性の一部を扱うことができる。Treetopはパースツリーを自動的に生成するがユーザーがメソッドを付加することによって生成されたノードをカスタマイズするのを許容する。
grammar Arithmetic付加ノードのために生成されたノードはメソッドの名が付けられた数値を持つ。違う方法としてはそれぞれのルール用に生成されるノードクラスを特定することが可能である。(注:スラッシュはチョイスオペレータである。例:付加物はプラスキャラクタによって分離された二つのオペランドであるかもしくは単に multitive ruleの結果である)。
rule additive
multitive '+' additive {
def value
multitive.value + additive.value
end
}
/
multitive
end
# other rules below ...
end
gem install treetopそれを使い始めるにはTreetopのドキュメンテーションをチェックする(source)かもしくは提供されたサンプルを見てみる。Treetopには算術的表現用のシンプルなパーサととても基礎的な言語パーサとランタイムが含まれている。
tt foo.treetopもう一つのオプションはRubyコードからパーサ生成を行うことである(source)。
Treetop.load "arithmetic"Treetopのクリエータによるライブデモは、Nathan SoboのRuby Con 2007のTreetopのプレゼン(source)を参照して欲しい。
parser = ArithmeticParser.new
parser.parse('1+1')
ITマネージャ必聴!IT活用セミナー 勝ち残りの法則~管理・統合化スペシャル~
12/5 CSQ会員限定技術情報交換会にてJCP議長が標準化について語る
【無償】「Google Apps 企業向けソリューションセミナー」のご案内
原文: powerful generalization of regular expressions
訳: 通常表現の強力な総括物
コメント:
regular expressionsは「正規表現」とするのが一般的
だと思います。また、generalizationはこの文脈では
「汎化」あるいは「一般化」などとするのが適切だと
思います。
原文:There's no need for a tokenization phase, and lookahead assertions can be used for a limited degree of context-sensitivity.
訳:トークン化段階の必要がなく、先読み想定が制限されたコンテキスト感度のために使用することができる。
コメント:
limited degree of context-sensitivityの訳が難しいところ
ですが、
字句解析のフェーズが必要無く、先読みによって文脈依存性
の一部を扱うことができる。
などとするのが良いのではないかと思いました。
水島様、
コメントありがとうございます。訳が稚拙で申し訳ございません。
早速ご意見を取り入れ修正させていただきました。
今後ともInfoQを宜しくお願いします。
この記事では、私達がどのようにして大規模(240人月、10万行強)でインドとオランダの開発者も参加したスクラム・プロジェクトを成功させたのかを示しています。
Agileカンファレンスに「参加者としてだけでなく、発表者として参加しよう」を掲げたチームgoyattomは、サブミッションを提出し、7つのセッションが日本から選択されました。参加者はカンファレンスで各々の発表や、各セッションへの参加、諸外国のエンジニアとの出会い、ステージ上で DearXPを熱演などの様々な思い出を抱えて、無事日本に戻ってきました。
マイクロソフトのRobert Bellが、SilverlightとJavaを使用したインターオペラビリティのシナリオを紹介し、サンプルコードを例にとってアーキテクチャの手引きを提供します。
Agileカンファレンスに「参加者としてだけでなく、発表者として参加しよう」を掲げたチームgoyattomは、サブミッションを提出し、7つのセッションが日本から選択されました。サブミッションが選択された人、そうでない人も含めて、個々の目的意識の確認、膨大なプログラムから聞きたいセッションの選択、旅行の準備、プレゼンテーションの準備の期間を終えて、無事当日を迎えました。
筆者はアジャイルソフトウェア開発についての年に一度の国際会議であるAgile2008に初めて参加してきました。今年の日本からの参加者の数は14名にも及び、発表者は5名、受け持ったセッションは8つに及び、例年にない活躍を見せました。なぜ今年のAgile2008では、これほど多くの日本人が参加し発表に至ったのか? そのレポートをお届けします。
エスエムジーでは、Java全般を対象にしたトラブルシューティングサービス「JaTS」を提供しています。この記事では、前回に引き続き、JaTSにて蓄積したトラブル事例とその解決ノウハウの一部をお送りしている「Javaトラブルシューティングメールマガジン」(JTSMM)の総集編として、過去2ヶ月のトラブル事例と追加情報をダイジェストとして提供いたします。
この記事では、モデル駆動アプローチがうまく機能しない、または機能しなくなることによって期待した結果が実現できなくなる 8 つの理由について書きたいと思います。
2 comments
返信