タグ

dslに関するjoan9のブックマーク (6)

  • 型クラスで tagless DSL メタプログラミング - keigoiの日記

    これは Haskell Advent Calendar 2011 の5日目の記事です。 去年も書きましたが、その記事はこちら → Haskell厨を6年やってる俺がOCamlを仕事で2ヶ月使ってみた - keigoiの日記 先日の記事 Haskell+タグレスな型付きDSLで楽々!C言語コード生成 - keigoiの日記 をちょっとブラッシュアップした。前回はコードについては全く説明しなかったので、改めて解説する。 おさらい HaskellやOCamlなどの関数型言語は、プログラミング言語の処理 ― 構文解析とコード生成 ― がとても得意だ。 大手のソフトウェア企業として知られる NTTデータも既存コードの処理 (構文解析〜リバースエンジニアリング) のために Haskell を使っているそうだ。 (函数プログラミングの集い2011より。インドに外注する部分もあるそう togetter 1

    型クラスで tagless DSL メタプログラミング - keigoiの日記
  • Martin Fowler's Bliki in Japanese - パーサー恐怖症

    http://martinfowler.com/bliki/ParserFear.html 2008/5/20 最近はドメイン特化言語についてみんなと話すことが多いのだが、外部DSLのことになると、だいたい決まって「パーサーを書くのは難しいよ」とか言われる。 外部DSLの構文としてXMLがよく使われるのは、「パーサーが無料で手に入るから」だったりする。 でも、パーサーを書くのは思ったよりも簡単なことなのだよ。いやマジで。 XMLのパースができれば簡単なことだよ。 証拠だってあるのだ……つっても、私の話だけど。 でもでも、十分に証拠となるものだから引き合いに出そうと思う。 現在執筆中の書籍に入門的な例を書いたんだけど、 簡単なステートマシンを作るのに外部DSLを2つ作ったのだ。 1つは(ゲートウェイドラッグ*1として)XMLを使ったもので、もう1つはカスタム構文をAntlrを使ってパースした

  • inforno :: Scalaでスタック指向言語をサクッと実装する

    Scalaにはご存知のとおり scala.util.parsing.combinator というパーサコンビネータライブラリがある。さらには scala.util.parsing.ast というのもあるわけだけど、これは激しく開発中な感じ。Scalaはバージョンがあがるとこういう開発中ライブラリはごそっと変わったりするので今はおいておく。ちなみに、2.7.1では前のパーサコンビネータは scala.util.parsing.combinatorold といういかにも使いたくない名前にされてしまった。 パーサコンビネータといえば言語処理系だ(そうか?)。というわけで scala.util.parsing.ast は置いておいて、とりあえずASTについてほとんど考える必要がない、簡単なスタック指向言語を実装してみることにする。実行はScala 2.7.1.finalで。 スタック指向言語とは

  • Kazuho@Cybozu Labs: Perl で埋め込み SQL を使って楽をする話

    « Japanize for IE バージョンアップのおしらせ | メイン | Filter::SQL を使って掲示板を書いてみました » 2008年04月16日 Perl で埋め込み SQL を使って楽をする話 DSL (ドメイン固有言語) は、プログラム開発の生産性を向上させる有力な手段です。そして、よく使われる DSL の代表例が正規表現と SQL だと思うのですが、前者に比して後者を嫌いな人が多いようです。なぜだろうと思ってつぶやいたところ、「SQL はリテラルじゃないから!」という答えが tokuhirom さんから返ってきました。そういえば例えば Pro*C のように C で Embedded SQL というのは良く聞く話なのに、Perl では同様の例がないような感じだったので、作ってみました。Perl で埋め込み SQL を実現するソースフィルター Filter::SQL

  • つくるぶガイドブログ: Test::WWW::Declareを使って宣言的にWebアプリのテストを作成

    こんにちは。 つくるぶガイドブログ Perl担当の西山です。 Perlカテゴリーのエントリーでは、CPAN(世界中のPerlプログラマーが作成しているライブラリを集約したアーカイブ)に登録されているモジュールの中から、便利だったりコードが格好良かったり、Perlならではの魅力を持っているようなモジュールを取り上げていこうと思っています。 よろしくお願いします! Test::WWW::Declareモジュールについて というわけで、一発目は Test::WWW::Declare モジュールをご紹介します。 今年の春のYAPC::AsiaでJesse Vincent氏が 「Abusing Domain Specific Languages for Fun and Profit」 というセッションで発表していたり、最近では 宮川達彦さんのWeb::Scraperのスライド に "integ

  • ITmedia エンタープライズ:第3回 話題騒然! 「言語内DSL」の概念とRake【前編】 (1/2)

    第3回 話題騒然! 「言語内DSL」の概念とRake【前編】:Ruby on Rails究極指南(1/2 ページ) 近年、特定の領域に存在する問題の解決に特化してデザインされたコンピュータ言語「DSL」が注目を集めている。稿では、RubyとDSLの関係について解説していく。Railsによって注目を浴びたRakeを取り上げて、DSLの概念やRakeの特徴、その使い方などを説明する。 RubyとDSLの関係 近ごろ、DSLという考え方が注目を集めています。DSLとは、特定の領域(ドメイン)に存在する問題の解決に特化してデザインされたコンピュータ言語のことを指します。 DSLの考え方*は新しいものではありません。例えば、awkは「テキストをフィルタリングする」という問題を解くことに特化したDSLと考えられます。そのほか、自分で特定の問題を解くためにミニ言語を設計・実装された経験のある方もいるで

    ITmedia エンタープライズ:第3回 話題騒然! 「言語内DSL」の概念とRake【前編】 (1/2)
  • 1