【MPS】Jetbrains MPS入门案例Shapes(一)

JetBrains 凭借 MPS 推出新的编程范式

MPS (Meta Programming System) 是一个执行面向语言编程范式的全新概念的软件开发环境,用于创建实际应用和领域专用语言。


MPS 是一个让专业软件开发人员创建新的自定义语言、扩充现有语言以及使用这些语言来开发程序的环境。MPS 还是一种用于创建领域专用语言 (DSL) 的工具。对编程不甚熟悉的领域专业人士可轻松使用通过 MPS 创建的领域专用语言。


MPS 的主要任务是尽可能简单地支持新语言的创建以及现有语言的扩充。其先进的功能支持对语言型态系统、限制性因素以及专用编辑器进行定义,创建功能强大而易于使用的新语言。MPS 使用一种生成方法:在更高层面上描述语言,MPS 以其他语言(尤其是 Java 语言)生成可编译的代码。

很久以前了解到的MPS,那个时候只知道MPS是一个Jetbrains开发构件DSL的一门语言,觉得有趣、想学,但它的开发文档实在是太长了,每次都是只看了一点点内容就中断了,最简单的案例 Shapes光看完文章不去理解意思都需要花费很长时间。最近由于打算写一个DSL,着手做时凭着还记得的一点点操作开始创建项目,其实也就会创建Concept,写不出可运行的东西,其他内容是边查边写的,由于脑子里有想要做出来的东西,有个具体的方向,所以更清楚当时想要用用什么东西,也就更清楚去文档中找什么内容,花了几个小时一步步顺腾摸瓜终于把最基本的一套流程弄懂了,也就是Concept → Editor → Generator → Run。下面我将按照官方文档的顺序把Shapes案例的操作流程梳理一遍,不过官方文档实在太长,我会删减很多概念性的东西,只把操作性的东西写出来。

具体步骤

创建Concept
自定义Editor
添加颜色属性
Java代码的生成

目标预览

Shapes这个案例的目的是创建一个简洁的图形描述语言,然后调用Java图形编程接口来绘制出图形,如下图分别为目标语言图形建模(描述)和执行绘制后的结果
图形描述
绘制图形

一个小提示

MPS的IDE对编辑过程是做了很多限制的,很多东西必须通过快捷键才能出来,刚使用的时候可能有点不习惯

创建项目

选择Language Project,然后填写好项目名称、存储路径、语言名称以及勾选上Create Sandbox Solution,Create Sandbox Solution是创建一个可以使用我们当前创建的DSL的沙盒,这样我们就能很方便地边开发边测试。
创建项目
可以看到,创建出来的项目包含语言定义部分,和运行沙盒部分
项目目录

创建Concept

Concept描述的是事物的元模型(或者说元类等),是对模型组件的抽象,从语言层面来说,它描述的是某种DSL的抽象语法(Abstract Syntax)。

创建Shape

右键Shapes下的structure,选择new→Concept
创建Concept
敲上Concept的名字Shape,Shape是一些具体形状的抽象,因此要将Concept修改为abstract修饰(在光标放在代码处,按ALT+Enter会出现Make Abstract选项)
在这里插入图片描述

创建Circle

创建第一个具体的形状Circle,其继承自Shape,Shape可以通过手打敲出,也可以通过Ctrl+Space补全出来(注意这个时候要切换到系统输入法,否则补全快捷键将无效)

然后需要添加具体形状Circle的属性,也就是坐标和半径,分别为x、y、radius,它们的类型都设置为integer,在这里提前提个醒,Concept中的properties只能定义四种类型,如下面第二张截图所示,是的你没看错,只有这四种,就连Float都没有,这可能是因为作为一种DSL语言需要更大的灵活性吧,如果需要定义其他类型的数据则需要在children处定义,如果想要知道如何定义这些类型为Float类型,欢迎留言,我会尽可能解答
在这里插入图片描述
在这里插入图片描述

创建Square

按照创建Circle的步骤再创建一个Square,Square包含的属性是左上角的坐标和边长(有这些属性就能确定一个正方形),也都定义为integer类型
在这里插入图片描述

创建Canvas

Canvas表示画布,所有图形都绘制在Canvas上,在这个例子中画布Canvas就是一个根元素,所以需要设置instance can be root为true(可以通过手敲出true,也可以通过Ctrl+Space补全),另外需要定义一个children,类型是Shape的数组,也就是一块画布下可以画很多个图形,需要注意的是children中定义的都是数组(强制),如果需要限定为一个则可以定义为Shape[1]
在这里插入图片描述

创建Shapes模型

