一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于VSCode的形式化云平台方法与装置

2022-11-13 13:09:59 来源:中国专利 TAG:

一种基于vs code的形式化云平台方法与装置
技术领域
1.本发明属于形式化领域,是一种基于vs code的形式化云平台方法与装置。


背景技术:

2.web ide是随着云计算普及产生的一种概念。ide是集成开发环境的简称,通常是指用于提供程序开发环境的应用程序。传统的ide运行在本地电脑上,需要提前安装并配置好相关参数;而web ide将环境整体迁移至云服务器,只要用户有良好的网络、有合适的设备(例如一台安装了浏览器的电脑),就可以通过浏览器打开ide,并且在体验上类似于使用传统的ide。
3.当前市面上已经有一些web ide产品,如github codespaces、gitpod等,它们的问题在于:市面上的类似产品往往基于一些广泛使用的编程语言,例如c 、python、java等,迎合了使用这些语言的广大用户的需求,但难以满足形式化方法领域的需要。
4.形式化方法领域的一大需要,是借助ide内置的定理证明器等对代码进行证明,这是一个比较依赖计算机性能的工作,在配置较低的普通个人计算机上,不同代码可能需要花费几分钟乃至几天不等。将ide移动到服务器后,借助服务器的强大性能,将显著缩短所需时间,从而提高形式化工作的效率。
5.形式化领域同样存在多种形式化语言,它们有相应的ide。对于同时使用多种形式化语言的人而言,通常需要同时安装多种ide,造成了不便。
6.即使对于仅需要使用一种ide的人而言,同样可能存在不便:以isabelle prover ide这种形式化ide为例,该ide每年推出一个版本(2021年推出了2个版本),通常每个版本会伴随较大的变化,包括语法、符号等较为基础的变化,例如弃用某些关键字,启用新的关键字。这使得新版本往往对在旧版本中写的代码兼容较差,使用者可能不得不同时安装多个版本的isabelle prover ide以方便查看旧代码。
7.尽管部分ide推出了网页版、容器版等与传统ide不同的版本,例如coq推出了运行于网页的jscoq,isabelle推出了docker版,但它们存在缺点,列举如下:
[0008][0009]
本发明的技术问题在于:
[0010]
调研结果表明,现有的web ide产品难以满足形式化领域的需求,部分形式化领域的集成开发环境推出的新版本ide或不具备web ide的功能,或在扩展性等方面存在缺点,也不存在支持多种形式化语言,或者支持一种ide的不同版本的解决方案。


技术实现要素:

