用户名: 密码: 验证码:
Java可视虚拟机的研究与实现
详细信息    本馆镜像全文|  推荐本文 |  |   获取CNKI官网全文
摘要
虽然Visual Basic、Visual C++和Delphi等面向程序界面可视化的程序设计语言已经十分流行,但迄今为止,还没有出现真正意义上的可视化编程环境。目前广泛使用的各种编译和运行环境向用户反馈的都是字符信息,难以直观地动态反映程序的控制流程和复杂数据的抽象关系,程序的运行和调试主要依赖编程者的抽象思维和逻辑分析能力。
     可视化技术具有交互性、多维性和可视性等特点。将程序的编译和运行环境可视化,可以使程序和数据的表达更加直观,用户能够静态或者动态地直接观察程序的执行过程和数据及其之间关系的变化,从而降低程序分析、设计和调试过程的抽象性和难度。
     本课题研究并实现一个Java可视虚拟机。首先,对Java虚拟机(JVM)一些关键技术进行了深入细致的分析,确保对其运行机理、JavaAPI、本地方法库、JVM运行结构、垃圾收集等细节具有全面准确的理解。然后,提出了一个Java可视虚拟机(JVVM)的结构模型,并进行了具体设计和初步实现。
     这个JVVM充分利用了Java编译器产生的class文件包含的各种信息,提出了用类结构概念来解决面向对象的特性,实现了Java基本class文件的读取、数组对象的实现、基本Java操作码的实现、本地库的DLL实现、JVM运行结构可视显示、一些数据结构在运行时的动态可视化、垃圾回收算法的可视化,在实现中将所有类型都统一起来,取得了很好的效果。为最终研发Java的可视化编程环境提供了一个基本原型,并积累了技术和经验。
     本文的内容组织如下:第一章介绍可视化编程技术的背景、现状以及研究Java可视虚拟机的意义,并介绍了本课题的主要内容;第二章分析Java虚拟机的结构模型和关键技术,介绍了这些技术的原理和成因,提出了实现Java可视虚拟机的技术方案;第三章介绍Java可视虚拟机的设计与实现,具体讨论了JVVM的实现细节;第四章给出了若干测试实例,包括常规测试、本地方法调用测试、多态继承测试等;第五章总结了本课题的工作,并对后续工作以及应用前景进行了讨论。
There is no complete visual programming environment by now. The popular visual programming languages, such as Visual Basic, Visual C++ and Delphi and etc., are only oriental to visual program interfaces. They give feedback to users with character information in compiling and running environments, which cannot straightforward reflect control flows of programs and abstract relations of complex data. So it needs programmers' abstract thinking and logic analysis abilities to complete debugging and running jobs.
    As known, the visual technology has characteristics of inter-action, visualization and etc. Applying it to compiling and running environments makes programs and data more straightforward to users. In the meantime, users can observe running processes and changes of data in different conditions, which decreases the difficulties and abstractions of programs' analysis, designing and debugging.
    The objective of this paper is to design and implement a Java visual virtual machine (JVVM). Firstly, some key technologies are analyzed in details, which gives complete and precise comprehensions of the running mechanisms, JavaAPI, local method base, JVM running structures, rubbish collections and so on. Secondly, a structure model of JVVM is presented. Finally, a detailed designs and elementary implementation are given.
    This JVVM fully utilizes diversified information of class files produced by Java compilers. It implements some functions, for example, reading and writing of class files, constructing of class structures, implementation of array objects, basic implementation of Java operation codes, implementation of local methods' DLL, visual display of JVM running structures, visual running of some data structure, visualization of rubbish collection algorithms. This paper provides a prototype of Java visual programming environment, and accumulates the technology and experience for future researches.
    The structure and organization of this paper is as follows. Chapter I introduces the background of programming technologies, research motive of Java visual machine and main content of the paper. Chapter II analyzes the structure model and the key technologies of Java visual machine, introduce the principles of these technologies
    
    
    
    and presents a solution of JVM implementation. Chapter III introduces the design and implementation of JVM, discussing the implementation details of JVVM. Chapter IV gives several testing examples, including normal testing, local method testing and etc. Chapter VI makes a conclusion of this research, and discusses coming research works and application future.
