首页 | 官方网站   微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 31 毫秒
1.
一种利用适合性测试支持方法重定向的演算   总被引:1,自引:0,他引:1  
赵银亮  朱常鹏  韩博  曾庆花 《软件学报》2013,24(7):1495-1511
一些面向上下文的编程语言使用结构化的块结构(block-structured construct)将方法调用重定向到层中方法.但该结构无法支持层的动态添加与激活,这增加了程序可执行文件的大小.为了解决该问题,提出一种新方法:使用适合性测试支持方法的重定向,并定义一个运行时的适合性测试演算(runtime fitness testing calculus on top offeatherweight Java calculus)形式化描述该方法.该演算以FJ 演算(featherweight Java calculus)为核心,通过融入新的语言结构——层,基于上下文的方法查找与对象转化描述基于适合性测试的方法重定向,分析它对程序类型安全的影响,制定相应约束,并证明在满足该约束的条件下能够保持程序的类型安全,从而证明所提方法的有效性.以该演算为指导,描述如何通过扩展Java 的编译器与虚拟机,实现将层、基于上下文的方法查找与对象转化融入到Java 语言,并通过实验测试实现,证明所提方法的可行性.该演算及其实现可用于指导如何扩展类似Java(Java-like)的语言以支持程序基于上下文动态调整其行为,并同时保证程序的类型安全.  相似文献   

2.
张仕  黄林鹏 《软件学报》2008,19(10):2562-2572
针对面向对象软件在动态更新中遇到类型安全问题,定义了一个多版本类的动态更新演算(MCUFJ演算(multi-version class dynamic updamble calculus based on FJ calculus))来描述类动态更新.MCUFJ演算以FJ(featherweight Java)演算为核心,通过增加update操作表示类的动态更新,运用多版本技术使动态更新可以在保持新旧对象共存的情况下完成,讨论了类的数据域和方法进行增加、删除、修改以及类型变化对程序类型安全性的影响,并且指出MCUFJ上类型安全的动态更新需要满足的约束.定义了类的可动态更新限制,并且证明了在该条件下多版本类的动态更新在类型上的安全性.该演算可以用于指导Java语言和面向对象程序语言的类动态更新.  相似文献   

3.
面向对象程序设计语言的绑定时间分析技术   总被引:5,自引:0,他引:5       下载免费PDF全文
廖湖声  童兆丰  王众 《软件学报》2003,14(3):415-421
为了实现面向对象语言的部分求值,提出了一种绑定时间分析技术.该技术通过针对引用类型变量和指针变量的上下文敏感分析,能够比较精确地分析面向对象语言中诸如对象元素、数组元素等复杂数据结构元素的绑定时间,进而扩大了部分求值的作用范围.这种方法采用两层BTA环境来保存静态变量和局部变量的BTA状态,设置一种专用句柄来表示不同程序点创建的对象,进而采用这种句柄的集合表示引用类型变量的BTA状态.在为面向对象语言程序标注绑定时间信息的过程中,采用一个正向分析和一个反向分析过程,借助于BTA环境来跟踪和设定各种变量、对象和引用变量的绑定时间.该技术已经用于实现Java程序的绑定时间分析,能够有效地分析大多数单线程的Java程序,为实现高性能Java程序部分求值提供了必要的手段.  相似文献   

4.
《计算机科学与探索》2016,(11):1501-1511
Java访问控制一方面提供了语言级的安全性机制,这种机制针对程序中所声明的实体,通过不同的访问修饰符,向其使用者屏蔽实体的实现细节;另一方面,它也导致了该语言规范的复杂性和实现的不一致性。分析了Java访问控制机制,包括类型、成员变量和成员方法的可访问性,以及可访问性与继承关系、方法覆盖、动态绑定之间的交互;然后使用定理证明助手Isabelle/HOL 2015严格定义了这些语义规范;最后陈述并证明了这些定义所满足的性质定理,从而表明该形式化定义的正确性。  相似文献   

5.
为了能够减小运算系统的需信任计算基础、描述较小粒度的安全策略,目前的研究倾向于从程序设计语言和编译器入手来提高软件的安全性.基于以上研究背景设计了一种类型化的低级语言TLL,TLL是一种为Java虚拟机即时编译器设计的类型安全中间语言,以构造一个具有更小需信任计算基础的Java虚拟机系统为目的.TLL的类型系统基于多态的类型化λ演算,它具有丰富的表现力且能够编码各种高级语言的抽象.基于TLL的一个虚拟机原型系统已经实现,它可以作为实现一个高安全且面向多种源语言的运行时系统的起点.  相似文献   

