<第一部分>
学过任何一门程序语言的人都会知道,一个可执行程序的形成要经过的步骤是:
编辑
--->
编译
形成
.obj
文件
--->
链接形成
.exe
文件。
那么计算机程序到底是怎样运行的呢?上面的简单过程我相信都可以想到。但是其实质,需要这些步骤的理由是什么?我们有没有想过呢?
首先当然是编程,需要的是程序设计语言。现在大多数我们都是使用
java,c,c++
等高级程序语言。但是计算机所能识别的知识计算机语言即二进制代码。这需要编译器和汇编器的帮助。其次,机器语言需要加载到内存,形成运动中的程序,即进程,这就需要操作系统的帮助,进行程序的调度等。进程需要在计算机芯片
CPU
上执行才算是真正的执行,要不然就是处于等待队列中的,没有真正的运行,而程序要在
CPU
上执行必须由操作系统完成。再次,在
CPU
上执行的机器语言指令需要变成能够在一个个时钟脉冲里执行的基本操作,这需要指令集结构和计算机硬件的支持,而整个程序的执行过程还需要操作系统提供的服务和程序语言提供的执行环境。这样,一个程序到微指令执行的过程就完成了。
程序执行至少需要四个因素:
1.
程序设计语言
2.
编译系统
3.
操作系统
4.
指令集结构(计算机硬件系统)
(转自:http://blog.sina.com.cn/s/blog_724d24bf0100yfe9.html)
<第二部分>
java程序执行原理
<o:p> </o:p>
首先了解一下什么是计算机程序。计算机的作用在于它可以帮助人类完成计算功能,它由硬件和软件两部分组成,硬件包括中央处理器(
CPU
)、存储器、输入输出设备等,软件包括计算机程序、相关文档及数据。而计算机程序可以看作整个计算机系统的灵魂,它向计算机发出指令,指挥数据的输入、运算和输出,由于计算机程序的作用太重要了,因此好多人把软件和程序看成是一回事。
计算机程序是由一条条的指令组成的,但计算机所能接受的指令是由
0
和
1
构成的二进制数据,这叫做机器指令。让计算机算一下
1+2
等于几怎么办呢?只能向计算机输入类似于下面的代码了:
0011111 0000000 0000001 000000 00000010
当然了,具我的老师说,他的老师编写过这样机器指令程序,当时还没有键盘这种东西,首先根据程序中
0
、
1
的位置在纸带上打孔,然后把纸带送到机器上进行读入,然后……,试想一下,如果使用机器指令编写一个企业管理信息系统的话,得浪费多少木材资源啊,估计要毁坏一个大兴安岭。
好在对于我们来说噩梦已经结束了,如今编程语言已经从机器语言、汇编语言发展成接近人类语言的高级语言,
Java
也正是一种优秀的高级程序设计语言。
我们利用
Java
语言编写程序,实际上是编写程序的源代码(
source code
),程序设计者能看懂这些源代码,但计算机是不懂的,
50
多年来它们一直顽固不化,仍然只认得机器指令。
怎么才能让
Java
编写的程序能够在计算机上执行呢?
首先要利用
Java
编译器(
JDK
自带的工具)把它转换成一种叫做
Java
字节码(
Byte Code
)的东西,这个过程叫做编译,它可以检查程序中的错误。
Java
字节码可以在计算机上运行了吗?还是不行,这种字节码只有
Java
虚拟机(
JVM
)才能读懂,也就是说一台计算机如果想运行
Java
程序的话,安装
Java
虚拟机是必不可少的。
Java
虚拟机连同一些必要的
Java
核心类库一起称作
Java
运行时环境,这是执行
Java
程序必不可少的工具,可以免费获得并安装。
运行
Java
程序时,
Java
虚拟机首先读入字节码、对节码进行正确性,针对客户计算机平台生成对应的机器指令,由客户机器执行机器指令。
<o:p> </o:p>
好了,我们回顾一下
Java
程序开发及运行的过程。
现在假如你是一个优秀的
Java
程序设计师,老板交给你一个非常重要的任务:为客户编写一个
Java
应用系统,这个系统具有一项高级功能——计算两个数相加的和!
你该怎么办呢?
<!--[if !supportLists]-->1.
<!--[endif]-->编写满足需求的
Java
源程序,将源程序保存为以
.java
为扩展名的文件。例如
Add.java
。
<!--[if !supportLists]-->2.
<!--[endif]-->利用
JDK
提供的
javac
命令将源文件编译为字节码文件,例如输入:
javac Add.java
java
编译器可以生成名称为
Add.class
的字节码文件。
<!--[if !supportLists]-->3.
<!--[endif]-->在装有
Java
运行环境的机器上执行
Add.class
,例如输入:
java Add
其他的工作交给
Java
虚拟机完成。
<!--[if !supportLists]-->4.
<!--[endif]-->你的心里暗暗想:
Java
虚拟机者是个好东东。
上面介绍的是手工编译、执行
Java
程序的过程,目前有很多优秀的开发工具用于开发
Java
应用程序(如
Eclipse
、
NetBeans
、
Jbuilder
等),编写完代码后可以通过菜单项或快捷按钮进行编译、运行程序。但我们应该了解:在图形化界面的背后还是调用了
javac
和
java
命令
转自:http://shenhai.iteye.com/blog/64954
<第三部分>
分享到:
相关推荐
计算机执行程序的过程,实质上是计算机通过其内部的控制器,按照特定的指令序列来完成各种任务的过程。这个过程涉及多个关键环节和知识点,包括程序、指令、指令格式、控制器、指令周期以及指令的执行过程等。 程序...
计算机程序是计算机可以识别并执行的一系列指令的集合,这些指令告诉计算机如何处理数据和执行特定任务。计算机系统由运算器、控制器、存储器、输入设备和输出设备组成,它们共同协作使得程序得以运行。在程序运行的...
在计算机程序的范畴内,脚本程序是一种无需编译即可直接运行的程序类型。这类程序通常使用脚本语言编写,如Python、JavaScript等。与编译型程序相比,脚本程序更容易编写和调试,因为它们可以直接在目标平台上执行而...
2. 编程实践:编写MIX程序,通过调试和运行来学习程序的执行流程,这对于理解计算机程序的生命周期至关重要。 3. 模拟硬件:MIXBuilder模拟了MIX计算机的硬件组件,如CPU、内存和输入/输出设备,帮助用户直观地理解...
- **定义:**用计算机程序解决问题是指将现实生活中的任务转化为计算机能够理解和执行的指令集,以此来达到自动化处理的目的。 - **意义:**通过学习本章节内容,学生能够认识到计算机程序是一种特殊的指令集合,...
计算机程序的运行原理是...理解计算机程序运行原理对于开发者来说至关重要,它可以帮助我们优化代码性能,理解和解决运行时问题,以及设计高效、稳定的系统。同时,这也有助于我们更好地利用硬件资源,提升计算效率。
计算机程序设计语言的执行过程可以概括为以下几个步骤:首先,人們将指令编写成程序,然后,让计算机执行这些指令。计算机在执行这些指令时,需要将其翻译成机器语言,以便计算机可以识别和执行。 3.4 语言处理程序...
通过比较解释和编译的过程,读者可以更深入地理解程序执行的不同方式,以及这些方式对程序性能的影响。书中还介绍了一些基本的解释器和编译器实现,如Scheme解释器和编译器。 #### 3. 数据结构与算法 数据结构和...
教学重点在于理解计算机程序解决问题的全过程,而教学难点则在于实际使用VB编程语言,体验程序的运行和作用。 【教学方法与策略】 教学方法以教师引导、学生自主探究、小组合作、问题分析和情境设置为主。通过编写...
程序的运行过程大致如下: - 加载程序代码和必要的数据,初始化计算机进入一个初始状态。 - 调用启动机制,开始执行程序。 在大多数计算机中,操作系统会加载并执行多个程序。在这种情况下,“程序”通常指单独的一...
《计算机程序构造和解释》(SICP,Structure and Interpretation of Computer Programs)是一本具有深远影响力的计算机科学教材,由Harold Abelson和Gerald Jay Sussman编写,MIT Press出版。这门课程由北京大学数学...
计算机程序设计的过程是将人类解决问题的思维转化为计算机可执行的语言的关键步骤,这一过程涉及多个环节,包括理解问题、分析问题、设计算法、编写程序、测试与调试,以及最终的程序优化。以下是对这些环节的详细...
计算机程序解决问题ppt课件 计算机程序解决问题是计算机...本资源通过讲解计算机程序解决问题的概念、计算机硬件的组成、数字电路的原理、程序设计语言的发展历程等,来帮助学生更好地理解计算机程序解决问题的过程。
《计算机程序的构造与解释》是一本在计算机科学领域具有深远影响的经典著作,通常简称SICP(Structure and Interpretation of Computer Programs)。这本书由Harold Abelson和Gerald Jay Sussman编写,MIT出版社出版...
计算机程序设计的过程是将人类解决问题的思维转化为计算机可以理解和执行的指令序列。这一过程包括了多个关键步骤,对于初学者来说,理解并掌握这些步骤至关重要。 首先,我们要明确计算机程序设计的目标是利用...
- **认识计算机程序**:让学生明白计算机程序是用来指导计算机执行任务的指令集合。 - **了解程序设计语言**:介绍常见的程序设计语言及其特点。 2. **教学难点**: - **理解计算机程序的本质**:帮助学生理解...
3. **过程与环境模型**:阐述了程序执行的环境模型,帮助读者理解变量的作用域、闭包和动态绑定,为理解程序执行机制打下基础。 4. **元编程**:介绍元编程的概念,让读者学会编写可以操作和扩展自身的程序,实现...
求值机制,即程序执行过程中如何查找和替换变量的过程,也是本书的重点之一。这些机制直接影响到程序的可读性、可维护性和性能。 #### 3. 高级主题与实践 《计算机程序构造与解释》还涵盖了更高级的主题,如异常...