IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.
http://martinfowler.com/bliki/DomainSpecificLanguage.html ドメイン特化言語(DSL:Domain Specific Language)とは、 ある特定の種類の問題に特化したコンピュータ言語のことです。 様々な問題に対応できる汎用的な言語のことではありません。 ドメイン特化言語についてはこれまでも議論されてきましたし、 コンピュータが使われてきたのと同じくらい長い間使われてきました。 DSLを頻繁に使用しているコミュニティにUnixコミュニティがあります。 そこでは、DSLは「リトル言語」や「ミニ言語」などと呼ばれています (この伝統について、Eric Raymondが素晴らしい議論を提供してくれています)。 最も一般的なUnixスタイルのやり方は、 言語の文法を定義し、コード生成機能を使ってDSLから汎用的な言語を生成する、 あるい
以下の文章は、Martin Fowler による 「Language Workbenches: The Killer-App for Domain Specific Languages?」 の日本語訳である。 ソフトウェア開発における新しい考えの多くは、実は古い考えの新しい組み合わせ方です。この記事では、その新しい組み合わせ方のひとつ、私が「言語ワークベンチ(Language Workbenches)」と呼んでいるツールについて説明します。これは、現在広まりつつある考え方で、たとえば、Intentional Software、JetBrainsのMeta Programming System、MicrosoftのSoftware Factoriesなどが例として挙げられます。これらのツールは古い開発スタイルを採用しており、私はこれを「言語指向プログラミング(language oriente
Language Engineering For Everyone! Eclipse Xtext™ is a framework for development of programming languages and domain-specific languages. With Xtext™ you define your language using a powerful grammar language. As a result you get a full infrastructure, including parser, linker, typechecker, compiler as well as editing support for Eclipse, any editor that supports the Language Server Protocol and yo
筑波大学第三学群情報学類を卒業したのち、現在は、筑波大学大学院システム情報工学研究科コンピュータサイエンス専攻博士後期課程3年。プログラミング言語や処理系に強い興味を持っている。現在の研究テーマは、プログラミング言語の構文解析アルゴリズム。Scala勉強会を不定期で行うなど、研究の合間にScalaの普及活動を行っている。 Scalaにはパーザコンビネータライブラリという、構文解析を行うための専用ライブラリが存在します。パーザコンビネータライブラリを使うことで、特定の用途に特化した設定ファイルやDSLのパーザを手書きで書くよりも簡単に書けるようになります。 本記事では、Scalaのパーザコンビネータライブラリの基本的な使い方から、パーザコンビネータを使ったJSONのサブセットのパーザの実装までを解説します。構文解析の実装手法に関する知識は前提としませんが、構文解析とはどのようなものか、という
始める前に とりあえず、まずはANTLRとはどんなものか使ってみましょう。 ANTLR のページからダウンロードします。 今回は、現在(2006/07/18)の安定最新版である 2.7.6 を使うことにしました。 ANTLRのようなツールを使うときに、最低限知っておく必要のある事があります。 それは正規表現です。 これを知っていないと、正直ANTLRを使うのは厳しいです。 基本的なところだけ知っていれば充分ですので、 まずは正規表現を学んでおきましょう。 簡単な例 ANTLRでは、一つのパーサを作成するのに Parser / Lexer を対で使います。 今回はAntlrのサイトに習って(パクって?)、数値演算式を解析するパーサを作成します。 まず、以下の内容をファイルに保存します。 expr.g class ExprParser extends Parser; expr: mexpr (
このブラウザーはサポートされなくなりました。 Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。 内部のドメイン固有言語 Jeremy Miller ドメイン固有言語 (DSL) は、ここ 2、3 年取り上げられることの多い話題ですが、おそらく、近い将来、その重要性がさらに増してくるでしょう。既に "Olso" プロジェクト (現名称、SQL Server Modeling) の動向を見守っている方や、ANTLR などのツールを使用して "外部" DSL の作成を試している方がおられるかもしれません。しかし、すぐにでも取り掛かれて、作成しやすいのは、C# などの既存のプログラミング言語内に記述する "内部" DSL です。 英語を読むように理解できる外部 DSL に比べると、内部 DSL は、開発者でない
http://martinfowler.com/bliki/BusinessReadableDSL.html 2008/12/15 ビジネスピープルは、DSLを使えば、プログラマがいなくてもソフトウェアのルールを書けるのだろうか? DSLの話になると、ビジネスピープルが自分でコードを書くのかといった話によくなる。 こうした考えには、COBOLのインターフェースの話を持ち出そう。 元々のCOBOLの目的は、プログラマがいなくてもソフトウェアを書けるようにすることだった。が、結果は見ての通りである。 プログラマがいなくてもコードを書けるという話には、COBOL(とその他大勢)が失敗したところを、今回はどうやって克服するのかと尋ねるようにしている。 私は、プログラミングには特殊なマインドセットが必要だと考えている。 それは、マシンに正確な指示を与えること、そして、そうした膨大な指示を構造化して、
正直に言うと、私はドメイン特化言語の作業として、流れるようなAPIの利用、設計、開発について考えていませんでした。それ故、流れるようなAPIの長い歴史によって、内部DSLの概念に入り込むことを困難にしていたということを認めなければなりません。しかし、私は学んでいます。一方、私がDSLについて初めて知ったとき、私はその定義から「ちょっとした言語」をいくつか作成している私の作業をすぐに連想しました。あなたが上述した内部DSLの定義を受け入れるのが困難ならば、私はこれを提案します。この味わいはより良いものだと思います。 外部DSLを定義することは、内部DSLを定義することよりもはるかに容易です。それは、コンパイル型かインタープリタ型の汎用プログラミング言語を作るのに似ています。その言語は形式的な言語をもっています。つまり、その言語は、矛盾なく定まったキーワードや表現形式のみ許すことを強制されます
この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。 出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "ドメイン固有言語" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL (2023年12月) ドメイン固有言語(ドメインこゆうげんご)またはドメイン特化言語(ドメインとっかげんご、英語: domain-specific language、DSL)は、特定のタスク向けに設計されたコンピュータ言語[1]である。汎用プログラミング言語の対義語として用いられる。 DSL は一種類のタスクをうまく記述することに集中したプログラミング言語であり、古くから存在した。何らかのプログラミング言語それ自体の構文と処理系を利用する internal DSL(あるい
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く