MPS 2019.2帮助

MPS用户指南

MPS语言设计器用户指南

欢迎使用MPS。本用户指南是MPS的完整参考文档,它将通过MPS提供的许多概念和使用模式导航您,并在需要了解有关系统任何特定方面的更多详细信息时为您提供帮助。

话题

  1. 基础知识 -基本概念的高级概述
    • 版权
    • 为JetBrains MPS做出贡献-MPS贡献者和开发人员有关如何解决MPS源代码的指南

    • 语言存储库 -查找有关JetBrains和外部供应商可在MPS中使用的语言的更多信息

  2. 使用MPS-熟悉与MPS进行通信的界面
  3. 语言定义 -定义语言涉及指定多个方面,每个方面都对语言的某些部分进行了编码-允许的AST结构,屏幕外观,类型系统规则等。

    方面

    描述

    核心文件

    结构体

    定义可以在用户模型中使用的节点类型(称为Concepts )。程序(模型)中的每个节点都引用其概念。概念指定了节点, 节点和引用节点可能具有的属性概念可以扩展其他概念并实现ConceptInterfaces

    结构体
    SModel语言 -以编程方式访问模型
    开放式API-用于访问模型的API参考
    报价 -建立AST片段
    模式 -模式匹配节点的语言
    使用代码常见问题解答中的模型和模块依赖性

    视频 -JetBrains MPS简介,首次运行:项目

    视频 -JetBrains MPS简介:结构

    约束条件

    限制结点之间的关系以及属性的允许值(超出Structure中定义的规则)。

    约束通常定义为:
    -引用的目标范围(引用可以指向的允许节点的集合)
    -节点可以是另一个节点的子/父/祖先的情况
    -属性的允许值
    -属性访问器方法(获取器和设置器)

    约束条件

    范围

    视频 -JetBrains MPS简介,第3部分:约束

    行为

    就像OOP保持方法中的类一样, 概念可以定义可以在节点上以多态方式调用的方法和静态方法。因此, 节点除了其属性和关系外还具有行为。

    行为

    视频 -JetBrains MPS简介,第4部分:行为

    编辑

    MPS提供了投影编辑器的概念,而不是定义将将代码从可编辑的形式(即文本)转换为计算机可以操作的树状结构的解析器,而是让用户直接编辑AST。编辑器方面使语言设计者可以创建用于编辑其概念概念的UI。

    编辑
    图表编辑器
    转换菜单语言
    上下文助手
    上下文动作工具

    编辑器食谱 编辑器语言生成API

    视频 -JetBrains MPS简介,第5部分:编辑器

    动作

    动作”方面提供了指定高级编辑器行为的方式,例如复制/粘贴或节点初始化。

    编辑器动作

    意向

    所有现代的IDE都可以通过便捷的快捷键(MPS中的Alt + Enter)帮助开发人员进行即时代码操作。语言作者可以在意图方面为他们的语言定义如此小的代码转换。

    意向

    视频 -JetBrains MPS简介,第7部分:意图

    发电机

    用一种或多种语言编写的模型最终被翻译成某些目标通用语言和平台(例如Java)的可运行代码。在此过程中,模型逐渐进行了转换,以便反复地将概念从较低的抽象级别替换为达到最低要求的概念。在Generator方面定义了翻译概念及其正确顺序的规则。

    发电机

    发电机计划

    发电机食谱
    编写口译食谱
    视频 -JetBrains MPS简介,第8部分:生成器

    TextGen

    Generator达到最低要求的AST表示形式的代码生成过程中, TextGen阶段开始,并将模型中的所有节点转换为它们的文本表示形式,并将生成的文本源文件保存在磁盘上。

    TextGen

    视频 -JetBrains MPS简介,第9部分:TextGen

    数据流

    通过语言构造理解值流和控制流的能力有助于语言报告诸如无法到达的代码潜在的空指针错误之类的问题 。语言设计人员可以利用数据流方面为每个概念定义流,然后MPS将使用该流来计算整个程序的数据流。

    数据流

    数据流食谱
    视频 -JetBrains MPS简介,第10部分:数据流

    类型系统

    需要对代码进行类型检查的语言需要提供类型系统规则。MPS类型系统引擎将即时评估规则,计算节点类型并报告
    错误,无论计算的类型与预期有何不同。
    可以另外定义所谓的检查规则以验证关于模型的非类型系统断言。

    类型系统

    类型系统食谱
    使用类型系统
    调试类型系统
    视频 -JetBrains MPS简介,第11部分:类型系统

    重构

    现代IDE允许开发人员通过重构无缝,完美地更改其代码结构。MPS允许语言设计人员准备这样的重构,并使它们成为其语言的一部分。

    重构

    移居

    当新的语言版本向公众发布时,必须迁移使用该语言的先前版本的项目,以便它们使用新的语言结构。 语言作者编写的迁移脚本将操纵用户代码,并自动将其更新为该语言的最新版本。

    移居

    分支迁移

    测试中

    可以自动测试语言定义的各个方面。语言作者可以创建测试,以验证其编辑者,操作,类型系统,数据流或其语言的约束是否符合规范。

    测试中

    剧本

    去做

    剧本

    配饰

    附件模型可以存储在两个位置-作为语言的一部分(推荐),或者作为解决方案下的常规模型。在这两种情况下,都需要将模型添加到“ 语言运行时语言设置”中,以便可以使用它。典型的用例是默认的Concept实例库,可在使用该语言的任何位置使用。

    配饰

  4. IDE集成 -如何自定义MPS,添加特定于语言的可视扩展,使用不同的持久性格式等。
  5. IDE工具 -MPS为您提供的用于操纵语言的工具
  6. 平台语言 -即用型即用型语言
  7. 构建MPS项目 -从命令行构建语言,Ant集成,持续集成,创建和使用插件,混淆代码
  8. 食谱 -快速入门指南
  9. 外部教程和指南

 

上次修改时间:2019年8月30日