standard library
(19)中华 人民共和国 国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210007768.6 (22)申请日 2022.01.05 (71)申请人 优刻得科技股份有限公司 地址 200090 上海市杨 浦区隆昌路619号 10#B号楼201室 (72)发明人 李宇飞 苏明生  (74)专利代理 机构 上海华诚知识产权代理有限 公司 313 00 代理人 崔巍 (51)Int.Cl. G06F 8/30(2018.01) G06F 40/30(2020.01) (54)发明名称 一种面向云开 发的语言工作台、 电子 设备以 及存储介质 (57)摘要 本发明属于编程语 言技术领域, 具体公开了 一种面向云开发的语言工作台以及电子设备和 存储介质。 该语言工作台包括: 解析器, 用于将所 述源文件解析为语义模型, 并将所述语义模型序 列化为语义模型流; 持久化存储服务, 用于接收 所述语义模 型流, 根据所述语义模 型流重建所述 语义模型并保存到外部存储器中; 生成器, 向所 述持久化存储服务发起请求 以获取所述语义模 型, 并根据所述语义模型生成所述目标程序。 本 发明的优点在于语言工作台可以通过元编程语 言的持久化抽象表示, 生 成语言工作台自身所需 的投影编辑器以及为该企业开发软件所需的软 件工具。 权利要求书1页 说明书8页 附图3页 CN 114371834 A 2022.04.19 CN 114371834 A 1.一种面向云开发的语言工作台, 其特征在于, 用于将基于元编程语言编写的源程序 解析为目标程序, 包括: 解析器, 用于将所述源文件解析为语义模型, 并将所述语义模型序列化 为语义模型流; 持久化存储服务, 用于接收所述语义模型流, 根据所述语义模型流重建所述语义模型 并保存到 外部存储器中; 生成器, 向所述持久化存储服务发起请求以获取所述语义模型, 并根据所述语义模型 生成所述目标程序。 2.如权利要求1所述的语言工作台, 其特征在于, 所述源文件包括使用元编 程语言本身 编写的文件, 还 包括使用由所述元编程语言描述的领域特定语言编写的文件。 3.如权利要求1所述的语言工作台, 其特征在于, 所述外部存储器包括网络存储服务 器。 4.如权利要求1所述的语言工作台, 其特征在于, 所述持久化存储服务还用于解析所述 语义模型之间的拓扑 结构以获取拓扑图。 5.如权利要求4所述的语言工作台, 其特征在于, 当所述生成器请求获取所述语义模型 时, 所述持久化存储服务将所述拓扑图序列化为拓扑图流, 所述生成器对所述拓扑图流反 序列化, 从而获取 所述语义模型。 6.如权利要求4所述的语言工作台, 其特征在于, 所述持久化存储服务根据所述拓扑图 查询所述领域特定语言所描述的信息, 并在响应所述生成器的请求时将所述信息附加在所 述拓扑图中。 7.如权利要求1所述的语言工作台, 其特征在于, 所述生成器还根据所述语义模型生成 用于云开 发的软件工具, 所述软件工具用于辅助使用元编程语言以及由所述元编程语言描 述的领域特定语言来编写所述源程序。 8.如权利要求1所述的语言工作台, 其特征在于, 所述生成器还根据所述语义模型生成 投影编辑器, 所述投影编辑器接受多种编辑模式以对所述源程序进行编辑。 9.如权利要求8所述的语言工作台, 其特征在于, 对于以所述多种编 辑模式所编 辑的所 述源程序, 所述 解析器在解析 过程中产生遵循相同规则的中间表示。 10.一种电子设备, 其特 征在于, 包括: 存储器, 是所述电子设备的存 储器之一, 用于存 储计算机指令; 处理器, 是所述电子设备的处理器之一, 当所述电子设备执行所述计算机指令时, 实现 如权利要求1 ‑9中任一项所述的语言工作台。 11.一种计算机可读的存储介质, 其特征在于, 所述存储介质上存储有指令, 所述指令 在计算机上 执行时, 所述计算机执 行如权利要求1 ‑9中任一项所述的语言工作台。权 利 要 求 书 1/1 页 2 CN 114371834 A 2一种面向云 开发的语言工作台、 电子 设备以及存 储介质 技术领域 [0001]本发明涉及编程语言技术领域, 尤其涉及了一种面向云开发的语言工作 台、 电子 设备以及存 储介质。 背景技术 [0002]语言工作台是一种面向语言的编程技术, 由Martin  Fowler于2005年提出。 总的来 说, 语言工作台是一种专用的IDE(Integrated  Development  Environment, 集成开发环 境), 用于定义和构建DSL(Domain ‑Specific  Language, 领域特定语言)。 具体的讲, 语言工 作台不仅用来确定D SL的语言结构, 同时也 提供编写D SL脚本的编辑环境。 [0003]其中, DSL指的是专注于某个应用 程序领域的计算机语言。 又可译作领域专用语 言。 不同于大家更为熟悉的普通的、 跨领域的GPL(General  Purpose Language, 通用编程语 言), 领域特定语言与使用环境更密切相关, 只能用在某些特定的领域, 比如用来显示网页 的HTML。 [0004]现有的典型语言工作台(如JetBrain  MPS和XText)中, 用户都需要下载并使用一 个专用的图形化界面的投影编辑器。 该投影编辑器也称为结构化编辑器, 可以是任何了解 文档底层结构的文档编辑器。 结构编辑器可用于编辑层次或标记文本、 计算机程序、 图表、 化学公式以及任何其他类型 的内容, 这些内容具有清晰且定义良好的结构。 在当今企业内 部的复杂系统集成场景下, 过度依赖图形化的投影编辑器是一个极大 的痛点, 会对大规模 系统集成产生障碍, 并存在供应商锁定的风险。 因为, 在不同的语言工作台之间没有交换的 标准, 如果您想更改当前的语言工作台, 这将意味着需要重新设计一个 语言工作台。 [0005]另外, 对于用于云开发的软件工具领域来说, 典型的语言工作 台往往完全在客户 端运行, 但在云开发场景下, 用户常常希望投影编辑、 代码生成等阶段, 都可以运行在服务 器或CI&CD(Continu ous Integration&Continu ous Delivery持续集成和持续交付)流水线 中。 因此需要重新设计新的元编程语言、 投影编辑器以及代码生成器的形态, 以适应新的业 态环境。 发明内容 [0006]为了解决上述缺陷, 提高语言工作 台的灵活性, 使领域专家作为非专业的程序员 可以深度参与到对DSL定义过程中, 从而使本领域内的用户对于DSL的使用将更加得心应 手。 根据本发明的一些实施例, 提供了一种面向云开发的语言工作台、 存储介质及电子设 备。 [0007]本发明首先提出了一种面向云开发的语言工作台, 用于将基于元编程语言编写的 源程序解析为目标程序, 包括: [0008]解析器, 用于将所述源文件解析为语义模型, 并将所述语义模型序列化为语义模 型流; [0009]持久化存储服务, 用于接收所述语义模型流, 根据所述语义模型流重建所述语义说 明 书 1/8 页 3 CN 114371834 A 3

PDF文档 专利 一种面向云开发的语言工作台、电子设备以及存储介质

文档预览
中文文档 13 页 50 下载 1000 浏览 0 评论 0 收藏 3.0分
温馨提示:本文档共13页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 一种面向云开发的语言工作台、电子设备以及存储介质 第 1 页 专利 一种面向云开发的语言工作台、电子设备以及存储介质 第 2 页 专利 一种面向云开发的语言工作台、电子设备以及存储介质 第 3 页
下载文档到电脑,方便使用
本文档由 SC 于 2024-02-18 22:34:02上传分享
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。