程序编译与执行
开发C程序有四个步骤:编辑、编译、连接和运行。
任何一个体系结构处理器上都可以使用C语言程序,只要该体系结构处理器有相应的C语言编译器和库,那么C源代码就可以编译并连接到目标二进制文件上运行。
1、预处理:导入源程序并保存(C文件)。
2、编译:将源程序转换为目标文件(Obj文件)。
3、链接:将目标文件生成为可执行文件(EXE文件)。
4、运行:执行,获取运行结果的EXE文件。
(1)程序编译与执行扩展阅读:
将C语言代码分为程序的几个阶段:
1、首先,源代码文件测试。以及相关的头文件,比如stdio。H、由预处理器CPP预处理为.I文件。预编译的。文件不包含任何宏定义,因为所有宏都已展开,并且包含的文件已插入。我归档。
2、编译过程是对预处理文件进行词法分析、语法分析、语义分析和优化,生成相应的汇编代码文件。这个过程往往是整个程序的核心部分,也是最复杂的部分之一。
3、汇编程序不直接输出可执行文件,而是输出目标文件。汇编程序可以调用LD来生成可以运行的可执行程序。也就是说,您需要链接大量的文件才能获得“a.out”,即最终的可执行文件。
4、在链接过程中,需要重新调整其他目标文件中定义的函数调用指令,而其他目标文件中定义的变量也存在同样的问题。
Ⅱ 编译执行和解释执行的区别
一、主体不同
1、编译执行:由编译程序将目标代码一次性编译成目标程序,再由机器运行目标程序。
2、解释执行:将源语言直接作为源程序输入,解释执行解释一句后就提交计算机执行一句,并不形成目标程序。
二、优势不同
1、编译执行:相比解释执行编译执行效率高,占用资源小,适合复杂程序
2、解释执行:开发速度快,出现严重BUG的几率小。
三、缺点不同
1、编译执行:兼容性差,例如在windows平台上写的编译程序一般不可以在unix平台上运行。
2、解释执行:解析需要时间,不生成目标程序而是一句一句的执行的方式会造成计算机资源的浪费,即执行效率低。
Ⅲ 解释执行和编译执行的区别和概念
解释执行:
由解释器根据输入的数据当场执行而不生成任何的目标程序
编译执行:
先将源代码编译成目标语言(如:机器语言)之后通过连接程序连接到生成的目标程序进行执行
Ⅳ 请问java程序在编译和运行时有什么区别,系统分别都会做什么
Java程序的编译
使用命令: javac *.java
编译时,会将写的.java文件(高级语言),生成相应的字节码文件.class文件(二进制代码)
Java程序的执行
使用命令:java *
流程: 加载到 -- 连接 ---- 初始化 ...
运行时,首先会由将相应的.class文件,加载到内存中,并验证.class文件的有效性,将相应类的Class加载到内存中,并对类中的静态变量进行初始化操作,然后就由 主 类开始执行
具体的可以看一下 JVM 类加载过程,以及jVM的内存分配机制
Ⅳ 简述JAVA程序的编辑编译和运行过程
第一步(编译): 创建完源文件之后,程序会先被编译为.class文件。Java编译一个类时,如果这个类所依赖的类还没有被编译,编译器就会先编译这个被依赖的类,然后引用,否则直接引用,这个有点象make。
如果java编译器在指定目录下找不到该类所其依赖的类的.class文件或者.java源文件的话,编译器话报“cant find symbol”的错误。
第二步(运行):java类运行的过程大概可分为两个过程:1、类的加载 2、类的执行。需要说明的是:JVM主要在程序第一次主动使用类的时候,才会去加载该类。也就是说,JVM并不是在一开始就把一个程序就所有的类都加载到内存中,而是到不得不用的时候才把它加载进来,而且只加载一次。
特别说明:java类中所有public和protected的实例方法都采用动态绑定机制,所有私有方法、静态方法、构造器及初始化方法<clinit>都是采用静态绑定机制。而使用动态绑定机制的时候会用到方法表,静态绑定时并不会用到。
(5)程序编译与执行扩展阅读:
Java整个编译以及运行的过程相当繁琐,本文通过一个简单的程序来简单的说明整个流程。
Java代码编译:是由Java源码编译器来完成;
Java字节码的执行:是由JVM执行引擎来完成
Java程序从源文件创建到程序运行要经过两大步骤:
1、源文件由编译器编译成字节码(ByteCode)
2、字节码由java虚拟机解释运行。因为java程序既要编译同时也要经过JVM的解释运行,所以说Java被称为半解释语言( "semi-interpreted" language)。
Ⅵ 如何编译并运行C语言程序
1、创建一个文件名为main.c,然后用任意一个款你熟悉的文本编辑软件,比如说记事本,在里面输入下面的代码,记住,要用文本文件编辑软件,不能用word的。
(6)程序编译与执行扩展阅读:
c语言小游戏实现原理
1、二维数组实现棋盘
二维数组,用两个for 循环,随便输出一个固定符号做棋盘,如 *
2、判定玩家
设计一个计步变量step, 每走一步 step++, 则玩家=step%2+1;
3、判定输赢(重点)
设计方向数组 dircX[4] ,dircY[4],因为如果要判断是否练成五子,只有1竖着2横着3斜下4斜上
竖着的话就是 x-1,y不变
横着的话就是x不变,y+1; 斜下: x+1,y+1; 斜上 x-1;y+1
这样你就可以赋值dircX={-1,0,1,-1} dercY={0,1,1,1}
每当玩家落下一子,就全局判断每个子的四个方向有没有第二子,如果有,循环判断有没有第三子(利用 x+=dircX[1]),直到五子完成,结束。
Ⅶ 程序与编译程序执行策略的区别是什么
你好,很高兴能为你解答,看到请采纳,谢谢!
编译执行 是把源程序编译成 目标码后 再执行目标码。例如,c语言程序,必须给出完整程序,编译器,通过几次扫描,翻译,编排,链接,变成 exe 文件 执行。编译执行,程序执行时间短,效率高。
解释执行,并不把整个程序 变成目标码,而是按顺序,读一句,解释一句,执行一句,所以,没给完整程序,它就可以执行了。例如,浏览器处理网页,网页程序,每下来一句,就可以解释执行一句,不用等整个网页下来后再处理。
Ⅷ 如何使用 Visual Studio.Net 编译和执行 C# 程序,步骤是
启动 Visual Studio。
在菜单栏上,选择 File -> New -> Project。
从模板中选择 Visual C#,然后选择 Windows。
选择 Console Application。
为的项目制定一个名称,然后点击 OK 按钮。
新项目会出现在解决方案资源管理器(Solution Explorer)中。
在代码编辑器(Code Editor)中编写代码。
点击 Run 按钮或者按下 F5 键来运行程序。会出现一个命令提示符窗口(Command Prompt window),显示 Hello World。
打开一个文本编辑器,添加上面提到的代码。
保存文件为 helloworld.cs。
打开命令提示符工具,定位到文件所保存的目录。
键入 csc helloworld.cs 并按下 enter 键来编译代码。
如果代码没有错误,命令提示符会进入下一行,并生成 helloworld.exe 可执行文件。
接下来,键入 helloworld 来执行程序。
将看到 "Hello World" 打印在屏幕上。
您也可以使用命令行代替 Visual Studio IDE 来编译 C# 程序:
Ⅸ 简述将源程序编译成可执行程序的过程
一个源程序到一个可执行程序的过程:预编译、编译、汇编、链接。其中,编译是主要部分,其中又分为六个部分:词法分析、语法分析、语义分析、中间代码生成、目标代码生成和优化。
预编译:主要处理源代码文件中的以“#”开头的预编译指令。处理规则如下:
1、删除所有的#define,展开所有的宏定义。
2、处理所有的条件预编译指令,如“#if”、“#endif”、“#ifdef”、“#elif”和“#else”。
3、处理“#include”预编译指令,将文件内容替换到它的位置,这个过程是递归进行的,文件中包含其他文件。
4、删除所有的注释,“//”和“/**/”。
5、保留所有的#pragma 编译器指令,编译器需要用到他们,如:#pragma once 是为了防止有文件被重复引用。
6、添加行号和文件标识,便于编译时编译器产生调试用的行号信息,和编译时产生编译错误或警告是能够显示行号。
(9)程序编译与执行扩展阅读:
编译过程中语法分析器只是完成了对表达式语法层面的分析,语义分析器则对表达式是否有意义进行判断,其分析的语义是静态语义——在编译期能分期的语义,相对应的动态语义是在运行期才能确定的语义。
其中,静态语义通常包括:声明和类型的匹配,类型的转换,那么语义分析就会对这些方面进行检查,例如将一个int型赋值给int*型时,语义分析程序会发现这个类型不匹配,编译器就会报错。
Ⅹ 如何在 Source Insight 中编译和执行Java 程序
由于 Source Insight 的代码易读的优越性能,,使用 Source Insight 编辑 Java 代码是一个不错的选择,当然它不能与专业的 Eclipse 及 Netbeans 这样的IDE 相比;
本人使用它是因为 Source Insight 的体积比较小,可以自定义设置用户命令,用起来也算是得心应手了。
下面介绍一下本人总结的一点关于编译和执行Java程序任务对 Source Insight 用户自定义命令的设置方法。
创建编译 Java 源程序的 用户自定义命令
● 首先在硬盘中创建一个 Java 程序编译和执行的指定路径,我这里创建的是 D:/My Documents/Source Insight/JavaPorjects
这个目录是主要放置 Java 源文件,在这个目录下我又创建了一个 sourcefiles.list 文件,创建这个文件的目的是为了后面编译 Java 程序时需要用它。
● 再上面创建的目录下再创建一个 Classes 子目录,该目录是为了放置编译后的 Java 字节码文件;同时在这个目录下创建一个空的批处理文件 ClassStart.bat ,在下面的步聚中介绍如何编辑这个批处理文件。
● 打开 Source Insight 程序 创建一个 Test_SWT.java 文件 保存在 D:/My Documents/Source Insight/JavaPorjects 目录下;然后在 Source Insight 中打开这个目录下的 sourcefiles.list 文件,在这个空文件中输入刚才创建的那个 Test_SWT.java 文件的名称如下所示,然后保存 sourcefiles.list 文件。
sourcefiles.list
[java] view plain
Test_SWT.java