CN1265488A - 程序执行方法 - Google Patents
程序执行方法 Download PDFInfo
- Publication number
- CN1265488A CN1265488A CN 00102806 CN00102806A CN1265488A CN 1265488 A CN1265488 A CN 1265488A CN 00102806 CN00102806 CN 00102806 CN 00102806 A CN00102806 A CN 00102806A CN 1265488 A CN1265488 A CN 1265488A
- Authority
- CN
- China
- Prior art keywords
- code
- program
- software
- executable program
- machine
- 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.)
- Granted
Links
Images
Landscapes
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明涉及一种程序执行方法,一种利用执行纯逻辑和数学命令的虚拟机来实现的一种程序执行方法,在程序执行的计算机上将该虚拟机的指令转换为该计算机上的特定的指令和对软件环境相应功能的调用,实现兼容性和速度的兼顾,并且具有更好的系统性能和更小的系统维护代价等优点。
Description
本发明涉及一种程序执行方法,具体地说,本发明是用来在不同的硬件平台和软件环境中实现程序的通用的执行方法。作为一种方法,可以解决当今世界在计算机软件技术发展和硬件技术发展之间的相互制约的问题,实现硬件平台之间和软件环境之间及软硬件环境之间的强兼容性。
今天,越来越多的人认识到,随着计算机产业的硬件技术获得飞速的发展,软件技术也获得了迅速的发展,但是由于软件技术的发展远远落后于计算机硬件技术的发展。虽然随着各种面向对象技术的发展对软件的重复使用和扩展性而言得到了很大的扩展的机会,大大地提高了程序员的生产率,但是计算机软件开发技术的现状从另外一个方面已经很大地限制了计算机硬件新技术和软件新产品的应用和发展,成为现代计算机技术发展的瓶颈。
如同每一个国家或地区都可能有自己的语言或方言一样,在计算机的硬件层或者说是机器语言层上也存在着各种各样的“语言”。虽然大家都是要完成或可以完成相同的逻辑/数学功能,但是大家使用了不同的表示方法或者说不同的机器语言。同样,虽然操作系统的知识和方法是一门科学,但是不同的操作系统有不同的“方言”,使得软件的通用性大大地降低了。
针对这种情况,下面我们来简略地分析一下一个C语言程序员要实现一个程序时的简略的过程:
首先:他要清晰所要实现的程序的功能,严格来讲就是在逻辑和数学上的功能。
其次:他要针对目标软件环境提供的方法和手段,来具体的思考在目标软件环境上的实现方法,有时侯如果目标软件环境没有提供一些特殊的方法和手段,还要考虑目标硬件平台上的可以应用的具体的实现方法。
最后:他才能够真正的开始动手去实现这个特殊的应用。而他使用的开发工具将根据他的源程序/目标软件环境/目标硬件平台生成一个在目标软件环境/目标硬件平台上的可执行程序。如果他想让他的程序可以在其他的软件环境中或硬件平台上可正确执行,那么他必须重新进行他的在上一个部分所进行过的思考。重新组织源程序,重新根据他的源程序生成一个针对新的目标软件环境和新的目标硬件平台的可执行程序。
现在让我们分析在计算机硬件技术方面的问题,虽然各种处理器的能力都越来越强,但是每种处理器的机器指令集不兼容,而所谓的高级语言的兼容只是建立在支持不同处理器的编译器的代码生成能力上,如一个为INTEL PENTIUM III处理器编译的程序,是不可能在一台INTEL 8086上运行的,虽然它们都还是INTEL公司的产品(至少有一点,它们的代码宽度不同)。
在软件环境的兼容方面以一个最简单的程序为例:
程序功能是在监视器上打印一行文字:tell you 3*4=12.然后退出。
以C语言实现:
void main()
{
int i=3*4:
printf(″tell you 3*4=%d.*,i);
}
经过C语言编译器编译成为linux系统下的可执行程序后,能够正常运行,计算出正确的结果并打印一行正确的文字,退出。但是如果将该可执行程序移植到MS-DOS系统时执行结果将是不可以预测的。
将以上的程序开发和移植过程比较人们对程序开发过程的分析似乎可以看到一些不正常的问题。就是程序开发的核心问题不应该是对某一种硬件平台或软件环境的兼容问题,而应该是程序要实现的逻辑和数学功能的完成。虽然每一种处理器都有能力实现这些功能,但是各种处理器的指令集的不兼容转移了人们的注意力,人们似乎都没有注意到需要完成的是相同的逻辑和数学功能。由于对硬件平台和软件环境开发中对不同的方面的侧重或者是对性价比的不同考虑或者是习惯或者是其它的什么原因,造成了这些不兼容的问题。
在这里我们应该考虑到硬件平台的相同点就是都能够完成逻辑和数学的功能,软件环境的相同点是它们调度接口和功能都是已知的,因此软件环境和硬件平台的不同都是既定的和可以控制的。
本发明的目的是提供一种程序执行方法,它兼容这些由于各种原因造成的在不同的计算机系统中存在的不兼容性。得到一种通用程序执行方法。可以得到各种计算机系统的支持。
本发明的目的是这样实现的:在当前占有统治地位的程序设计语言中,我们选择C/C++语言和JAVA语言为例,C/C++语言实现了挖掘硬件平台和软件环境全部功能的能力,但是它对软件环境和硬件平台的兼容性是体现在源代码层上的,这也增加了可执行代码对软件环境和硬件平台的依赖性。而JAVA语言实现了硬件平台和软件环境的独立性,但JAVA是建立在所谓的JAVA虚拟机上解释执行的,所以速度较慢且兼容性也受到了一定的限制。我们从这些的程序设计语言的编译过程中进行思考,也许可以得到某种解决方法,一般情况下语言的编译连接执行方法为两种:
A、编译型语言:如C/C++语言,在开发过程中源程序通过词法分析、语法分析、语义分析、生成中间代码、代码优化、生成可执行代码。开发过程结束。执行过程就是利用可执行代码在其他机器上运行。这个可执行代码必须是在一台兼容的计算机(包括软件环境的兼容和硬件平台的兼容)上才可以执行,如果不能兼容就不能执行。有时即使可以兼容也不能完全应用该计算机的特有的某些优势,造成硬件资源和软件资源的浪费,缺点为兼容性不好,优点是执行速度较快。
B、解释型语言:如JAVA语言,在开发过程中源程序通过词法分析、语法分析、语义分析、生成中间代码、代码优化、生成可执行中间代码。可执行中间代码一般为字节流,开发过程结束。执行过程就是利用可执行中间代码在其他机器上解释运行(对JAVA语言既是在JAVA虚拟机上的执行)。缺点为执行速度较慢,优点是兼容性比较好。
为了实现对速度和兼容性的兼顾并且充分利用软件环境和硬件平台的特点和优势,我们可以通过逻辑和数学上的虚拟机和基于通用平台的特殊软件环境的技术来实现:
本发明的基本思想和方法为:首先是在一台计算机上对源程序进行诸如词法分析、语法分析,语义分析、生成中间代码、代码优化等过程,生成包含逻辑和数学上的虚拟机代码的逻辑和数学上的执行程序。在这个过程中源程序的全部的逻辑和数学信息和与其他模块的连接信息已经进入了虚拟机可执行程序中,所以可以和后端软件包或仿真软件包联合进行调试。然后我们将该虚拟机可执行程序移植到一台具有任意的可以抽象为图1的配置的计算机上。针对该计算机的特定的硬件平台和软件环境的情况,生成最终可执行程序。这样就能充分利用该计算机的能力。这样程序就能以C语言的执行速度执行,并且具有象JAVA语言一样的可移植能力。
在这里发明人必须阐明一些名词:
1.开发机:开发实现一个应用程序时所使用的计算机系统。
2.目标机:开发的应用程序所将在其上运行的计算机系统。
3.前端编译器:在开发机上所使用的编译的源程序的编译器(包括用于连接的连接程序)程序或程序集。
4.虚代码:在这里是特指执行逻辑和数学命令的虚拟机的指令集。
5.虚代码可执行程序:在开发机上利用前端编译器所生成的包含有逻辑和数学虚拟机代码和一些软件环境功能调用及一些可能的最终可执行代码的文件或文件集。
6.后端编译器:将虚代码可执行程序转换成为目标机上特定的软件环境功能调用和最终可执行代码的转换程序或程序集。
7.最终可执行代码:能够在目标机上直接执行的代码。
8.最终可执行程序:由后端编译器对虚代码可执行程序进行转换后生成的包含特定软件环境调用和最终可执行代码的文件或文件集。
9.前端软件开发包:指包含有供前端编译器使用的功能调用的信息的文件或文件集。
10.后端软件包:指包含有相应的前端软件包中提供的功能调用的代码(及入口)的文件或文件集。
11.仿真软件包:指在一种硬件平台/软件环境中模拟另一种硬件平台/软件环境的软件包。
另:如果想在开发机上进行调试,开发机上就必须有后端软件包。
本发明的方法是这样实现的:
a.在开发过程中源程序通过词法分析、语法分析、语义分析、生成中间代码、代码优化等过程,生成包含逻辑和数学代码及对软件环境的调度接口信息的虚拟机可执行程序。一种特殊的情况是我们需要一个没有软件包支持的功能时(比如一个特殊的没有软件包支持的外部设备),就必须提供该功能的应用于将使用的目标机的C或汇编或其它任何程序设计语言的源程序,并且经过编译后产生包含能够被后端编译器所识别的最终可执行代码的文件,用于生成目标系统可执行程序。
b.这时该虚拟机可执行程序已经包括了全部的逻辑/数学信息和对软件环境的调度接口信息,可以与后端软件包联合进行程序调试。
c.执行过程之前要经过针对特定目标机硬件平台和目标软件环境的代码转化,自动完成对软件环境的接口的调用的处理工作的代码及可能的特殊功能的接口的调用的处理工作的代码。生成目标系统可执行程序,这样就可以在目标机上正常运行了。
d.这样最后的可执行程序能够在完成本身逻辑和数学的功能的前提下,充分利用目标机的软硬件资源。而且可以在系统资源管理和系统维护等方面获得优势。
本发明所阐明的通用可执行程序实现方法,包含以下这些部分:
1.一个存储了调度接口信息的装置。
2.一个能够根据语言的源程序和调度接口信息进行联编和连接的装置和一个能够根据以上的信息生成只包含逻辑和数学代码及调度接口信息的装置。
3.一个存储了调度接口实现代码的装置。
4.一个对逻辑和数学代码进行转换成为可加载的代码的装置。
5.一个能够根据目标环境转换和生成调度接口代码的装置。
本发明的优点为:在开发过程中源程序通过词法分析、语法分析、语义分析、生成中间代码、代码优化,生成逻辑和数学代码的可执行程序。这时该可执行程序已经包括了全部的逻辑/数学信息和应用程序连接信息。可以进行程序调试。执行过程之前要经过针对特定目标机硬件平台和目标软件环境的代码转化。生成目标系统可执行程序。这样最后的可执行程序能够在完成本身逻辑和数学的功能的前提下,充分利用目标机的软硬件资源;而且可以在系统资源管理和系统维护等方面获得优势。
图1是能够适应本发明的计算机硬件系统的框图。因为具体的目标系统平台信息由后端编译器进行适应,所以本发明能够适用于任何可以简化抽象为图1情况的计算机。
图2是一台实际的个人计算机的典型的配置的框图。
图3是本发明的软件开发过程简图。
图4是本发明的软件执行过程之前的代码转换和功能调配过程简图。
图5是本发明的经过代码转换和功能调配之后进行执行过程的简图。
图6是用当前的程序设计方法和流程进行一项程序设计工作的过程。
图7是应用本发明进行一项程序设计工作的过程。
下面结合附图用实施方案对本发明作进一步说明。
要理解本发明所具有的意义和它的思想,要首先理解在图1中描述的抽象的计算机系统的硬件结构,就是我们可以将计算机看成是由一个中央处理器,一个存储器供中央处理器(及外部设备)使用,还有若干的我们称为外部设备的一些硬件组成。图4显示了本发明提出的方法生成的软件在一台具有某种特定的配置的计算机上要进行的代码转换和功能调配过程生成一个针对本计算机的新的可执行程序。在图5中将使用这个新的可执行程序执行。
本发明还包括一个用于程序开发的新系统,该系统叫做商用软件平台(Business Software Platform)。本发明还提供了BSP的一些较详细的描述,以帮助理解本发明。
本发明的一个组成部分BSP技术是根据以上所阐明的方法和技术设计的一种通用的跨平台执行的技术。BSP通过利用逻辑和数学上的虚拟机技术和通用软件平台技术实现硬件平台和软件环境的通用。(在这个过程中,我们将作为BSP系统的一个部分的软件包称为软件包,而将利用BSP系统开发出来的软件包称为可执行程序包,以示区别)
BSP的组成部分:
前端部分
1.若干能够将高级语言编译生成虚拟机可执行代码的虚拟机编译器(可以是支持BSP的任意的语言如:C、C++、PASCAL、COBOL、FORTRAN等)软件包。
2.若干能够将高级语言或汇编语言(可以是C、C++、汇编等)编译生成针对各种目标机(如针对APPLE,8086,pentium III等等的)的最终可执行代码的最终可执行代码编译器软件包。
3.若干的提供了接口调用信息的前端软件开发包,可能包括有信息引入文件(如C/C++中的头文件),信息说明文件(如C/C++中的lib文件)等。
4.实现在开发机上仿真目标机硬件平台和软件环境的仿真软件包,实现在开发机上对程序针对目标平台软件环境和硬件平台的调试。
5.其它支持程序,如对一些数据进行打包生成<.data>的数据管理软件包,生成<.debug>文件的后端调试支持软件包。
6.实现对以上提及的各种软件包进行综合管理和调度等功能的软件包。
生成部分
1.由前端部分生成的可执行程序包,它可能由一个<.package>文件或者是一个<.package>文件和若干<.module>及若干<.data>及若干<.debug>文件所组成。
2.<.package>文件是可执行程序包的主文件,包含有各个模块的信息(当然也可以包含所有的其它信息),一个可执行程序包有且只有一个<.package>文件。
3.<.module>文件包含了作为本程序包的一个组成部分的详细信息,经过后端处理后可能成为一个可加载模块(如microsoft windows下的DLL或EXE或VXD文件或别的包含可加载模块的文件),也可能不是一个可加载模块,而是一个数据文件,也可能包含一个经过后端处理后就可加载的信息和其它数据。
4.<.data>文件用于保存一些数据信息(也可能需要进行转换)。
5.<.debug>文件用于保存一些在目标平台上实现对程序进行调试的功能的信息。
6.在生成部分中要包括非常大的信息量:
(1.)本可执行程序包包含了本程序包中使用的各种常量的列表,因为在不同的计算机系统中数据的表示方法可能不同;
(2.)本可执行程序包包含了提供了内部接口的软件环境和硬件平台的列表;
(3.)本可执行程序包包含了本可执行程序包的各个模块之间的引用信息;
(4.)本可执行程序包包含了本可执行程序包引用的其它的软件或可执行程序包提供的功能的信息;
(5.)本可执行程序包包含了开发人员对程序执行的目标硬件平台和软件环境的一些特殊要求(如要求硬件平台为64位以上的计算机或软件环境为多任务操作系统等等)。
后端部分
1.在目标机上进行可执行程序包和软件包管理的软件包,负责调度可执行程序包和软件包的处理和对可执行程序包和软件包进行添加、升级、移动、删除、监视等管理功能的软件包(也可以对本身进行管理,另:监视功能可以实现对一些感染可执行文件的病毒的防范等功能),称为后端包管理软件包。
2.提供了接口调用的后端软件包,后端软件包与可执行程序包实现结合的实现方式可能有很大的不同(如在Microsoft windows平台上可能转换成为对DLL的调用,也可能转换成为静态调用,当然针对不同的软件环境和硬件平台的特点差异很大)这依赖于不同的系统和可执行程序包的不同要求。
3.对虚拟机可执行代码与后端软件包及内部调用接口进行结合的软件包,产生完备的程序或程序集,称为后端连接器,是后端编译器的一部分。
4.对虚拟机可执行代码进行代码转换的软件包,实现从虚代码到本机特定代码的转换(也可能包含有优化)和生成对后端软件包和内部调用接口的具体调用代码的软件包,称为后端转换器,是后端编译器的一部分
5.对生成部分的<.data>文件进行转换的数据文件转换器软件包。
6.一个利用生成部分的<.debug>文件对虚拟机可执行文件进行调试的目标调试器软件包。
利用BSP系统开发程序的工作流程为:
第一部分:源程序部分撰写部分:撰写或使用以下部分
1.包含用任何支持BSP的语言(可以是任意的语言如C、C++、PASCAL等,只要支持BSP即可)编写源代码。
2.源程序可能引用对通用软件平台的调用接口的进行描述的针对某种程序设计语言的接口文件,类似于C/C++中的#include的头文件。
3.包含有通用平台软件调用接口的详细信息的接口描述文件包括接口功能名(或接口在包中的位置)、参数个数、参数顺序,调用约定等信息用于帮助后端编译器实现联结的具体代码,我们称为通用平台软件包的接口文件。
4.源程序还可能包含有一些用于生成最终可执行代码的语言的源代码,如果你要使用的功能在通用软件平台上没有实现,那么,你必须利用一种能够生成目标机最终可执行代码的语言撰写实现相应功能的源程序(如果想在多个平台上使用这个程序,就必须提供在多个平台上的相应的源代码)。
第二部分:前端联编
1.将上一个部分的(3)的源代码联编生成目标机上的最终可执行代码(如果想在多个平台上可以使用这个程序,就必须有相应平台上的源代码,生成该功能调用的不同平台的多个版本)和一个内部的接口信息部分。
2.根据本部分(1)的接口信息和上一个部分(1)的源代码和(2)的接口信息进行联编,生成包含内部引用信息、通用平台软件调用接口信息、虚拟机可执行代码的虚拟机可执行程序。
3.进行仿真调试修改
第三部分:后端联编(自动完成)
1.首先检查上一个部分(2)提供的虚拟机可执行程序的版本,如果本后端联编器不能够支持该版本,则不能执行。
2.检查软件开发人员对目标硬件平台和软件环境的要求能否在本机得到满足,若不能满足则不能使用。
3.还要检查该虚拟机可执行程序是否包含有内部接口信息和本机是否有能力执行该程序,如果包含有内部接口信息就要检查是否针对本机平台的接口,如果没有针对本机平台的接口而本机又不能够兼容它所提供的接口(如它为intel 8086处理器提供了接口而没有为intel pentium处理器提供接口,因为在处理器方面pentium可以兼容8086,则也能够兼容它提供的接口,反之则不可以)则本机不能执行该程序,同理,如果虚拟机可执行程序对数字的值的使用超过了0xffffffff,则对数字表示范围小于0xffffffff的计算机平台就不能执行该程序,如果虚拟可执行程序的字符集为双字节(假定每个字节8位),那么字符集宽度为单字节的计算机平台就不能执行该程序,如果目标机上没有一些必须后端软件包也不能使用该程序,同理适用于其它一些情况。
4.然后利用内部接口和本计算机的后端软件包提供的调度接口实现具体的动态或静态联编,利用虚拟机代码转换软件包生成本机的最终可执行代码.可以在BSP的包管理软件包下执行,也可以直接执行。
当然,BSP只是本发明的一个部分,是本发明的一个实施方法。
Claims (5)
1.一种程序执行方法,其特征在于:在一台计算机上对源程序进行词法分析、语法分析、语义分析、生成中间代码、代码优化过程,生成包含逻辑和数学代码及对软件环境的调度接口信息的虚拟机可执行程序。
2.根据权利要求1所述的程序执行方法,其特征在于:没有软件包支持的功能时,比如一个特殊的没有软件包支持的外部设备,就必须提供该功能的应用于将使用的目标机的C或汇编或其它任何程序设计语言的源程序,并且经过编译后产生包含能够被后端编译器所识别的最终可执行代码的文件,用于生成目标系统可执行程序。
3.根据权利要求1或2所述的程序执行方法,其特征在于:该虚拟机可执行程序已经包括了全部的逻辑/数学信息和对软件环境的调度接口信息,可以与后端软件包联合进行程序调试。
4.根据权利要求1或2所述的程序执行方法,其特征在于:执行过程之前要经过针对特定目标机硬件平台和目标软件环境的代码转换和自动完成对软件环境的接口的调用的处理工作的代码及可能的特殊功能的接口的调用的处理工作的代码;生成目标系统可执行程序,这样就可以在目标机上正常运行;最后的可执行程序能够在完成本身逻辑和数学的功能的前提下,充分利用目标机的软硬件资源。
5.一种程序执行装置,其特征在于包括:
a.一个存储了调度接口信息的装置;
b.一个能够根据语言的源程序和调度接口信息进行联编和连接的装置和一个能够根据以上的信息生成只包含逻辑和数学代码及调度接口信息的装置;
c.一个存储了调度接口实现代码的装置;
d.一个对逻辑和数学代码进行转换成为可加载的代码的装置;
e.一个能够根据目标环境转换和生成调度接口代码的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 00102806 CN1129846C (zh) | 2000-03-06 | 2000-03-06 | 程序执行方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 00102806 CN1129846C (zh) | 2000-03-06 | 2000-03-06 | 程序执行方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1265488A true CN1265488A (zh) | 2000-09-06 |
CN1129846C CN1129846C (zh) | 2003-12-03 |
Family
ID=4576573
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 00102806 Expired - Fee Related CN1129846C (zh) | 2000-03-06 | 2000-03-06 | 程序执行方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1129846C (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100573516C (zh) * | 2006-01-12 | 2009-12-23 | 鸿富锦精密工业(深圳)有限公司 | 虚拟机系统及利用该系统执行指令的方法 |
CN101963916A (zh) * | 2010-09-28 | 2011-02-02 | 中国科学院地质与地球物理研究所 | 编译处理方法及装置 |
CN102141929A (zh) * | 2010-10-21 | 2011-08-03 | 华为技术有限公司 | 应用程序的运行方法、模拟器、宿主机及系统 |
CN103365665A (zh) * | 2013-07-25 | 2013-10-23 | 成都品果科技有限公司 | 一种基于虚拟指令的应用程序移植方法 |
CN105893103A (zh) * | 2014-11-26 | 2016-08-24 | 深圳他拍档电子商务有限公司 | 编译方法及其编译器 |
CN103645929B (zh) * | 2013-12-17 | 2016-11-30 | 江西博微新技术有限公司 | 工程造价计算描述语言bcl的编译执行装置及编译执行方法 |
CN107229505A (zh) * | 2017-06-07 | 2017-10-03 | 华东师范大学 | 一种基于虚拟机的程序运行方法 |
CN107423104A (zh) * | 2017-06-09 | 2017-12-01 | 华东师范大学 | 一种基于虚拟机的程序运行系统 |
CN113805882A (zh) * | 2021-09-18 | 2021-12-17 | 上海波顿诺华智能科技有限公司 | 应用程序开发的方法、装置、电子设备及存储介质 |
-
2000
- 2000-03-06 CN CN 00102806 patent/CN1129846C/zh not_active Expired - Fee Related
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100573516C (zh) * | 2006-01-12 | 2009-12-23 | 鸿富锦精密工业(深圳)有限公司 | 虚拟机系统及利用该系统执行指令的方法 |
CN101963916A (zh) * | 2010-09-28 | 2011-02-02 | 中国科学院地质与地球物理研究所 | 编译处理方法及装置 |
CN102141929A (zh) * | 2010-10-21 | 2011-08-03 | 华为技术有限公司 | 应用程序的运行方法、模拟器、宿主机及系统 |
CN102141929B (zh) * | 2010-10-21 | 2014-05-07 | 华为技术有限公司 | 应用程序的运行方法、模拟器、宿主机及系统 |
CN103365665A (zh) * | 2013-07-25 | 2013-10-23 | 成都品果科技有限公司 | 一种基于虚拟指令的应用程序移植方法 |
WO2015010479A1 (zh) * | 2013-07-25 | 2015-01-29 | 成都品果科技有限公司 | 一种基于虚拟指令的应用程序移植方法 |
CN103645929B (zh) * | 2013-12-17 | 2016-11-30 | 江西博微新技术有限公司 | 工程造价计算描述语言bcl的编译执行装置及编译执行方法 |
CN105893103A (zh) * | 2014-11-26 | 2016-08-24 | 深圳他拍档电子商务有限公司 | 编译方法及其编译器 |
CN107229505A (zh) * | 2017-06-07 | 2017-10-03 | 华东师范大学 | 一种基于虚拟机的程序运行方法 |
CN107423104A (zh) * | 2017-06-09 | 2017-12-01 | 华东师范大学 | 一种基于虚拟机的程序运行系统 |
CN113805882A (zh) * | 2021-09-18 | 2021-12-17 | 上海波顿诺华智能科技有限公司 | 应用程序开发的方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN1129846C (zh) | 2003-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1108560C (zh) | 用于存储与多种编程语言相关的执行数据的方法和装置 | |
CN1153141C (zh) | 调试优化代码的方法和设备 | |
US6381737B1 (en) | Automatic adapter/stub generator | |
US20040230958A1 (en) | Compiler and software product for compiling intermediate language bytecodes into Java bytecodes | |
EP1178404A2 (en) | Method and system for compiling multiple languages | |
CN1641587A (zh) | 用于改进爪哇虚拟机性能的方法和系统 | |
WO2008002173A1 (en) | Method and apparatus to call native code from a managed code application | |
JP2005044347A (ja) | 拡張可能なコンパイラおよびツールのインフラストラクチャのための記述言語 | |
EP2564316B1 (en) | Resumable methods | |
CN111309292B (zh) | 一种基于MATLAB/Simulink的全模型可执行程序构建方法 | |
CN1129846C (zh) | 程序执行方法 | |
CN101030241A (zh) | 基于Keil C51的软件保护开发的方法和系统 | |
US20190187965A1 (en) | Reduced Memory Consumption of Compiler-Transformed Asynchronous Methods | |
CN1877521A (zh) | 跨操作系统的嵌入式系统板级支持包的实现方法 | |
CN100337216C (zh) | 一种软件测试方法 | |
CN100337198C (zh) | 一种移动通信设备应用程序处理系统 | |
CN112416313B (zh) | 支持大整数数据类型和运算符的编译方法 | |
CN1900905A (zh) | 测试描述语言的实现方法及其装置 | |
WO2001057654A2 (en) | Preprocessing of interfaces to allow fast call of native elements | |
CN115237390A (zh) | 一种继电保护装置逻辑图生成代码方法、装置及存储介质 | |
CN1567232A (zh) | 嵌入式系统的测试装置及测试方法 | |
CN1265569C (zh) | 一种使用脚本补丁的白盒测试系统及其测试方法 | |
CN1267818C (zh) | 将单处理器的软件程序转换为多处理器的软件程序的方法 | |
CN1945542A (zh) | 一种嵌入式软件开发的方法及系统 | |
Lopes | On the Design and Implementation of a Virtual Machine for Process Calculi |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20031203 Termination date: 20130306 |