CN109871284A - 一种应用程序跨语言运行时环境执行的虚拟化技术及方法 - Google Patents
一种应用程序跨语言运行时环境执行的虚拟化技术及方法 Download PDFInfo
- Publication number
- CN109871284A CN109871284A CN201711263865.7A CN201711263865A CN109871284A CN 109871284 A CN109871284 A CN 109871284A CN 201711263865 A CN201711263865 A CN 201711263865A CN 109871284 A CN109871284 A CN 109871284A
- Authority
- CN
- China
- Prior art keywords
- language
- function
- interface
- intermediate code
- standard
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
一种应用程序跨语言运行时环境执行的虚拟化技术及方法,属于一种新的程序制作和程序运行机制,本发明包括一个程序制作工具和一个应用程序跨语言运行时环境虚拟机,该技术使用统一的中间语言编写应用软件,编译器将应用程序翻译成字节码,字节码使用关系表存储,以函数为关键字存储,并且通过不同宿主语言环境上的解释器,无差别的解释执行;本发明意在使应用程序和执行环境分离,及应用逻辑与软件分离的办法,达到实现应用的可继承性的目的;通过软件执行环境虚拟化,打造应用程序的执行环境无边界性,打破当前信息技术存在的应用孤岛和信息孤岛的格局;同时通过统一的中间语言编程,实现技术人员技术经验的可继承性。
Description
技术领域
本发明涉及应用程序虚拟化技术及方法。
背景技术
软件是信息技术中的基本运行单位,随着信息技术的发展,各类应用软件层出不穷,各种软件开发技术种类繁多,开发语言也是多种多样,目前语言层面的开发技术主要有c,c++,java,python,php,c#,js等,其中每种语言本身都有自己的专长,再加上随着互联网的发展,各语言在相关领域的发展研究,形成了自己独有的生态圈,如java在移动平台Android上的突出贡献,php对构建轻量级web系统的优势,以及python语言在人工智能领域的作用,随着互联网纵深细分领域的发展,语言也各自发展了自己一些独特的功能和框架。技术上的独立性逐渐加强,这为专门领域开发提供的便捷的方式,但是同时也给软件开发技术的学习以及软件自生的升级、维护以及功能点的开放共享增加了难度。
上述信息技术领域的现状导致的问题:
1.开发经验继承性差,由于开发技术更新换代以及软件要求的技术选型,开发人员需要耗费大量的学习时间,才能适应某项新技术;
2.软件功能继承性差,各家应用软件技术的不同,使得现有软件功能的复用性很差,重复开发造成许多浪费;
3.数据继承性差,应用孤岛和数据孤岛问题,造成目前信息技术领域数据的合理继承使用的诸多障碍。
发明内容
本发明就是为了解决上述问题,提出了一种软件技术及方法,凡是通过本发明技术制作软件,一方面,使用统一的中间语言编程,开发者无需学习多种编程技巧,便可以开发出适用各种语言运行时的应用软件,提高技术人员技术经验的继承性;另一方面,通过本发明技术制作的应用程序,互相之间轻松的无障碍的共享应用程序中的基本功能,应用程序的功能,能够以复制或者迁移的方式,安装到另外一个软件中使用,提高软件功能的继承性;再者,使用本发明技术开发的软件,其数据、算法和功能模块将使用统一标准的接口,加上程序功能继承性,可以使得数据可利用性大大提高。本发明专利最终实现在信息技术领域,构造出一个无边界的应用程序环境和无边界的数据环境,构造一个统一的多元化的大数据应用环境。
为了实现上述目的,本发明采取以下方案。
一种应用程序跨语言运行时环境执行的虚拟化技术及方法,其特征是该技术包括一个程序制作工具和一个跨语言运行时虚拟机构成。
所述程序制作工具包括文本编辑器,本地标准库,远程共享库,语法检测器,中间码生成器,逻辑检测器。
所述编辑器就是普通的在线文本编辑工具,用来编写软件代码。
所述本地标准库是编辑器自带的标准的应用函数库。
所述远程共享库是通过共享服务器提供的共享函数库。
所述语法检测器是用来检测编写代码的合法性。
所述中间码生成器是将标准接口与标准逻辑生成解释器需要的中间码。
所述路逻辑检测器是测试生成的字节码是否正确。
所述中心的数据共享服务器是用来处理共享信息的分类、存储、检索。
所术跨语言运行时虚拟机,其特征是,在不同语言运行时中,结构包括中间码管理器、解释器、共享资源管理器、宿主语言库、宿主语言扩展库、宿主语言运行时库;跨语言运行时虚拟机使用宿主语言编写生产,以适应宿主语言运行时环境;跨语言运行时虚拟机对同一段中间码的执行效果是无差别的。
所述中间码管理器,即对中间语言编译通过后生成的中间码的存储、查询、删除、分享等功能。
所述中间码,其特征是,包括标准接口、标准执行逻辑。
所述标准接口,其作用一个是执行逻辑的唯一标识,程序通过标准接口,找到执行逻辑,标准接口另一个作用是应用对外开放的用于交互的远程调用API名称。
所述标准执行逻辑的作用是函数的执行体。
所述标准库的作用是提前封装好的具有固定作用的函数库。
所述解释器是用来将中间码翻译成宿主语言并且执行的工具。
所述中间码,及中间语言编译之后的执行码,中间码以函数为单位,在不同语言环境中使用统一格式数据存储。
所述宿主语言是目前流行的各种开发语言,包括java,c#,c++,c,js,go等等。
所述接口管理器是用来管理标准接口的,包括接口的访问权限:开放,不开放以及接口的访问方式:收费、免费。
所述共享资源管理器是用来访问和管理共享服务器上的共享资源的,可以查找需要的资源并且引用或者删除共享资源,共享资源管理器的搜索功能,可以搜索到共享服务器上的不同类型的共享资源,资源类型包括数据信息类、网页应用、算法的标准接口和应用的功能模块接口。
所述宿主语言库是宿主语言本身的函数库。
所述宿主语言扩展库的作用是补充和丰富宿主语言库。
所述宿主语言运行时的作用是软件在具体操作系统的上的执行程序。
所述标准接口,包括:注释,关键字,接口名,输入参数,输出参数,配置参数,标准执行逻辑。
所述注释的作用是对接口的描述。
所述关键字的作用是定义接口类型。
所述接口名的作用是接口的唯一标识。
所述输入参数是调用接口时传递的参数。
所述输出参数是接口执行结果返回参数。
所述配置参数是配置接口的属性,规范接口执行时的行为。
所述标准执行逻辑是接口对应的处理过程,即函数的执行体。
一种互联网信息及技术共享的平台,该共享平台的信息共享服务器,其特征是由共享信息分类器,信息处理器,共享信息查询器。
所述信息分类器的作用根据信息关键字区分信息类别。
所述信息处理器是将分类的信息保存到数据库或者文件中,也可以执行修改与删除任务。
所述共享信息查询器是用来检索用户请求的指定信息并且返回给用户。
本发明的思想是通过统一的中间语言以及中间语言解释器,构造应用程序的在不同语言运行时环境中无差别运行,将中间语言编写的程序,通过解释器解释执行的方式,扩展到不同类型的程序语言运行时环境中,使用统一的标准语言,解决技术经验的继承性;另外,中间语言编译生成的中间码使用统一的数据格式存储到文件或者数据库中,使得程序的应用逻辑以统一格式的数据形式存储,这样就实现了应用程序与执行软件分离,可以使同一个应用软件或者软件里的基本功能,可以以数据流的形式,在不同的软件之间实现迁移,解决应用程序基本功能的继承性;由于应用使用统一的标准接口,第三方软件使用远程接口调用的方式或者使用软件基本功能迁移的方式,解决应用程序共享,其中远程共享使得数据共享无障碍。本发明的创新点在于:创造性的使用跨语言运行时环境虚拟技术,并且在不同执行环境中,中间码使用统一格式的数据保存,解释器保证中间码在不同语言运行时环境中无差别的执行,使得应用与软件分离;同时,中间码保存方式以函数为单位保存,中间码中的函数以及函数之间的调用关系都得到记录,这也使得应用与函数分离。这样应用可以在不同的软件之间转移,实现应用的跨软件执行,也是应用实现跨运行时环境执行,是构造应用的无边界执行的环境基础。
附图说明
图1为跨语言虚拟技术架构图。
具体实施方式
以下结合附图与实施例对本发明做进一步说明。
实施例1应用程序与执行环境分离以及应用程序与执行函数分离方法介绍。
应用与执行环境的分离以及应用程序与执行函数分离,是实现应用程序跨语言虚拟技术的关键技术也是直接目的,是实现应用继承与技术经验继承的基础;使得应用或者函数得到充分的无障碍的共享,下面介绍如和实现这两种分离。
第一步:中间语言编译器将中间语言代码编译成中间码。
第二步:中间码管理器将以应用程序的计算单元函数为单位,记录函数的注释、名称、参数、执行体等所有信息,并且记录函数之间的调用关系,同时中间码使用统一的数据格式保存,由于中间码以函数为单位,并且使用统一数据格式存储,这样,函数与应用是分离的,函数可以供不同的应用调用,无差别执行,解决应用与函数分离。
第三步:将应用划分若干个独立应用单元,每个应用单元使用唯一标识,使用独立应用单元唯一标识关联入口函数,若干个独立应用单元构成整个应用程序。
第四步:由于第二步中中间码以函数为单位,在不同的语言环境中,都使用统一的数据格式存储,这样便可以实现在不同的语言环境下,使得中间码可以无差别的执行,所以可以由第三步操作形成的以独立应用单元位单位,可以是1个独立应用单元,可以是整个应用程序所有独立应用单元,通过每个独立应用单元的入口函数,以及通过入口函数与其他函数的调用关系,将所需的所有函数及其注释、名称、参数、执行体等所有信息提取出来,将提出出来的应用通过网络数据流的方式,迁移到安装了不同语言运行时虚拟执行环境中。
第五步:迁移到的目标程序将接收的程序保存成本地中间码,这样就完成整个迁移过程,也就是应用程序与软件执行环境分离的实现。
第六步:通过宿主语言解释器(跨语言虚拟机)无差别的执行逻辑解释执行,便实现了应用与软件分离,即解决了应用的继承性。
Claims (7)
1.一种应用程序跨语言运行时环境执行的虚拟化技术及方法,其特征是包括一个程序制作工具和一个跨语言应用虚拟机构成;
所述软件制作工具包括文本编辑器,本地标准库,远程共享库,语法检测器,中间码生成器,逻辑检测器;
所述编辑器就是普通的在线文本编辑工具,用来编写程序代码;
所述本地标准库是编辑器自带的标准的应用函数库;
所述远程共享库是通过共享服务器提供的共享函数库;
所述语法检测器是用来检测编写代码的合法性;
所述中间码生成器是将标准接口与标准逻辑生成解释器需要的中间码;
所述路逻辑检测器是测试生成的字节码是否正确;
所述中心的数据共享服务器是用来处理共享信息的分类、存储、检索;
所述中间码管理器,即对中间语言编译通过后生成的中间码的存储、查询、删除、分享等功能;
所述中间码,其特征是,包括标准接口、标准执行逻辑;
所述标准接口,其作用一个是执行逻辑的唯一标识,程序通过标准接口,找到执行逻辑,标准接口另一个作用是应用对外开放的用于交互的API名称;
所述标准执行逻辑的作用是软件程序中业务逻辑部分,及函数的执行体;
所述标准库的作用是提前封装好的具有固定作用的函数库;
所术跨语言运行时虚拟机,其特征是,在不同语言运行时中,结构包括中间码管理器、解释器、共享资源管理器、宿主语言库、宿主语言扩展库、宿主语言运行时库;跨语言运行时虚拟机使用宿主语言编写生产,以适应宿主语言运行时环境;跨语言运行时虚拟机对同一段中间码的执行效果是无差别的;
所述解释器是用来将中间码翻译成宿主语言并且执行的工具;
所述中间码,及中间语言编译之后的执行码,中间码以函数为单位,在不同语言环境中使用统一格式数据存储;
所述宿主语言是目前流行的各种开发语言,包括java,c#,c++,c,js,go等等;
所述接口管理器是用来管理标准接口的,包括接口的访问权限:开放,不开放以及接口的访问方式:收费、免费;
所述共享资源管理器是用来访问和管理共享服务器上的共享资源的,可以查找需要的资源并且引用或者删除共享资源,共享资源管理器的搜索功能,可以搜索到共享服务器上的不同类型的共享资源,资源类型包括数据信息类、网页应用、算法的标准接口和应用的功能模块接口;
所述宿主语言库是宿主语言本身的函数库;
所述宿主语言扩展库的作用是补充和丰富宿主语言库;
所述宿主语言运行时的作用是软件在具体操作系统的上的执行程序;
所述标准接口,包括:注释,关键字,接口名,输入参数,输出参数,配置参数,标准执行逻辑;
所述注释的作用是对接口的描述;
所述关键字的作用是定义接口类型;
所述接口名的作用是接口的唯一标识;
所述输入参数是调用接口时传递的参数;
所述输出参数是接口执行结果返回参数;
所述配置参数是配置接口的属性,规范接口执行时的行为;
所述标准执行逻辑是接口对应的处理过程,即函数的执行体;
一种互联网信息及技术共享的平台,该共享平台的信息共享服务器,其特征是由共享共享信息分类器,信息处理器,共享信息查询器;
所述信息分类器的作用根据信息关键字区分信息类别;
所述信息处理器是将分类的信息保存到数据库或者文件中,也可以执行修改与删除任务;
所述共享信息查询器是用来检索用户请求的指定信息并且返回给用户。
2.如权利要求1所述一种应用程序跨语言运行时环境执行的虚拟化技术及方法,其特征是,使用统一的中间语言编程,中间语言编译生成中间码,中间码由本发明的跨编程语言应用的虚拟技术中的虚拟机解释器解释执行,类似java语言编译生成的字节码,用于jvm解释执行一样。
3.如权利要求1所述一种应用程序跨语言运行时环境执行的虚拟化技术及方法,中间语言编译生成中间码,其特征是,中间码以函数为单位存储,包括函数注释、名称、参数、执行过程以及函数之间的调用关系。
4.一种应用程序跨语言运行时环境执行的虚拟化技术及方法,其特征是,应用程序与软件的执行环境分离,应用层与软件层无关,可以以独立应用程序为单位迁移到其他安装有本法明的序跨编程语言环境执行虚拟机的软件中,无差别的执行。
5.如权利要求3所述,一种应用程序跨语言运行时环境执行的虚拟化技术及方法,其特征是,由于中间码以函数为单位存储,应用程序与构成应用程序的函数分离,同一个函数,可以作为多个应用的执行逻辑,并不是与某个特定的应用绑定在一起成为这个应用特有的功能,函数也可以迁移到其他安装有本法明的序跨编程语言环境执行虚拟机的软件中,无差别的执行。
6.一种应用程序跨语言运行时环境执行的虚拟化技术及方法,其特征是,使用宿主语言运行时环境解释器将中间语言生成的中间码,在不同语言运行时中,无差别的执行。
7.一种应用程序跨语言运行时环境执行的虚拟化技术及方法,其特征是,中间码的调用,可以使用统一标准接口API的方式远程调用,也可以使用迁移的方式在本地调用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711263865.7A CN109871284A (zh) | 2017-12-05 | 2017-12-05 | 一种应用程序跨语言运行时环境执行的虚拟化技术及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711263865.7A CN109871284A (zh) | 2017-12-05 | 2017-12-05 | 一种应用程序跨语言运行时环境执行的虚拟化技术及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109871284A true CN109871284A (zh) | 2019-06-11 |
Family
ID=66916005
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711263865.7A Pending CN109871284A (zh) | 2017-12-05 | 2017-12-05 | 一种应用程序跨语言运行时环境执行的虚拟化技术及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109871284A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110287001A (zh) * | 2019-06-18 | 2019-09-27 | 山东工商学院 | 程序合成虚拟机 |
CN111176961A (zh) * | 2019-12-05 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 一种应用程序测试方法、装置及存储介质 |
CN111651156A (zh) * | 2020-06-04 | 2020-09-11 | 广州鲁邦通物联网科技有限公司 | 一种适配多种开发语言的软件开发工具包和调用方法 |
CN113703779A (zh) * | 2021-09-06 | 2021-11-26 | 武汉市字节码科技有限公司 | 一种跨平台的多语言编译方法和超轻量物联网虚拟机 |
WO2022006810A1 (zh) * | 2020-07-09 | 2022-01-13 | 深圳市汇顶科技股份有限公司 | 一种数据管理方法、装置、电子元件以及终端设备 |
WO2023061452A1 (zh) * | 2021-10-14 | 2023-04-20 | 华为技术有限公司 | 语言互操作方法、装置、存储介质及程序产品 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102880452A (zh) * | 2012-02-01 | 2013-01-16 | 日照市国软软件有限公司 | 一种可跨语言重用的编程语言 |
CN104636147A (zh) * | 2015-03-09 | 2015-05-20 | 北京恒华伟业科技股份有限公司 | 一种跨平台移动应用的实现方法和系统 |
CN104778071A (zh) * | 2015-04-02 | 2015-07-15 | 谢玮琦 | 智能规则多语言类型解释系统及其创建方法 |
CN104899010A (zh) * | 2014-03-04 | 2015-09-09 | 北京金山云网络技术有限公司 | 源代码的多语言化方法及系统 |
CN106155755A (zh) * | 2015-06-03 | 2016-11-23 | 上海红神信息技术有限公司 | 程序编译方法和程序编译器 |
CN106933610A (zh) * | 2015-12-30 | 2017-07-07 | 北京金山安全软件有限公司 | 一种应用程序安装包生成方法、装置及电子设备 |
CN107391133A (zh) * | 2017-07-18 | 2017-11-24 | 沙洲职业工学院 | 一种应用程序生成器 |
-
2017
- 2017-12-05 CN CN201711263865.7A patent/CN109871284A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102880452A (zh) * | 2012-02-01 | 2013-01-16 | 日照市国软软件有限公司 | 一种可跨语言重用的编程语言 |
CN104899010A (zh) * | 2014-03-04 | 2015-09-09 | 北京金山云网络技术有限公司 | 源代码的多语言化方法及系统 |
CN104636147A (zh) * | 2015-03-09 | 2015-05-20 | 北京恒华伟业科技股份有限公司 | 一种跨平台移动应用的实现方法和系统 |
CN104778071A (zh) * | 2015-04-02 | 2015-07-15 | 谢玮琦 | 智能规则多语言类型解释系统及其创建方法 |
CN106155755A (zh) * | 2015-06-03 | 2016-11-23 | 上海红神信息技术有限公司 | 程序编译方法和程序编译器 |
CN106933610A (zh) * | 2015-12-30 | 2017-07-07 | 北京金山安全软件有限公司 | 一种应用程序安装包生成方法、装置及电子设备 |
CN107391133A (zh) * | 2017-07-18 | 2017-11-24 | 沙洲职业工学院 | 一种应用程序生成器 |
Non-Patent Citations (1)
Title |
---|
刘磊: "软构建集成框架的研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110287001A (zh) * | 2019-06-18 | 2019-09-27 | 山东工商学院 | 程序合成虚拟机 |
CN111176961A (zh) * | 2019-12-05 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 一种应用程序测试方法、装置及存储介质 |
CN111176961B (zh) * | 2019-12-05 | 2022-03-29 | 腾讯科技(深圳)有限公司 | 一种应用程序测试方法、装置及存储介质 |
CN111651156A (zh) * | 2020-06-04 | 2020-09-11 | 广州鲁邦通物联网科技有限公司 | 一种适配多种开发语言的软件开发工具包和调用方法 |
WO2022006810A1 (zh) * | 2020-07-09 | 2022-01-13 | 深圳市汇顶科技股份有限公司 | 一种数据管理方法、装置、电子元件以及终端设备 |
CN113703779A (zh) * | 2021-09-06 | 2021-11-26 | 武汉市字节码科技有限公司 | 一种跨平台的多语言编译方法和超轻量物联网虚拟机 |
CN113703779B (zh) * | 2021-09-06 | 2024-04-16 | 王喆 | 一种跨平台的多语言编译方法和超轻量物联网虚拟机 |
WO2023061452A1 (zh) * | 2021-10-14 | 2023-04-20 | 华为技术有限公司 | 语言互操作方法、装置、存储介质及程序产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109871284A (zh) | 一种应用程序跨语言运行时环境执行的虚拟化技术及方法 | |
Köhler et al. | Modelling mobility and mobile agents using nets within nets | |
Balci | Requirements for model development environments | |
CN102520944B (zh) | Windows应用程序虚拟化的实现方法 | |
KR20230124104A (ko) | 자연 솔루션 언어 | |
Cabri et al. | Role-based software agent interaction models: a survey | |
CN107656726A (zh) | 一种互联网信息及技术共享平台及方法 | |
US20200202265A1 (en) | Automated parenting of work items in a resource management structure | |
Gruner | Mobile agent systems and cellular automata | |
Arronategui et al. | Towards an architecture proposal for federation of distributed DES simulators | |
US11726748B2 (en) | Developing a software product in a no-code development platform to address a problem related to a business domain | |
CN110083339A (zh) | 一种新型计算机编程语言 | |
Heckel et al. | Visual smart contracts for DAML | |
Durán et al. | Automated composition, analysis and deployment of IoT applications | |
Zhao | Interaction design system for artificial intelligence user interfaces based on uml extension mechanisms | |
Swain | Object-oriented analysis and design through unified modeling language | |
Froehlich | Hooks: an aid to the use of object-oriented frameworks | |
Jo et al. | A BDI agent-based software process. | |
Kiswani et al. | Using metadata in optimizing the design and development of enterprise information systems | |
Kurniawan | Towards Migrating from Monolithic-Based Web Application to Micro Service: A Case Study of ezScrum Product Backlog | |
Zhang et al. | Modeling of web service development process based on MDA and procedure blueprint | |
Sprogis | Configuration language for domain specific modeling tools and its implementation | |
Betts et al. | Dependency injection with unity | |
Ramgir et al. | Java 9 High Performance: Practical techniques and best practices for optimizing Java applications through concurrency, reactive programming, and more | |
Starr et al. | A Simple Executable Model |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190611 |