6.
介绍了以构造一个具有更小的需信任计算基础的Java虚拟机系统为目的的研究工作,将一种类型安全的低级语言TLL应用到Java虚拟机的即时编译器中.TLL的类型系统基于多态的类型化入演算,它具有丰富的表现力且能够编码各种高级语言的抽象.基于TLL的一个虚拟机原型系统已经实现,它可以作为实现一个具有微小的需信任计算基础的Java虚拟机的起点.  相似文献   

7.
丘志杰  罗蕾 《计算机应用》2010,30(2):398-401
Java反射是提高软件系统灵活性的重要技术,它是Java被视为动态语言的一个关键特性。虽然CLDC规范并不支持反射,但是在基于Java技术的嵌入式领域,反射仍有其应用需求。Sun公司根据CLDC规范发布了一套嵌入式Java技术的参考实现,其虚拟机被称作KVM。通过分析KVM的相关数据结构和机制,详细描述了反射机制的设计原理,并提出了一种在KVM中扩展反射功能的实现方案,经过测试证明该方案是可行的。  相似文献   

8.
OSGi(Open Service Gateway Initiative)服务平台规范定义了一个开放的一般性架构,为网络服务、软件的开发和部署提供一致性的协作环境,其核心是提供一个通用、安全并且可管理的Java框架.OSGi规范本身利用了Java语言的特性,非常适合用Java实现.但其Java实现对系统资源的消耗较大并且运行时依赖Java虚拟机环境(JVM),不适合在系统资源较少和未安装JVM的环境中使用,例如移动设备.本文在分析OSGi框架原理的基础上,提出了一种轻量级的Windows平台下基于C++的OSGi框架实现方案--cwinOSGi,重点解决了组件的打包方式、加载方法、组件间的可见性及动态更新等关键技术问题,实现了OSGi模型的主要功能.实验证明,与OSGi框架的Java实现相比,cwinOSGi的系统资源需求大幅降低,具有更广的适应性.  相似文献   

9.
秦莹  陈虎 《计算机科学》2000,27(3):43-46
Java是一种面向对象、通用、支持并发的程序设计语言,自1995年推出以来,其应用领域已经从主要面向Internet转向大型分布式软件和嵌入式系统。Java语言源程序(*.java)并不基于任何一个平台,而是基于一台抽象的机器——Java虚拟机(Java virtual ma-chine—JVM)。JVM有自己的一套指令集并且使用独立的存储区域。编译后的代码称为类文件(class)。有相应的Java虚拟机规范、定义虚拟机指令集、类文件的格式、Java虚拟机的实现等标准,确保了类文件的可移植性。  相似文献   

10.
Java虚拟机动态类加载的形式化模型   总被引:1,自引:0,他引:1  
Java虚拟机支持一种功能很强的动态加戡类的机制.它具有惰性加戡、类型安全连接、用户自定义加戡策略、以及劝态名字空间等特性。但是,在Java的早期实现(JDK1.0和1.1)中,这种机制包含了一种称为类型欺骗的严重设计错误.尽管JDK1.2通过引入一种类加戡约束策略修正了这个错误,但是由动态加戡引起的其它形式的类型欺骗仍然存在于JDK1.2和1.3中。本文详细讨论了与动态类加戡相关的类型欺骗问题,提出了一个严格定义Java虚拟机操作语义和静态语义的形式化模型。其中,操作语义描述了类加戡约束策略、字段及方法解析算法等类加戡的主要特性;静态语义采用类型规修正了JDK1.2和1.3中的类型欺骗。  相似文献   

11.
多线程作为支持程序结构化和并行化的重要机制,其应用越来越广泛,多线程应用程序的安全性也成为新的研究热点之一.针对Java多线程程序,文中采用参数化扩展上下文无关文法作为其安全相关行为模型的抽象表示,给出了从多线程Java程序自动生成安全相关行为模型的方法,形式地描述了静态检查该模型是否满足安全策略的实现,并应用到携带模型代码方法的实现框架中.该方法为安全执行非信任多线程Java移动代码提供了有效支持.  相似文献   

12.
基于对Java编译器的扩展和静态验证技术提出了VeriJava项目,与相关工作相比,它的优点在于从语言层面扩展了Java,并且全面支持动态和静态的契约检查.首先介绍了VeriJava项目的整体架构,及其对Java进行的语言层面的扩展,进而重点讨论了方案的核心部分基于定理证明器的静态验证器的理论和设计,并给出了相关示例.  相似文献   

13.
介绍基于扩展构造型演算的交互式多步证明系统。该系统中以函数式语言ML为开发环境,建立了ECC的项、规则证明策略和证明管哩机制的描述,并引入规约类型、类类型、类和对象的表示,为面向对象的程序规约和定理证明系统的结合进行了一些探索。  相似文献   