[0011]
本发明为了解决上述技术问题,提供了一种基于vs code的形式化云平台方法与装置。本发明是通过以下技术方案来实现的:
[0012]
本发明公开了一种基于vs code的形式化云平台方法,包括:
[0013]
s1、核验用户身份,若核验通过,返回该用户关联的所有工作空间的基本信息;若核验不通过,则拒绝后续所有请求;
[0014]
s3、接收用户打开工作空间的请求,读取基于的形式化语言模板,启动对应集成开发环境的服务;
[0015]
s4、与用户交互,使用户在这个工作空间中能进行形式化工作;
[0016]
s5、接收用户的关闭工作空间请求,关闭该工作空间。
[0017]
作为进一步地改进,本发明所述的s1中的工作空间,为用户所使用的web ide实例,包括vs code、特定插件和相应形式化语言集成开发环境的后台服务;所述的基本信息,包括工作空间的id和该工作空间创建时使用的形式化语言模板。
[0018]
作为进一步地改进,本发明所述形式化语言模板是一种镜像,包括vs code、特定插件和相应形式化语言集成开发环境,用于创建工作空间。
[0019]
作为进一步地改进,本发明所述的步骤s1和s3之间还包括s2:接收用户创建工作空间的请求,记录基于的形式化语言模板,并为该工作空间分配一个唯一的id。
[0020]
作为进一步地改进,本发明所述的用户创建工作空间的请求,信息包括基于的形式化语言模板。
[0021]
作为进一步地改进,本发明所述的s2中用户打开工作空间的请求,信息包括工作空间的id,所述的s4中用户的关闭工作空间请求,信息包括工作空间的id。
[0022]
本发明还公开了一种基于vs code的形式化云平台装置,包括
[0023]
核验单元:用于核验用户身份,若核验通过,返回该用户关联的所有工作空间的基本信息;若核验不通过,则拒绝后续所有请求;
[0024]
启动集成开发环境单元:用于接收用户打开工作空间的请求,读取基于的形式化语言模板,启动对应集成开发环境的服务;
[0025]
交互单元:用于与用户交互,使用户在这个工作空间中能进行形式化工作;
[0026]
关闭工作空间单元:用于接收用户的关闭工作空间请求,关闭该工作空间。
[0027]
作为进一步地改进,本发明所述的核验单元和启动集成开发环境单元之间还包括:
[0028]
分配id单元:接收用户创建工作空间的请求,记录基于的形式化语言模板,并为该工作空间分配一个唯一的id。
[0029]
本发明的有益效果如下:
[0030]
1)与传统的ide相比,免去了提前安装、配置参数的麻烦,用户只需良好的网络和合适的设备就能使用,便于形式化领域工作的开展和共享;
[0031]
2)与市面上已有的ide产品相比,本发明专注于形式化领域,能满足形式化方法的编程需要,提高形式化工作的效率;
[0032]
3)支持多种形式化语言,支持同一种ide的多个版本,覆盖面广;
[0033]
4)采用知名的源代码编辑器vs code的界面作为前端用户界面,让用户有熟悉感,
容易上手;
[0034]
5)vs code对插件的支持便于开发更多功能,可扩展性强;vs code支持与多个形式化方法集成开发环境通信,集成开发环境完成证明,因而通过vs code能完成多种形式化语言的证明工作。
附图说明
[0035]
图1为本发明一种实施例公开的基于vs code的形式化云平台方法流程图。
具体实施方式
[0036]
本发明的核心思想是,将一种形式化语言集成开发环境的特定版本,以及与之配套的vs code插件抽象为一种模板。在实施例中,模板是一种镜像文件,包括vs code、特定插件和相应形式化语言集成开发环境的特定版本。插件集成于vs code中,与形式化语言以及集成开发环境相关,不限定于某个插件,但应该具有与该集成开发环境通信从而辅助完成形式化工作的能力。例如,在第一个实施例中,形式化语言集成开发环境为coq proof assistant 8.15.2,插件可以是由coq社区维护的vscoq,也可以是其他能与coq proof assistant 8.15.2通信的插件。在第二个实施例中,形式化语言集成开发环境是isabelle prover ide 2020,插件应当是由官方维护的isabelle2020 extension,也可以是其他能与isabelle prover ide 2020通信的插件。
[0037]
由镜像文件可创建工作空间,即为用户所使用的web ide实例,作为一个进程运行在云平台上,包括vs code、特定插件和相应形式化语言集成开发环境的后台服务,与创建时使用的模板中的内容相对应。在实现中可使用docker等容器技术,本发明并不限制具体实现技术。
[0038]
下面结合说明书附图对本发明的技术方案作进一步的详细描述。图1为本发明一种实施例公开的系统流程图。该系统包括:用户终端和云平台,云平台部署有云服务器。用户终端可以是电脑,也可以是智能手机、平板电脑等可移动的设备。用户终端上应当安装有浏览器,且能通过网络访问云平台服务器。本发明的基于vs code的形式化云平台方法流程如下:
[0039]
s11、客户端向服务端发起请求,核验自己的身份;
[0040]
s12、服务器核验用户发送的身份校验请求,通过则返回该用户关联的所有工作空间的基本信息,作为一种示例,数据为[{id:1,template:isabelle2020}],表示该用户关联一个工作空间,该工作空间id为1,模板名为isabelle2020;否则拒绝用户的后续请求。
[0041]
s21、用户希望创建一个新的工作空间,发起创建请求,数据为{operation:create,template:coq8.15.2},表示该用户请求创建一个工作空间,模板名为coq8.15.2。
[0042]
s22、服务器接收用户的请求,记录模板为coq8.15.2,根据模板创建新的工作空间,该工作空间中启动的ide为coq proof assistant 8.15.2,并为其分配一个唯一的id。最后告诉用户操作成功,数据为{id:2},表示为该工作空间分配的id是2。
[0043]
s31、用户希望打开工作空间,发起打开请求,数据为{operation:open,id:2},表示该用户请求打开一个工作空间,该空间id为2。
[0044]
s32、服务器接收用户的请求,读取id为2的工作空间基于的模板是coq8.15.2,启
动该工作空间,该工作空间中启动的ide为coq proof assistant 8.15.2。
[0045]
s4、服务器与用户交互,使用户在这个工作空间中能进行形式化工作。
[0046]
s51、用户关闭工作空间,向服务器发送关闭工作空间请求,数据为{id:2},表示该工作空间的id是2。
[0047]
s52、服务器接收用户的关闭工作空间请求,关闭工作空间。
[0048]
在s4过程中,根据具体需要,服务器可能要执行多种命令。
[0049]
在第二个实施例中,s1、s4、s5相同,但用户不创建新的工作空间,而是只打开已有的工作空间,即跳过s2。在s3中,用户选择打开已有的id为1基于isabelle2020的工作空间。因而过程如下:
[0050]
s31、用户希望打开工作空间,发起打开请求,数据为{operation:open,id:1},表示该用户请求打开一个工作空间,该空间id为1。
[0051]
s32、服务器接收用户的请求,读取id为1的工作空间的模板名是isabelle2020,启动该工作空间,该工作空间中启动的ide为isabelle prover ide 2020。
[0052]
通过实施例可见,在这两个实施例中,用户在创建工作空间前必须先选择模板,选择的模板名将被服务器记录。而每个模板都对应一种形式化语言集成开发环境的特定版本,以及与之配套的vs code插件。因此通过模板名就可以确定该工作空间对应的ide以及版本,使得用户能在该工作空间里进行相应形式化工作。插件的选择相对灵活,既可以选择官方维护的插件,也可以选择具有类似功能的插件,但必须能与该版本的形式化ide进行通信,从而辅助进行形式化工作。具体使用的插件可以体现在模板名等信息中,也可以不体现,使用默认值,本发明并不限制。插件的灵活选择能为形式化工作提供更好的扩展性。
[0053]
如果用户希望使用其他形式化ide,或者使用同一形式化ide的不同版本,既可以创建新的基于不同模板的工作空间,也可以通过某种方式修改当前工作空间的模板名,关闭并再次打开工作空间,服务器将根据新的模板名启动相应版本的ide和插件。本专利并不限制具体实现方法,实现方法也不限于以上两种。
[0054]
本发明还公开了一种基于vs code的形式化云平台装置,包括
[0055]
核验单元:用于核验用户身份,若核验通过,返回该用户关联的所有工作空间的基本信息;若核验不通过,则拒绝后续所有请求;
[0056]
分配id单元:接收用户创建工作空间的请求,记录基于的形式化语言模板,并为该工作空间分配一个唯一的id;
[0057]
启动集成开发环境单元:用于接收用户打开工作空间的请求,读取基于的形式化语言模板,启动对应集成开发环境的服务;
[0058]
交互单元:用于与用户交互,使用户在这个工作空间中能进行形式化工作;
[0059]
关闭工作空间单元:用于接收用户的关闭工作空间请求,关闭该工作空间。
[0060]
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献