上面将当前案例所有用到的Concept都定义好了,接下来进行一次测试,看看如果创建我们自己定义的Concept的模型实例,首先需要重新构建一下项目
在这里插入图片描述
然后右键sandbox选择new→Canvas,这里创建的Canvas的样式是MPS默认的Editor的样式,由于Canvas实现了INameConcept接口,所以实例中需要canvas的名字,可以观察到默认生成的文件中有个shapes,这就是我们在定义Canvas时定义的children,因为数组大小范围在0…n,所以shape下没有任何内容,也不会报错(如果个数定义为1以上则会标红提示有错)

此时将光标移到shapes下的<<…>>下按下Ctrl+Space会发现补全提示里有circle和square,选中IDE会自动创建带有属性的图形实例,但属性值需要我们输入,如果还需要添加图形则在已创建的图形的花括号结束出按下Enter会自动创建出一块新区域用于创建新的图形实例
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
至此,通过MPS创建Shapes的DSL的第一步——创建Concept就完成了,下一步就需要自定义Editor来使得图形描述起来更简单,就像目标预览中一样。

  • 7
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论
### 回答1: MATLAB Runtime 是一个独立的运行时环境,用于在没有安装 MATLAB 的计算机上运行使用 MATLAB Compiler 打包的应用程序和脚本。 下面是在 Windows 系统上安装 MATLAB Runtime 的步骤: 1. 下载对应版本的 MATLAB Runtime 安装程序。 2. 双击运行安装程序。 3. 按照提示操作即可完成安装。 注意:在安装过程中可能需要输入相应的许可证信息。 在安装完成后,您就可以在没有安装 MATLAB 的计算机上运行使用 MATLAB Compiler 打包的应用程序和脚本了。 ### 回答2: Matlab runtime是一种运行Matlab应用程序所必需的软件,安装方法比较简单,以下是Matlab runtime的安装教程。 第一步:打开Matlab Runtime的官网下载页面,选择您的操作系统(Windows、Linux、Mac OS X等),然后选择您需要的版本。根据您的计算机系统的位数选择相应的版本(32位或64位)。然后单击下载按钮,下载文件。 第二步:下载完成后,双击.exe文件,打开安装向导。如果Windows操作系统上的“用户帐户控制”对话框出现,单击“是”或“是”以继续安装。 第三步:阅读并接受许可协议。单击“下一步”。 第四步:选择安装文件夹。单击“下一步”。 第五步:选择安装选项。单击“下一步”。 第六步:单击“安装”按钮开始安装。 第七步:等待安装完成。 第八步:单击“完成”按钮,完成马上 runtime的安装。 注意:在安装之前,请关闭计算机上所有的Matlab程序。安装过程中,请按照安装向导的指导逐步操作。安装完成后,您需要重新启动您的计算机,以确保Matlab Runtime被正确安装并配置。 总之,安装Matlab runtime很简单,只需按照以上步骤操作即可。如果您遇到任何问题,请参考相关的Matlab Runtime安装文档,并在需要时与相关技术人员联系。 ### 回答3: MATLAB Runtime是一个免费的软件,用于支持用MATLAB开发的应用程序在计算机上运行。安装MATLAB Runtime可以让用户在计算机上运行不同版本的MATLAB程序,而无需安装完整的MATLAB软件包。 在安装MATLAB Runtime之前,您需要确定您的计算机和操作系统是否支持该软件。您还需要了解MATLAB Runtime的版本与您要运行的 MATLAB 应用程序的版本是否一致。 以下是MATLAB Runtime的安装教程: 1. 下载MATLAB Runtime安装程序。可以在MathWorks的官方网站上下载和安装程序。 2. 打开安装程序,选择安装的目录。 3. 安装程序会检查操作系统环境,同时安装对应操作系统版本的MATLAB Runtime。 4. 确认安装选项,接受安装操作系统和安装目录的选项。单击开始安装。 5. 当安装过程完成后,您可以选择立即启动MATLAB Runtime或者手动运行。 6. 如果您需要卸载MATLAB Runtime,可以使用控制面板中的程序卸载功能或者运行MATLAB Runtime Installor并选择卸载选项。 在安装MATLAB Runtime后,您可以启动要运行的 MATLAB 应用程序。请注意,在运行应用程序之前,您需要确保它们是针对正确版本的 MATLAB Runtime 编译的。 总之,安装MATLAB Runtime是一项简单的任务,只需要遵循上述步骤即可完成。MATLAB Runtime为用户提供了一个运行MATLAB应用程序的方便而高效的方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WGeeker

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值