Domain Specific Language Visualization & Edit Report

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值