引文
[1] 黄志澄.迎接可视化技术的春天。北京系统工程研究所
    [2] 陈幼松.可视化技术在各领域的新进展.电子商务.1994年(2)
    [3] 曾继平,谭泽富.J2ME开发及JBuilder工具的应用.重庆三峡学院学报.2003(1)
    [4] 孟祥娟.可视化Java的最新开发环境-Visual Cafe.电脑与信息技术.1998(1)
    [5] Data Display Debugger. http://www.gnu.org/software/ddd/
    [6] 面向对象.http://e-presence.china-channel.com/java_03_01.asp
    [7] Java的对象.http://www.chinaitlab.com/www/special/java_object.asp
    [8] 包奇峰,成迪夫,功能强大的MS Visual Studio 6.0,电脑技术.1999(2)
    [9] 李葆春.Delphi——灵活的多功能平台.软件世界.1995年(7)
    [10] Bill Venners.深入Java虚拟机(原书第二版).曹晓钢,蒋靖译.机械工业出版社,2003
    [11] 李京华,刘波.Java语言的应用.电子展望与决策.1997年(1)
    [12] 廖春元,戴梅萼.Java虚拟机技术探讨.微型机与应用.1998年(3)
    [13] Tim Lindholm,Frank Yellin.Java虚拟机规范.玄伟剑等译.北京大学出版社
    [14] Java中文问题祥解.http://www.99net.net/study/prog/6810294.htm
    [15] 探矽工作室.深入嵌入式Java虚拟机——Inside KVM.中国铁道出版社2003
    [16] James Goling, Bill Joy, Guy Steele,Java语言规范.北京大学出版社,1997
    [17] Java性能调整.http://www.freelamp.com/new/publish/1017721999/
    [18] Bill Blunden.虚拟机的设计与实现.杨涛,杨晓云,王建桥等译.机械工业出版社,2003
    [19] 陈涵生.Java技术.自然杂志.1997年(2)
    [20] 钟声,赵荣彩.JAVA 语言中本地方法的设计与实现.信息工程大学学报.2000(1)
    [21] 灵活的Java安全机制.http://www.huihoo.com/java/j2ee/jaas.html
    [22] 丁宇新,程虎.Java虚拟机中无用单元的精确回收.计算机学报.1999(11)
    [23] 席卫文,张春晓,李光明.C++Builder 6程序设计与实例.冶金工业出版社.2003
    
    
    [24] 原雪等.C++Builder 6入门提高.国防科技大学出版社,2003
    [25] D.R.Musser, GJ.Derge, A.Saini.STL进行C++编程.贺民,王朝阳译.科学出版社.2003
    [26] Bruce Eckel.Java编程思想.京京工作室译.机械工业出版社,1999
    [27] Borland公司.JBuilder实用技术手册.电子工业出版社,1999
    [28] 申剑,曹咏春.标准模板库在编译设计中的应用.现代计算机,2004,3(183):98~100
    [29] Java的安全基础——虚拟机和字节码安全.http://www.cooltang.corn/box/topic/character/program/cn-java/0688.htm
    [30] Ken Arnold, James Gosling. The Java Programming Language, Second Edition. Addision-Wesley 出版. ISBN:0201310066
    [31] Mary Campione, Kathy walrath. The Java Tutorial, Second Edition. Addison-Wesley 出版.ISBN:0201310074,1999
    [32] Elie Boling, Peter Kukol. Underneath Structured Exceptions & C++ Exceptions.http://www.borland.com
    [33] 张涛.Delphi中动态链接库(DLL)的建立和使用.http://www.ahetc.gov.cn/cit/200008/02.htm
    [34] DELPHI中动态链接库的使用.http://www.vchome.net/tectl/dll/dll2.htm
    [35] 本书编写组.新编Windows API参考大全.电子工业出版社,1998
    [36] 严蔚敏,吴伟民.数据结构(C语言版).清华大学出版社,1997
    [37] 严蔚敏,吴伟民.数据结构题集(C语言版).清华大学出版社,1997
    [38] S.-K.Chang. "Visual Language:A Tutorial and Survey." IEEE Software, 4(1):29-39, January 1987.
    [39] Burnett, M.M, and Ambler, A. Interactive Visual Data Abstraction in a Declarative Visual Programming Language. JVLC, 5, 1994, 29-60
    [40] Cameron Hughes, Tracey Hughes.C++面向对象多线程编程.周良忠译.人民邮电出版社,2003
    [41] David Flanagan. Java in a Nutshell. O'Reilly出版.ISBN:156592262X,1997
    [42] N.C.Shu. "Visual Programming Languages:A Perspective and a Dimensional Analysis." In Cisual Languages (S.-K.Chang,T.Ichikawa and P.A.Ligomenides,
    
    editors), pages 11-34,1986.Plenum,New York.
    [43] Dick Grune, Henri E. Bal, Ceriel J. H. Jacobs等. Modem Compiler Design.冯伯琴、傅向华等译,人民邮电出版社,2003
    [44] Ebrahami, A. VPCL: A Visual Language for Teaching and Learning Programming (A Picture is Worth a Thousand Words). JVLC, 3, 1992, 299-317
    [45] Alfred Aho, Ravi Sethi, Jeffrey D.Ullman. Compilers: Principles, Techniques and Tools. Addison-wesley出版.ISBN:0201100886,1998
    [46] 冀振燕,程虎.JaVa编译系统的研究.计算机研究与发展.1999年(1)
    [47] Visual Programming. http://www.dcc.uchile.cl/~rbaeza/cursos/vp/todo.html
    [48] Visual Language Research Bibliography.http://Web.engr.oregonstate.edu/~burnett/vpl.html
    [49] Visual Language. http://www.visuallanguage.corn/

© 2004-2018 中国地质图书馆版权所有 京ICP备05064691号 京公网安备11010802017129号

地址:北京市海淀区学院路29号 邮编:100083

电话:办公室:(+86 10)66554848;文献借阅、咨询服务、科技查新:66554700