Chapter 1: Rule Visualization Project Requirements
1.1. Term
1.1.1. Domain Specific Language
- A domain-specific language is created specifically to solve problems in a particular domain and is not intended to be able to solve problems outside of it (although that may be technically possible). In contrast, general-purpose languages are created to solve problems in many domains.
- Domain-specific languages are languages (or often, declared syntaxes or grammars) with very specific goals in design and implementation.
1.1.1.1. Internal
- An Internal DSL is essentially a language that is either built on top of an existing language or extends another language, and is most commonly packaged as a language library. As with an External DSL, an Internal DSL is written in a very specific grammar, but unlike the External DSL, the grammar is restricted to the legal syntax of the host language. [1]
1.1.1.2. External
- DSLs implemented via an independent interpreter or compiler are known as External Domain Specific Languages. Well known examples include LaTeX or AWK.[2]
1.1.2. Graphical Modeling Framework[3]
- Graphical Modeling Framework is a framework concept derived from Eclipse Platform in 2006. It provides a generative component and runtime infrastructure for developing graphical editors based on the Eclipse Modeling Framework (EMF) and Graphical Editing Framework (GEF).
- GMF is a close source framework.
1.1.3. UML
- The Unified Modeling Language (UML) is a general-purpose, developmental, modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system.
1.1.4. BMPN(Business Process Model and Notation)
- Graphical modeling framework is a framework concept derived from Eclipse platform in 2006. It provides a build component and runtime infrastructure for developing graphical editors based on eclipse modeling framework (EMF) and graphical editing framework (GEF).
1.1.5. VPL(Visual Scripting Language)
- In computing, a visual programming language (VPL) is any programming language that lets users create programs by manipulating program elements graphically rather than by specifying them textually.
- The overall goal of VPLS is to make programming easier for novices to access and support programmers at three different levels: syntax, semantics and programmability.
- It is worth noting that VPL is more suitable for use in procedural or logical language.
1.2. Scope
1.2.1. Main Goal
- Build a highly flexible, maintainable and user-friendly rule visual editing web application
1.2.2. Rule File
2. Eclipse GMF
3. MetaEdit+
3.1. Project Background
- The research behind the genesis of MetaEdit+ was carried out at the University of Jyväskylä, as part of the MetaPHOR project. A metamodeling and modeling tool, MetaEdit, had been created by the earlier SYTI project in the late 1980s and early 1990s, in co-operation with a company, MetaCase.
- Currently, software and starter kit are sold in the price of 3 450 €;
- License is 250 €/month.
3.1.2. Project Purpose
- The main purpose of this project is to build DSL quickly and provide long-term efficient maintenance.
3.1.3. Project Team
- The company is headquartered in Finland and currently has more than 200 people.
3.2. Solution
- It is worth noting that DSL modeling is only part of the MetaEdit+ function
3.2.1. Process Introduction
3.2.1.1. Overview
- This graph demonstrates traditional code modelling verses domain modeling.
3.2.1.2. Define a DSM
- Developer needs to declare concepts and oeprators first.
- Then they can set the rule of those concepts and operators.
- Symbols are generated for representing concepts.
- Generators automatically transform panel into code.
3.2.1.3. Ready Tools
- Editors(Diagram, matrix, table), browsers, generators, refactoring trace, multi-project support.
- Languages easy and safe to maintain and share
- Shared new langauge versions, updates model already made
3.2.1.4. Example
A. Add concept of our project
- Similar to Antlr, there are severeal different types to choose.
- In example, we can get a Role called Event. (Role is similar to a class)
- Then we try to add a property.
- Select types:
B. Define Symbols
- Developer can design symbols by themselves.
C. Set bindings and constraints
D. Define generator format
E. Use predefined symbol to construct a graph
- Drag predefined components to panel then you can get what you want.
3.2.2. Project Framework
- Close Source software
3.3. Summary
Reference:
[1] https://subscription.packtpub.com/book/application-development/9781782166504/1/ch01lvl1sec09/internal-versus-external-dsls
[2] https://en.wikipedia.org/wiki/Domain-specific_language
[3] https://www.cnblogs.com/bjzhanghao/archive/2007/01/16/621545.html