北航研究生课程程序语言设计原理教程第16章.ppt

北航研究生课程程序语言设计原理教程第16章.ppt

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第15章 平台无关语言 Java语言设计特点及其保证平台无关的机制。 网络计算中用到的两类平台无关语言: 置标语言 脚本语言 高级程序语言的宗旨是平台无关,由于机器指令系统不同,运行能力不同,Java以前所有高级程序设计语言不能做到平台无关。 15.1 平台无关语言实现策略 (1) 传输源程序 (2) 传中间代码 (3) 传中间代码再编译 (4) 传中间代码编译——解释执行 传递统一的中间代码比较理想。它接近实现,代码语义丢失少,解释器小巧,先编译可利用复杂的查错工具,不会增大传递信息量。为了平台无关各种环境均应配备解释器。 15.2 Java 平台无关语言 Java是为家用电器而开发的。由于硬件芯片发展快速,软件要求可靠不希望多改。这就要求软件和芯片无关。开发者发现C和C++是满足不了这种要求的,于是在C++的基础上开发了Java(1990-1993)。 Java类似C++比它更面向对象,更简洁,更安全,有较强的动态性,支持线程编程,取消了C++不利于平台无关的机制。如头文件和宏。指针等。 Java的字节代码Unicode和ISO l0646-1 BMP兼容,后字节和ISO ASCLL 兼容。 Java的新机制: 提供虚基类array,Java的所有基本类型都可以有数组对象。 界面机制,可以实现多继承。 引入包和编译单元。包是类和界面集合。为了简化各字面向管理。实现可见性控 制。预定义包提供了程序设计环境。 提供线程包支持以csp模型开发并发程序。 新设关键字有 final, interface finally, implement nafiva, extends transient, synchronized abstract, throws instanceof 15.2 Java 平台无关性的实现 Java采用传递中间代码,实现程序在各站点上移动。在每个站点设置浏览器,解释执行中间码程序。 解释器和运行时系统(run_time System)统称Java虚机,即如同在虚拟的机器上运行。典型操作系统的虚机网上都有,可以按本机操作系统下载。 Java源程序实现计算的过程其示意图如下: 15.2. 2 Java的字节代码 Java选用16位双字节的Unicode作为中间代码。Java程序内码转换如下图 15.2. 2 以C++为母语实现面向对象 (6) 包与编译单元 (7) 支持线程编程 (8) 增设的新关键字 15.2.4 Java预定义程序包 Java采用小语言、多支持的构成思想,由于它的实现小巧,任何站点都可以下载它的编译器和解释器,然而,复杂的程序表达则以大量的类库支持。面向对象的继承机制正好满足这种设计。Java以记(package)提供类库支持。Java的包是一组类和接口的集合,包利于名字空间管理,以点表示法提供类和接口,以便编程开发直接引用。 ·Java.lang(语言包) 提供基本数据类型对象,数字库对象,支持线程编程和具有异常,出错处理程序,提供访问系统资源的类,支持应用程序动作的类(classloader,Compiler,Runtime),提供动态调用和安全保护的基础。 ·Java.io(输入/出包) 提供一整套支持输入/出的类 ·Java.Util(工具包) 提供各种编程工具 ·J(网络包) 为实现网络通信功能的各种类 ·Java.awt (抽象窗口工具包)包括一套标准的图形用户界面(GUI)的元素 ·Java.applet(Applet包) 提供编写小应用程序Applet的各种类与接口。 sun.tools.debug (调试工具包)提供调试(特别是远程虚拟机上运行各类)的各种类与接口。 15.3 Java虚拟机技术 虚拟机技术作为一门综合技术几乎体现了当代程序设计语言设计与实现技术的各个方面。Java虚机要实现Java的面向对象程序: 类装入及实例对象生成,对象交互(引用方法); 获得核心类库支持; 线程运行; 处理异常; 作无用单元自动收集。 虚机执行过程如下 15.3.2 Java虚机的体系结构 JVM为每个Java线程分配一个Java栈和一个本地方法栈。所有的线程共享一个方法区和动态生成的实例对象(只有数据)区,初始化阶段JVM将与此线程相关的方法装入方法区,以PC寄存器引用。每当某一方法被调用,该方法作为一帧(Frame)压入栈。帧分三部分: 方法的局部变量放入局部变量区,由Var寄存器引用; 方法的动态链、返回地址、异常传播信息压入运行环境区,由Frame寄存器引用; 方法指令的字节码,解析后放入操作数区,由Optop寄存器引用。 15.3.3 虚机技术进展 第一代JVM直接解释执行字节代码文件 第二代JVM及

文档评论(0)

shaoye348 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档