把不同源语言转移到一个执行介质制造技术

技术编号:2880934 阅读:196 留言:0更新日期:2012-04-11 18:40
本发明专利技术在单一执行介质中自动执行若干个用相应的执行介质专用的源语言编写的程序,而不把程序员局限于用于相应的执行介质类型的单一的源语言。每一个程序都编译成用代表这些源语言的最小子集的中间语言表达的程序。在诸如智能卡等数据处理装置中,执行介质是专用于中间语言的。中间语言程序装入相应的程序库,所述程序库使各源语言适用于所述中间语言,以便在所述执行介质中执行中间语言程序。(*该技术在2020年保护过期,可自由使用*)

【技术实现步骤摘要】
本公开基于1999年6月4日提交的法国专利申请No.9907239,并由此请求优先权,其内容附此作参考。因而本专利技术还针对数据处理装置的开放性。本专利技术涉及为诸如java卡和其他智能卡操作系统等可编程数据处理装置编写的应用程序的互操作性。互操作性还附带有安全方面的要求。在可编程智能卡领域里,每一种用以编写准备装入一种卡中的应用程序的编程源语言都是与特定的执行介质紧密联系的,后者一般具软件性质,诸如虚拟机等,但还具有硬件性质,例如微处理器等。为了能够把一个程序装入智能卡,对用给定的源语言编写的程序加以编译,然后装入准备接收用所述给定源语言编写的程序的智能卡。所述卡接收编译后的程序并由专门用来执行最初用所述给定源语言编写的程序的执行介质执行。如附图说明图1所示,每一种智能卡Cn都含有各自的执行介质SEn,它不同于其他智能卡C1至CN中的那些执行介质SE1至SEN。1和N之间的整数n标志若干种源语言LS1至LSN中预定的语言。每一个卡Cn,只有在它们是用各自的源语言LSn编程时,才可以执行应用程序Pn。在对准备装入的程序进行编译之前,程序经过代码校验,以便检查准备装入的程序是否并未破坏与所述源语言LSn相关的执行介质SEn所提供的保密特点。事实上,在这样的一组卡中,在以下背景下用给定源语言开发的程序Pn与目标执行介质SEn紧密联系1)由源语言LSn提供的数据结构和操作是专门的,以便编译出对源语言LSn专用的执行介质SEn而言在大小和速度上优化的表达;2)由源语言LSn提供的程序库BPn一般与源语言相关,并针对专用于所述源语言的执行介质进行了优化;而且3)程序Pn在其装入卡Cn之前的校验与由所述目标执行介质Sen提供的保密特点紧密联系。源语言LSn与其执行介质Sen之间的这种紧密联系表现在校验、编译和装入链CVCCn上。这个链管理着用高级源语言编写的程序Pn向准备好由专用于源语言LSn的执行介质SEn有效执行的紧凑形式的变换。本专利技术的一般的核心问题是用不同源语言LS1至LSN中任何一种编写的程序与不同执行介质SE1至SEM的链接,M是任何一个等于或不同于整数N的整数。这个一般问题可以分解为以下3个子问题按照第一个子问题SP1,例如,最好让用源语言LSn编写的程序P运行在专用于给定源语言LSm的执行介质SEm上,下标m在1与M之间。第二个子问题SP2是把各自以不同的源语言LS1至LSN编写的程序P1至PN装入能够为这些不同的程序提供就存储器大小、执行速度、它们的程序库BP1至BPM及其保密特点而言是有效的环境的通用的执行介质SEm中。第三个子问题SP3旨在让各自以不同的源语言LS1至LSN编写的不同的程序P1至PN在通用的执行介质SEm中共存。对于第三个子问题,必须处理源于不同编程环境并放入同一个物理介质中的程序P1至PN的安全性。这三个子问题SP1,SP2和SP3合起来要,例如在保持安全和保护、交互机制的情况下解决为可编程智能卡编写的不同应用程序的互操作性,为了解决这三个子问题SP1,SP2和SP3,本专业的技术人员面临以下三种类型的解决方案,但是它们都不是完全令人满意的。第一种解决方案,最简单的,也是最常用的,正如图2中用编写操作W1和WM所指示的,是把以专用于安装在智能卡Cn中的执行介质SEn的源语言LSn编写的程序Pn重写为分别以专用于安装在智能卡C1至CM中的执行介质SE1至SEM的源语言LS1至LSM编写的程序Pn1和PnM。第一种解决方案主要缺点是对程序员而言繁重而又烦闷的手工任务,把程序Pn的算法重写为程序Pn1,PnM,它必须适应新的源语言LS1,LSM的数据结构和程序库BP1,BPM。另外,每一种新的执行介质SE1,SEM所提供的安全机制要求对重写的程序Pn1,PnM的代码重新进行考证。第一种解决方案只涉及子问题SP1,因而只解决了程序互操作性问题的很小一部分。此外,若在新卡上出现另一种与不同于执行介质SE1,SEn和SEM的执行介质相关的源语言,则又必须涉及所有用最初的源语言LSn编写的旧程序,以便用这另一种源语言将其重写。第二种解决方案包括交叉编译。参照图3,例如,假定有两种各自用最初专用于两种智能卡C1和C2中的执行介质SE1和SE2的源语言LS1和LS2编写的程序P1和P2,通过校验、编译、装入链CVCC1和CVCC2中的编译之后,它们的每一个都可以以传统方式在执行介质SE2和SE1上执行。但是,程序P1和P2必须分别在执行介质SE2和SE1中执行,而且它们都必须在包含于第三智能卡C3中专用于第三种源语言LS3的第三种执行介质SE3上执行。为了在不同于专用于最初的源语言LS1或LS2的执行介质的目标执行介质SE2和SE3或SE1和SE3上执行程序P1或P2,程序P1和P2要经过另一个校验、编译和装入链CVCC21和CVCC31或CVCC12和CVCC32中的编译。与第一种解决方案相比,在程序员方面第二种解决方案不再需要手工重写这些程序,但要求可以获得许多校验、编译和装入链CVCC12,CVCC21,CVCC31,CVCC32。更一般地说,对于N种源语言LS1至LSN和M种执行介质SE1至SEM,要求有N*M种校验、编译和装入链。这些链在其数量上和复杂性上,要求相当可观的硬件、软件和人力的投资。除了这个主要缺点之外,第二种解决方案还有以下缺点-就存储器大小和执行速度而言这样产生的程序性能差,它们在其中执行的执行介质并非从一开始就适当地适配编写这些程序所用的源语言LS1和LS2的数据结构、操作和程序库;-当出现新的源语言时,校验、编译和装入链的生产在数量上等于现存目标执行介质SE1至SEM数,反之当出现新的执行介质时,在数量上则等于现存源语言数;-为了采用这些程序,预先给所有下载站装入配备不同执行介质SE1至SEM用的编译好而且代码校验过的程序,这使第二解决方案变得更为复杂和成本高昂。第二解决方案只涉及子问题SP1,但与第一解决方案相比,它采用了自动化的方式,而且这样只解决了互操作性问题中非常小的一部分。另外,若在新卡上出现有别于执行介质SE1至SEM的其他执行介质相关的另一种源语言,则必须让所有最初的程序P1至PN通过新的校验、编译和装入链,为所述另一种执行介质产生经过校验的代码。第三种解决方案提出一种智能卡CP,它的每一个都包含若干种执行介质,例如三种执行介质SE1,SE2和SE3,如图4所示。这样,可以分别把用不同源语言LS1,LS2和LS3编写的程序P1,P2和P3通过各自的校验、编译和装入链CVCC1,CVCC2和CVCC3装入卡CP。卡CP为每一个程序P1,P2和P3提供就像它分别装在只具有专用于各自源语言LS1,LS2和LS3的执行介质SE1,SE2和SE3的卡中完全一样的功能。第三种解决方案有利地保留了分别与源语言LS1,LS2和LS3相关的校验、编译和装入链CVCC1,CVCC2和CVCC3,并且可以解决子问题SP2。尽管如此,第三种解决方案有一个主要缺点,就是它目前更加不切实际,因为要装入卡中的不同执行介质数量巨大,而且每一种都代表数量巨大的代码。这个主要缺点也出现在Bertil Foliot和IanPiumarta的题为“Virtual Virtual 本文档来自技高网...

【技术保护点】
一种把用各自执行载体(SE1至SEN)面向的源语言(LS1至LSN)分别编写的若干个程序(P1至PN)转移到一种数据处理装置的方法,其特征在于包括以下步骤:-把每一个程序(Pn)编译(E1,E2;E12)成用代表所述源语言的最小子集的中 间语言(LI)表达的各个程序;-在所述数据处理装置(CU;CS)中提供(E4)为所述中间语言所专用的预定的执行载体(SEU;SES),以及-把所述各中间语言程序装入(E3)设有使所述各源语言(LSn)适配于所述中间语言(LI)的各自 的程序库(BPn)的所述数据处理装置中,以便在所述预定的执行载体(SEU;SES)中执行所述中间语言程序。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:G格里毛德JJ范德瓦勒
申请(专利权)人:格姆普拉斯公司
类型:发明
国别省市:FR[法国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1