タグ

DSLに関するscrewboundのブックマーク (55)

  • steps to phantasien(2009-01-30) - Martin Fawler は(多分)やっていないこと

    ThoughtWorks アンソロジー を読んでいたら Ruby を使った DSL の話が載っており, 仕事でうっかり Ruby DSL を作ってしまった私は興味深く読んだ. 特段目新しい話じゃないものの, (DSL と言えば聞こえはいいけれど要は設定ファイルですからね.) オレオレ DSL を作る際には "Martin Fowler もやっている" と言えば 説得力もあるってもんだろう. 説得力はさておき, Martin Fowler は私の DSL が抱える問題に答えてくれなかった. 最近の私は Ruby DSL の文書化に困っている. その DSL/設定ファイル はもともと余興にちまちま作っていたもので, 思ったより出来がよくなったため実プロジェクトで使いはじめたところだった. ちゃんと使ってみると案の定ぼろぼろと問題がでて, 後始末のために残業が続いている. まあドッグフードの自業

  • L'eclat des jours(2009-02-02)

    _ Cはおもしろい なんか、Cっておもしろいなぁとつくづく思うできごとがあったのだが、なぜかというとプリプロセッサマクロがあるからだ。 つまり、マクロはおもしろい、ということなのだろう。 で、ふと気付くが、外部DSLって、つまりはマクロだな。 CSSも、マクロと言えなくないな。 ということは、XSLTもマクロだな。 と、考えると、別にマクロはおもしろいわけではない。ということは、Cがおもしろいのだろう。 _ ASR for 1.9.1 やっと簡単なやつが動いた。 何が問題だったか? 組み込みRubyではruby_script(const char*)を呼び出して$0を設定できる。別に設定しなくとも良いはず。 で、GRScriptは$0が存在するので当然設定したのだが、RScriptは何もしていなかった。 そこで例外が起きる。 このとき、vmがスタックトレースを取ろうと動き出す。ここがインラ

  • Parsing domain-specific languages with JavaCC

    Overview I recently needed to parse and evaluate a domain-specific language using Java. I've been coding long enough to know it was as waste of time for me to write my own parser. A quick Google search turned up the venerable JavaCC, a Java code generator that does all the hard-work of building your text parsing classes without the errors you're bound to introduce when coding from scratch. All yo

  • SimpleModeler 0.1.1リリース - 浅海智晴プログラマ日記

    Scala DSLを用いたモデルコンパイラSimpleModeler 0.1.1をリリースしました。(SimpleModeler 0.1の日記) 0.1.1では、以下の機能をサポートしています。 javaオプション:Javaソースコード生成 (0.1から) htmlオプション:Web仕様書生成 0.1.1で、UMLクラス図の自動生成を追加。(画像参照) grailsオプション:Grails POGO(Plain Old Grails Object)生成 0.1.1新機能 まだ、マニュアルなどのドキュメントがないので、使い方などはこの日記に書いていく予定です。 ダウンロードは以下の場所から。 http://code.google.com/p/simplemodeler/downloads/list 日々の開発の様子は以下の日記にて。 http://simplemodeler.blogspot

    SimpleModeler 0.1.1リリース - 浅海智晴プログラマ日記
  • RulesEngine

    Should I use a Rules Engine? A rules engine is all about providing an alternative computational model. Instead of the usual imperative model, which consists of commands in sequence with conditionals and loops, a rules engine is based on a Production Rule System. This is a set of production rules, each of which has a condition and an action - simplistically you can think of it as a bunch of if-then

    RulesEngine
  • Turtle Graphics on Ruby/SDL ver.2.0 - ツムジのひとりごと

    約一年半前にリリースした「Turtle Graphics on Ruby/SDL」をバージョンアップしました。 前回リリースした後も、自分で使いやすいように手を加えていった結果、メソッドの挙動やメソッド名がかなり変わってしまいました。以前のバージョンとは互換性はありません(以前のバージョンを使い込んでいた人がいたらごめんなさい)。 今回の変更で見てもらいたいのは、Screen#main_loop メソッドと Graph クラスです。 Screen#main_loop 実行中にマウスで拡大させたい領域を選択できるようになりました。 loop や while などのループ内に Screen#main_loop を含む処理を書いておくと、画面の一部をどんどん拡大して表示していくことができます。 (sample/Turtle_Graphics/koch_curve.rb 参照) Graph クラス

    Turtle Graphics on Ruby/SDL ver.2.0 - ツムジのひとりごと
  • Route 477(2008-11-14)

    ■ [ruby][prog] 普通の人のためのふつうの言語 まつもとさんのkeynoteから考えたこと。 普通の人はメタプログラミングなんかしない。 でもメタプログラミングができることはとても重要。なぜなら、それは言語の最大の力を規定するから。 ライブラリの作者は普通の人ではないから、ふつうの機能も使いこなせる。 使用される頻度が低くとも、メタプログラミング機能を用意することは、強力なライブラリを生み出すという点で重要。 ので、普通の機能だけでなく、「ふつうの機能」をどう設計するかがこれからのプログラミング言語には重要になってくるだろう。 9784797336023 注:「普通」はバズワードなのであまり深く考えないでね ■ [ruby] 高度に発達したDSLは言語そのものと見分けがつかない(?) http://www.lingr.com/room/merb.jp にて。 (アメリカの)Ra

    Route 477(2008-11-14)
  • ドメイン特化言語は英語のように書くべきではない

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    ドメイン特化言語は英語のように書くべきではない
  • inforno :: 日本語プログラミング言語Scala

    via 第20回 日語でおk Ruby もいいけど Smalltalk でも、おk。 Scalaはメソッド名に日語使えるよ。Scalaは日語プログラミング言語だよ(言いすぎ)。 1object JapaneseLanguage { 2 class Standard[A](self:A) { 3 def の[B](f:(A) => B) = f(self) 4 def を[B](f:(A) => B) = f(self) 5 def する() = () 6 } 7 8 class PseudoKansai[A](self:A) { 9 def のな[B](f:(A) => B) = f(self) 10 def をな[B](f:(A) => B) = f(self) 11 def すんねん() = () 12 } 13} 14 15 16def 平方根(v:int) = Math.sq

  • marsのメモ - 実践COBOLプログラミング入門

    何というDSL!! COBOL屋さんから見たJavaの面倒くささは,分からんでも無い。つか,業務システム構築において,JavaやC#(あとお好きな言語をどれか)みたいな汎用プログラミング言語は,やることが多すぎるってこっちゃ。 実践COBOLプログラミング入門 作者: 結城圭介出版社/メーカー: 技術評論社発売日: 2007/06/15メディア: 大型購入: 2人 クリック: 42回この商品を含むブログ (7件) を見る 読了。特に目新しさは感じなかったが,冒頭のこの文は共感できる。 このの薄さにユーザビリティの秘密がある ユーザビリティに興味があるけど,原典の「誰のためのデザイン(asin:478850362X)」はぶ厚くて読もうかどうか迷ってるって人がいたら,この読んでおけば十分だろ。 「ウェブ」と冠しているように,いわゆるインターネットに公開するウェブサイトが話題の中心だ。だか

    marsのメモ - 実践COBOLプログラミング入門
  • Matzにっき(2007-05-11)

    << 2007/05/ 1 1. [Ruby] ITmedia エンタープライズ:刑務作業でRuby、世界初の受刑者によるソフトウェア開発 2. [Ruby] MS、「Silverlight」を複数プラットフォーム対応へ - CNET Japan 3. お客様 4. [Ruby] Calling Erlang from Ruby (Teaser) 2 1. [言語] random-state.net / Method Cache Hacking (May 1st 2007) 2. ICFP Programming Contest 2007 3. 「働く」って何だっけ?日の労働観を再考せよ (新日的経営の姿):NBonline(日経ビジネス オンライン) 3 1. [原稿] 日経Linux 2007年7月号 2. [言語] The World of Hello World 3. [言語]

  • 【見覚え】koichikのひとりごと【あります】 - koichik の「J と X の狭間で」

    タイトルはインスパイヤ. いろいろ行き詰まってるのでちょっと逃避 (苦笑). 従来,Java 界隈では様々な設定情報を XML ファイルに記述することがよく行われていました. その結果,設定ファイルが膨大になり,「XML 地獄」なんてことがいわれるようになってしまったり. そのためか,近頃は XML を利用しないフレームワークが増えてきているようですね. そこで CoC が効果的なわけですが,それでも設定しなきゃいけない項目はやっぱり残ったりします. それをどうするか? 自分は元々 XML アレルギーがあまりないので,XML でいいんじゃないかと思ったりしちゃうのですが,どうやらそれは流行ってないらしい (苦笑). だからといって JSON や YAML を使うのかというとそうでもなく,Java によるソースコードで表現しちゃうのが今風? その風潮,Java 以外の言語なら理解できるんです

    【見覚え】koichikのひとりごと【あります】 - koichik の「J と X の狭間で」
  • Mind Map を DSL として、MDD に利用する:An Agile Way:オルタナティブ・ブログ

    はじめての JUDE ユーザ会へご参加いただいたみなさん、ありがとうございました。 浅海先生がJUDEをDSLとして利用するという新たな活用例を示して頂き、その資料を 公開させて頂きます。 「Relaxer5におけるJUDE DSL」 JUDEをDSLエディタとして使う -- JUDE API 活用法 http://www.change-vision.com/ja/doc/jude_dsl.pdf この発表には感動しました。 浅海先生は、 RDBは、「構造」(structure)であるのに対し、XMLやMindMapは「半構造」(semi-structure)である。これによって、要求や文章、のようなまだ構造になっていない曖昧なものを掴み取ることができる、 というのです。 XMLは、1つのデータに対して複数のスキーマをかぶせることによって、さまざまに読みとることができる。スキーマによっては

    Mind Map を DSL として、MDD に利用する:An Agile Way:オルタナティブ・ブログ
  • Introduction to Domain Specific Languages

    InfoQ Software Architects' Newsletter A monthly overview of things you need to know as an architect or aspiring architect. View an example

  • Martin Fowler's Bliki in Japanese - 内部DSLスタイル

    http://martinfowler.com/bliki/InternalDslStyle.html 2006/10/24 内部DSL(組込みDSLとも呼ばれる)は、ホスト言語内に書かれたドメイン特化言語である。 これは多くのプログラミング言語コミュニティでは一般的な考え方だ――特にLispコミュニティではそうだ。 だが最近では、急速に成長を遂げているRubyコミュニティでのDSLの扱いに、多くの注目が集まっている。 私は、内部DSLには二つのスタイルがあると思っている。 ひとつは、内部ミニ言語。 もうひとつは、言語エンハンスメント(強化)だ。 内部ミニ言語というのは、外部DSLでやるようなことを内部言語で行うことだ。 汎用言語のサブセットを意図的に自分のミニ言語として取り出す。 たとえば、以下のようになる(言語ワークベンチから引用した)。 mapping('SVCL', Service