Skip to main content
QUICK REVIEW

[論文レビュー] Application Software, Domain-Specific Languages, and Language Design Assistants

Jan Heering|ArXiv.org|May 3, 2000
Model-Driven Software Engineering Techniques被引用数 10
ひとこと要約

本論文では、ドメイン特化言語(DSL)の開発を簡素化するための言語設計アシスタント(LDAs)をメタツールとして提案する。これにより、応用ソフトウェアの生産性が向上する。言語開発システムと例による記述(DBE)技術を統合することで、低レベルのメタ言語記述に依存せず、ユーザーフレンドリーな例駆動型の言語定義により直感的なDSL作成が可能になり、DSL設計における開発者の生産性が向上する。

ABSTRACT

While application software does the real work, domain-specific languages (DSLs) are tools to help produce it efficiently, and language design assistants in turn are meta-tools to help produce DSLs quickly. DSLs are already in wide use (HTML for web pages, Excel macros for spreadsheet applications, VHDL for hardware design, ...), but many more will be needed for both new as well as existing application domains. Language design assistants to help develop them currently exist only in the basic form of language development systems. After a quick look at domain-specific languages, and especially their relationship to application libraries, we survey existing language development systems and give an outline of future language design assistants.

研究の動機と目的

  • ドメイン専門知識と言語設計スキルを組み合わせる複雑さを考慮して、効率的なドメイン特化言語(DSL)の開発に取り組むこと。
  • 直感的で例に基づいた方法によりDSLを定義する支援を行う言語設計アシスタント(LDAs)を導入することで、DSL作成の障壁を低減すること。
  • メタツールを活用した迅速かつドメインに特化した言語作成により、応用ソフトウェア開発の生産性を向上させること。
  • 構文およびフォーマットの面で、言語開発システムと例による記述(DBE)技術を統合したLDAsの実現可能性と設計を検討すること。
  • DSL構築におけるDBEの完全な推論と単純で予測可能な一般化の間のトレードオフを評価すること。

提案手法

  • LDAフレームワークは、言語コンセプトとそれらの関係を格納する言語知識ベースに裏打ちされており、体系的なDSL構築を可能にする。
  • 言語ビルディングブロックとその属性を表現するために、設計言語と視覚的/部分視覚的なメタ言語を採用し、これらはターゲット言語開発システムのメタ言語にコンパイルされる。
  • LDAは、例えばASF+SDFやEliなどの言語開発システムをバックエンドとして採用し、DSL記述からパーサー、プリティプリンター、型チェックャーなどのツールを生成する。
  • 例による記述(DBE)は、プリティプリンティングや構文といった特定の言語的側面に適用され、完全なメタ言語記述を必要とせずに一般規則を例から推論する。
  • カスタマイズおよび構成の段階で制約チェックを統合し、言語断片のリアルタイム検証を可能にする。
  • 事前に定義された言語ビルディングブロックのカスタマイズと組み合わせにより、段階的開発を支援する。

実験結果

リサーチクエスチョン

  • RQ1言語設計アシスタント(LDA)は、低レベルのメタ言語記述に依存することを最小限に抑えることで、ドメイン特化言語(DSL)作成の複雑さをどのように軽減できるか。
  • RQ2例による記述(DBE)は、DSL開発における構文やプリティプリンティングといった言語的側面に、どの程度効果的に適用可能か。
  • RQ3言語設計におけるDBEにおいて、単純で予測可能な規則一般化と完全な帰納的推論の間には、どのようなトレードオフがあるか。
  • RQ4言語コンセプト間の関係をどのように構造化すれば、モジュラーかつ拡張可能なDSL構築を支援できるか。
  • RQ5言語開発システムが、DSL仕様から自動的にツールを生成可能にするバックエンドとして果たす役割は何か。

主な発見

  • 言語設計アシスタント(LDAs)は、ユーザーフレンドリーな例駆動インターフェースにより、低レベルのメタ言語記述の複雑さを抽象化することで、DSL開発を著しく簡素化できる。
  • 例による記述(DBE)は、プリティプリンティングや構文といった限定的で明確に定義された言語的側面に最も適しており、例からの推論が実用的かつ効果的である。
  • 誤ったまたは意図しない規則の生成のリスクが高く、デバッグが困難なため、複雑な帰納的推論よりも単純で予測可能な一般化が好ましい。
  • 言語開発システムをバックエンドとして統合することで、DSL記述からパーサー、プリティプリンター、型チェックャーといった必須ツールを自動生成できる。
  • 制約チェックで検証された言語ビルディングブロックのカスタマイズと組み合わせにより、モジュラーかつ段階的なDSL構築が可能になる。
  • 進展は見られたが、推論に基づくDBEにおける正しさの保証とユーザーの制御性を確保する点で、依然として課題が残っている。特に、一般化がユーザーの意図から逸脱する場合に顕著である。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。