Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| arch:role-of-dsl-in-domain-analysis [2021/10/17 20:41] – aavolkov_3 | arch:role-of-dsl-in-domain-analysis [2026/08/29 07:59] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 14: | Line 14: | ||
| In this essay the role of domain specific languages on domain analysis will be discussed. | In this essay the role of domain specific languages on domain analysis will be discussed. | ||
| - | |||
| ===== Opportunities and Risks ===== | ===== Opportunities and Risks ===== | ||
| Line 22: | Line 21: | ||
| The benefits of DSLs include: | The benefits of DSLs include: | ||
| - | - The possibility for solutions to be expressed at the level of abstraction of the problem domain. Therefore, it allows domain experts to understand, validate, modify, and develop DSL programs. | + | * The possibility for solutions to be expressed at the level of abstraction of the problem domain. Therefore, it allows domain experts to understand, validate, modify, and develop DSL programs. |
| - | - DSL programs are concise, self-documenting to a large extent, and can be reused for different purposes [3]. | + | |
| - | - DSLs enhance productivity, | + | |
| - | - DSLs embody domain knowledge, and thus enable the conservation and reuse of this knowledge. | + | |
| - | - DSLs allow validation and optimization at the domain level [7, 8, 9]. | + | |
| - | - DSLs improve testability following approaches such as [10]. | + | |
| The disadvantages of the use of a DSL are: | The disadvantages of the use of a DSL are: | ||
| - | - DSL programs rather costly in terms of design, implementation and maintenance. | + | |
| - | - DSL users need to be specially educated to know specific language. | + | * DSL programs rather costly in terms of design, implementation and maintenance. |
| - | - The DSL is limited in terms of availability [11]. | + | |
| - | - The difficulty of finding the proper scope for a DSL. | + | |
| - | - The difficulty of balancing between domain-specificity and general-purpose programming language constructs. | + | |
| - | - The potential loss of efficiency when compared with hand-coded software. | + | |
| + | | ||
| ===== DSL Design Methodology ===== | ===== DSL Design Methodology ===== | ||
| The development of a domain-specific language includes the following steps [12, 13]: | The development of a domain-specific language includes the following steps [12, 13]: | ||
| - | - Analysis | + | |
| - | o (1) Identification of the problem domain. | + | * Analysis |
| - | o (2) Gathering all relevant data and knowledge for particular domain. | + | |
| - | o (3) Grouping the knowledge in a handful of semantic notions and operations on them. | + | - Identification of the problem domain. |
| - | o (4) Design a DSL that precisely describes applications domain. | + | |
| - | - Implementation | + | |
| - | o (5) Develop a library that implements the designed DSL. | + | |
| - | o (6) Design and implement a compiler that converts DSL programs to a sequence of library calls. | + | |
| - | - Use | + | |
| - | o (7) Write DSL programs for all desired applications and compile them. | + | - Develop a library that implements the designed DSL. |
| + | | ||
| + | | ||
| + | |||
| + | - Write DSL programs for all desired applications and compile them. | ||
| ===== DSL Analysis ===== | ===== DSL Analysis ===== | ||
| Line 59: | Line 63: | ||
| ===== DSL Implementation ===== | ===== DSL Implementation ===== | ||
| - | The implementation steps (5) and (6) of the previous section can be carried out using several approaches: | + | The implementation steps (1) and (2) of the previous section can be carried out using several approaches: |
| Interpretation or compilation | Interpretation or compilation | ||
| Line 82: | Line 86: | ||
| Domain analysis uses domain-specific language as a methodology for producing domain models. The domain-specific language allows programs to be concise, enhance productivity, | Domain analysis uses domain-specific language as a methodology for producing domain models. The domain-specific language allows programs to be concise, enhance productivity, | ||
| - | |||
| - | |||
| - | |||
| ===== References ===== | ===== References ===== | ||
| - | 1. Ruben Prieto-Diaz. Domain analysis: an introduction, | + | - Ruben Prieto-Diaz. Domain analysis: an introduction, |
| - | 2. Paul Klint, Joost Visser. Domain-Specific Languages, June 2000. | + | |
| - | 3. D. A. Ladd and J. C. Ramming. Two application languages in software production. In USENIX Very High Level Languages Symposium Proceedings, | + | |
| - | 4. A. van Deursen and P. Klint. Little languages: Little maintenance? | + | |
| - | 5. R. B. Kieburtz, L. McKinney, J. M. Bell, J. Hook, A. Kotov, J. Lewis, D. P. Oliva, T. Sheard, I. Smith, and L. Walton. A software engineering experiment in software component generation. In Proceedings of the 18th International Conference on Software Engineering ICSE-18, pages 542–553. IEEE, 1996. | + | |
| - | 6. R. M. Herndon and V. A. Berzins. The realizable benefits of a language prototyping language. IEEE Transactions on Software Engineering, | + | |
| - | 7. A. Basu, M. Hayden, G. Morrisett, and T. von Eicken. A language-based approach to protocol construction. In Kamin [43], pages 1–15. | + | |
| - | 8. D. Bruce. What makes a good domain-specific language? APOSTLE, and its approach to parallel discrete event simulation. In Kamin [43], pages 17–35. | + | |
| - | 9. V. Menon and K. Pingali. A case for source-level transformations in MATLAB. In DSL-99 [27], pages 53–66. | + | |
| - | 10. E. G. Sirer and B. N. Bershad. Using production grammars in software testing. In DSL-99 [27], pages 1–14. | + | |
| - | 11. C. W. Krueger. Software reuse. ACM Computing Surveys, 24(2): | + | |
| - | 12. J. C. Cleaveland. Building application generators. IEEE Software, pages 25–33, July 1988. | + | |
| - | 13. A. van Deursen and P. Klint. Little languages: Little maintenance? | + | |
| - | 14. J. M. Neighbors. The Draco approach to constructing software from reusable components. IEEE Transactions on Software Engineering, | + | |
| - | 15. G. Arango. Domain analysis: From art form to engineering discipline. In Fifth International Workshop on Software Specification and Design, pages 152–159, May 1989. Appeared as ACM SIGSOFT Engineering Notes 14(3). | + | |
| - | 16. R. N. Taylor, W. Tracz, and L. Coglianese. Software development using domain-specific software architectures. ACM SIGSOFT Software Engineering Notes, 20(5): | + | |
| - | 17. J. L. Bentley. Programming pearls: Little languages. Communications of the ACM, 29(8): | + | |