【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来使得图形描述起来更简单,就像目标预览中一样。

### 回答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、付费专栏及课程。

余额充值