14.
将Java程序静态编译成可执行程序是使用Java虚拟机动态编译/解释执行Java程序的另一种运行Java程序的方式。针对Java异常机制的特点和静态编译的需求,在介绍Java异常处理逻辑的基础上,提出一种在静态编译器中实现Java异常机制的算法,结合Open64开源编译器,给出该算法的具体步骤以及实现方式,以SPECjvm98为测试集,验证该算法的有效性。  相似文献   

15.
随着计算机技术的不断进步和发展,Java语言程序凭借着自身的优势得到了广泛的应用,并取得了显著的成效。同时为了推动Java语言程序在计算机技术的作用,需要提高其精度,这就需要借助一定的对象别名分析技术。本文笔者对对象别名分析技术进行了分析和探讨,主要是为提高求值的深度,同时为实现Java语言程序中部分求值器的绑定时间分析的实现,进而为Java语言程序的应用提供指导和借鉴。  相似文献   

16.
本文通过参数化扩展上下文无关文法作为其安全相关行为模型的抽象表示,针对Java多线程序研究,总结出了从多线程Java程序自动生成安全相关行为模型的方法,该方法应用到携带模型代码方法的实现框架中,形象的描述了静态检查该模型是否满足安全策略的实现,同时为安全执行非信任多线程Java移动代码提供了有效支持。本文合理的使用静态分析多线程Java程序的措施,来进行相关安全性的检查,从中来考察出多线程Java程序的相关安全行为。  相似文献   

17.
结合面向对象和函数式语言的概念   总被引:2,自引:0,他引:2  
考虑了结合面向对象和函数式程序风范的问题.与这一方向的大多数方法相比,这种结合方法有下面两个优点:首先,结合了在广泛流行的几种主语言中非常有名的一些重要概念.换言之,没有引入新的语言概念并试图以新的概念为基础解释众所周知的语言概念.其次,这种结合具有下面的性质:如果整个语言以传统方式使用则不受个别的语言概念的影响,这样,只有在使用一个语言概念的时候才需要关注它.具体地说,提出了一个具有简明操作语言的用于函数式面向对象程序设计的核心语言,它具有如上所述的性质.这个核心语言结合了Eiffel, Java, ML和Haskell语言中的下列核心语言概念:对象,类,多重继承,方法重定义,动态绑定,静态类型安全性,二元方法,代数数据类型,高阶函数,ML-多态性.  相似文献   

18.
MPI语言绑定:MPI-Delphi,MPI-Java与MPI-Ruby   总被引:2,自引:0,他引:2  
魏兵海 《计算机科学》2004,31(8):185-189
MPI(消息传递接口)是最重要的主流并行计算模式之一,它既能应用于当今的分布式环境,也可用于未来的网格环境。本文对以下三种API语言绑定作了综合性分析:MPI-Delphi,MPI-Java和MPI-Ruby,并探讨了其体系架构、实现机制及相关的技术特征。MPI-Delphi基于DLL(动态语言连接)模式实现Delphi语言到MPI库的绑定。在MPI-Java绑定实现时,JVM(Java虚拟机)、JNI(Java本地接接口)、对象串行化范型和Java新I/O库Java.nio都是用作MPI性能优化的关键技术。MPI-Ruby能够提供给用户最易使用和最强大的接口。本文还对一些相关的绑定机制进行了介绍和分析。  相似文献   

19.
蔡家楣 《计算机工程》1998,24(12):27-29,34
介绍基于扩展构造型演算的交互式多步证明系统。该系统中以函数式语言ML为开发环境,建立了ECC的项、规则证明策略和证明管理机制的描述,并引入规约类型、类类型、类和对象的表示,为面向对象的程序规约和定理证明系统的结合进行了一些探索。  相似文献   

20.
Java动态类加载机制研究及应用   总被引:2,自引:0,他引:2  
为了在Java应用程序运行期间动态加载类文件,而不影响其它功能模块的正常运行,在Java虚拟机(JVM)机制上给出了Java动态类加载的实现方法。通过对Java类加载器的体系结构,动态类加载机制原理、实现过程和实现方法的分析,在网络教学环境下实现了一个基于C/S结构模式的动态的从数据库中获取Java源代码并编译运行的学生实验教学系统,并结合反射机制为Java作为动态语言提出一种应用的途径,充分展现了Java语言的灵活性、安全性,使它在代码安全保护和网络环境下有广阔应用前景。  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司    京ICP备09084417号-23

京公网安备 11010802026262号