Loading article…
言語指向プログラミング(LOP)[1]は、ソフトウェア開発パラダイムであり、「言語」はオブジェクト、モジュール、コンポーネントと同じステータスを持つソフトウェアビルディングブロックであり、[2]プログラマーは汎用プログラミング言語で問題を解決するのではなく、まず問題に対して1つ以上のドメイン固有言語(DSL)を作成し、それらの言語で問題を解決します。言語指向プログラミングは、マーティン・ワードの1994年の論文「言語指向プログラミング」で初めて詳細に説明されました。[1]
コンセプト
言語指向プログラミングの概念は、ユーザーの言葉で要件を捉え、ユーザーの記述にできるだけ同型の実装言語を作成し、要件と実装のマッピングができるだけ直接的になるようにするアプローチをとっています。この同型の近さの尺度は、言語の「冗長性」です。これは、要件のスタンドアロンの変更を実装するために必要な編集操作の数として定義されます。新しい言語を実装するための最適な言語が何であるかは、事前に想定されていません。むしろ、開発者は、情報フローの分析によって作成されたオプションの中から選択できます。つまり、取得される情報、その構造、取得時期、取得元、およびその情報で行われる処理です。[3]
発達
Racketプログラミング言語とRascalMPLは、言語指向プログラミングを根本からサポートするために設計されました。[2] JetBrains MPS、Kermeta、Xtextなどの他の言語ワークベンチ[4]ツールは、DSLと言語指向プログラミングを設計および実装するためのツールを提供します。[5]
参照
参考文献
- ^ アブ
- ^ ab Felleisen, Matthias; Findler, Robert Bruce; Flatt, Matthew; Krishnamurthi, Shriram; Barzilay, Eli; McCarthy, Jay; Tobin-Hochstadt, Sam (2018年3月). 「プログラム可能なプログラミング言語」. Communications of the ACM . 61 (3): 62–71. doi :10.1145/3127323. S2CID 3887010. 2019年5月15日閲覧。
- ^ Dunlavey (1994).より良いアプリケーションの構築: 効率的なソフトウェア開発の理論。International Thomson Publishing。ISBN 0-442-01740-5。
- ^ Fowler, Martin (2005 年 6 月 12 日). 「言語ワークベンチ: ドメイン固有言語のキラーアプリ?」2015 年4 月 14 日閲覧。
- ^ Erdweg, Sebastian (2013)。「言語ワークベンチの最新技術」。ソフトウェア言語エンジニアリング。コンピュータサイエンスの講義ノート。第 8225 巻。pp. 197–217。doi : 10.1007 / 978-3-319-02654-1_11。ISBN 978-3-319-02653-4. S2CID 5234848 . 2023年7月4日閲覧。
外部リンク
- 言語指向プログラミング: 次世代のプログラミングパラダイム このトピックをさらに詳しく調査した Sergey Dmitriev の論文。
- 言語ワークベンチの最新状況。言語ワークベンチ チャレンジからの結論。第 6 回国際ソフトウェア言語工学会議 (SLE'13) の議事録。2013 年。
- MetaLispにおける言語指向プログラミング ギュリ・ラヨシュの論文 1992年 リーズ大学 このシステムは、 Tree-Metaを動かすのと同じトップダウン構文解析言語アルゴリズムを使用していました。
