当前位置:首页 » 编程软件 » 编写编译调试运行工作

编写编译调试运行工作

发布时间: 2022-12-26 10:57:59

编译和调试的区别

编译和调试都是写程序的重要环节。它们两者有什么区别呢?下面,我跟大家分享一下编译和调试的区别。

1.编译和调试的区别

编译是编译器在你程序没有运行的时候帮你检查错误。

调试是你用调试器在程序运行以后,根据运行状况来检查错误。

这两者的不可逆的,首先得编译通过,你才能调试啊,编译正确后,会生成exe文件,IDE中启动程序,可以进行调试。

编译是把源代码变成二进制obj的过程(链接后成为可执行文件),当然会先帮你检查有无简单的语法问题,要不编译器人家不认识,你自己说的有无逻辑就和编译器无关了。

调试首先需要生成二进制代码,所以需要首先进行编译和链接,然后到断点后,调试器会帮你加int 3中断,就停住了。

编译关注语法错误,调试关注逻辑错误。也就是说编译关注的是syntax(语法)方面的问题,调式关注的是semantics(语义)方面的问题。

2.编译词法分析

词法分析的任务是对由字符组成的单词进行处理,从左至右逐个字符地对源程序进行扫描,产生一个个的单词符号,把作为字符串的源程序改造成为单词符号串的中间程序。执行词法分析的程序称为词法分析程序或扫描器。

源程序中的单词符号经扫描器分析,一般产生二元式:单词种别;单词自身的值。单词种别通常用整数编码,如果一个种别只含一个单词符号,那么对这个单词符号,种别编码就完全代表它自身的值了。若一个种别含有许多个单词符号,那么,对于它的每个单词符号,除了给出种别编码以外,还应给出自身的值。

词法分析器一般来说有两种方法构造:手工构造和自动生成。手工构造可使用状态图进行工作,自动生成使用确定的有限自动机来实现。

3.编译语法分析

编译程序的语法分析器以单词符号作为输入,分析单词符号串是否形成符合语法规则的语法单位,如表达式、赋值、循环等,最后看是否构成一个符合要求的程序,按该语言使用的语法规则分析检查每条语句是否有正确的逻辑结构,程序是最终的一个语法单位。编译程序的语法规则可用上下文无关文法来刻画。

语法分析的方法分为两种:自上而下分析法和自下而上分析法。自上而下就是从文法的开始符号出发,向下推导,推出句子。而自下而上分析法采用的是移进归约法,基本思想是:用一个寄存符号的先进后出栈,把输入符号一个一个地移进栈里,当栈顶形成某个产生式的一个候选式时,即把栈顶的这一部分归约成该产生式的左邻符号。

4.代码优化

代码优化是指对程序进行多种等价变换,使得从变换后的程序出发,能生成更有效的目标代码。所谓等价,是指不改变程序的运行结果。所谓有效,主要指目标代码运行时间较短,以及占用的存储空间较小。这种变换称为优化。

有两类优化:一类是对语法分析后的中间代码进行优化,它不依赖于具体的计算机;另一类是在生成目标代码时进行的,它在很大程度上依赖于具体的计算机。对于前一类优化,根据它所涉及的程序范围可分为局部优化、循环优化和全局优化三个不同的级别。

4.编译出错处理

如果编译过程中发现源程序有错误,编译程序应报告错误的性质和错误的发生的地点,并且将错误所造成的影响限制在尽可能小的范围内,使得源程序的其余部分能继续被编译下去,有些编译程序还能自动纠正错误,这些工作由错误处理程序完成。

需要注意的是,一般上编译器只做语法检查和最简单的语义检查,而不检查程序的逻辑。逻辑错误要通过调试。

我总结:

看完了上面的比较,你现在还能区别编译与调试吗?其实,只要记住这句话:“编译关注语法错误,调试关注逻辑错误,先有编译,后有调试”,就不会忘了两者的区别了。

c语言中编译 生成 调试 测试 运行各是什么意思有什么区别

C语言中编译 生成 调试 测试 运行的区别如下:

区别一:

从编译方面来看:

编译依赖于编译器,英文是compile, vc中这一过程是将源代码转换成目标文件,如:obj文件,rc文件等。

区别二:

从生成方面来看:

生成指的是连接的过程,英文是build,依赖于链接器。vc中在这一阶段将所有的目标文件和所有需要用到的组件组合成一个整体,例如需要生成的是windows系统下的PE可执行文件,链接器会依照特定格式将目标文件组合,最后生成PE格式的,exe或dll文件。

区别三:

从调试方面来看:

调试是所有或部分代码编写完成后,让程序在调试器中运行,用这种手段对程序进行分析,找出并修正潜在问题。

区别四:

从运行方面来看:

运行就是让程序在系统中运行。

(2)编写编译调试运行工作扩展阅读:

C语言的介绍:

C语言是目前流行的通用程序设计语言,是计算机专业人员和计算机爱好者开发软件的首选开发工具。C语言源程序必须经过某种编译工具翻译成为目标机器语言程序才能够在计算机上执行。

然而随着程序编写规模的扩大,顺利编写出正确的程序绝非一件容易的事情,早期的许多编译工具仅仅提供翻译功能,已满足不了应用的要求,编程人员需要-种功能全面并高度集成的编译环境。

程序是一段具有一定功能的代码,编写程序的目的是解决问题。当程序人员写完程序后,其实并不起作用,只有当编写的程序经过一系列的处理后,能够解决问题时。

序才成为真正的程序,这一系列的处理过程,-般就是编辑、编译、连接、调试与运行等。目前最成熟的C语言集成环境主要有Turbo C2.0和Turbo C 3.0( 简称TC30)或Borland C++3.1( 简称BC31)以及Visual C++ 6.0。

㈢ c++编译器里的调试,编译,运行都是什么意思啊,有什么区别啊

出现这种情况的原因可能有很多,最常见的就是源代码和程序不匹配导致的,可以这样设置
工具-》选项-》调试
将其中的“要求源文件与原始版本完全匹配”的钩去掉,然后再试试看。

㈣ 编译、调试、汇编各指什么样的操作

编译 将自然语言写的程序源代码翻译为机器码或其它中间代码.
调试 即程序在开发工具的跟踪, 监视下运行, 方便程序的排错, 执行

汇编 使用不同的字符(串)代替机器码, 方便记忆和编写机器码

㈤ 如何使用VisualStudio2013编写和调试c语言程序

现在大多数同学用的电脑都是Windows 8和8.1,使用VC6.0存在兼容性问题,对于初学者来说是一件很麻烦的事情。而Visual Studio 2013 是一个很强大的工具,很多同学选择了vs2013却不知如何使用,下面我就以简单的工程为例,介绍一下使用vs2013建立和调试C或C++程序。

电脑上安装微软公司的VS2013,可以从dreamspark 上下载正版或通过其他途径获得,安装即可。
打开VS2013,出现如图界面

可以通过点击文件 - - 新建 - - 项目 建立工程或者点击 欢迎页的“新建项目”建立工程。

弹出对话框,勾选 “空项目”建立工程,工程名可任意填英文字符,如project1,其他不用填。

建立工程后,在右侧有一个“解决方案资源管理器”,找到源文件,右击,再左击 添加 - - 新建项 - - C++文件,这样就在工程project1 下建立了一个源文件,名称比如为 源.cpp ,就可以编辑代码了。 如果你已经用其他 字符编辑软件写好了 C++源程序,也可以右击 源文件,左击 - - 现有项,在文件夹中找到你的源程序添加到工程下。

编辑好了源文件,就可以运行或调试了,初学者是写简单的程序,所以只用一个源文件就行了。点击 调试 - - 开始运行(不调试) 就直接编译运行,有错误的话系统会提示。

如果要调试,可以 点击 调试 - - 逐语句(F10)或 逐过程(F11)

或者 设置断点

调试前 点击调试 -- 窗口(也就是watch) 可以选择不同的显示结果, 可以显示出变量的变化过程,方便调试。 点击 “继续”结束调试。

㈥ 在linux里,c程序的编辑、编译、调试的详细步骤是什么

(1)用工具写好C程序...比如vi
(2)打开终端,进入你存放C语言代码的路径 例如: cd /opt/
(3)gcc a.c -o abc 意思是:把你的a.c编译成abc可执行文件
(4)在当前目录终端下 运行生成的abc,例如: ./abc 前面的.不要掉了
后面可以用gdb进行调试,你可以自己去学习...这是最基本的!!

㈦ c语言中的编辑,编译,连接,运行分别是什么意思

1、编辑:编写代码,制作C语言的源文件。

2、编译:是由编译程序将C语言源文件转换成二进制中间文件,对文件内部的语法语义做处理,如果编译出错,无法进行后续动作。

3、链接:将编译中生成的中间文件组合成二进制可执知行文件,这一步会对文件之间的关联做检查,如果出错,将不会生成可执行文件,也就无法执行。

4、执行:运行可执行文件,这一步道是编写代码的最终目的。

(7)编写编译调试运行工作扩展阅读:

DOS命令通常分为三类:内部命令、外部命令和批处理命令。

1、内部命令:

其包含在命令解释程序COMMAND.COM中,一旦启动DOS,这些命令就被调入内存,只要在DOS系统提示符下输入这些命令,就可立即执行。

2、外部命令:

其以文件的形式存储在系统盘上,所带扩展名为COM和EXE。DOS启动时,它们并没有被调入内存,执行前必须从系统盘读进内存。因此输入外部命令时,要了解该命令是否在当前盘上,不然DOS无法找到它们。

3、批处理命令:

实际上是个文件,该文件包含多条命令,当用户键入批处理文件名时,DOS将顺序执行其中的各条命令。注意,批处理命令必须用“.BAT”作为扩展名。

C语言的运算非常灵活,功能十分丰富,运算种类远多于其它程序设计语言。在表达式方面较其它程序语言更为简洁,如自加、自减、逗号运算和三目运算使表达式更为简单。

当多种不同运算组成一个运算表达式,即一个运算式中出现多种运算符时,运算的优先顺序和结合规则就会显得十分重要。

网络-运行命令

网络-C语言

㈧ 如何在记事本和Visual Studio 2005中如何编写、编译和运行C#文件

在笔记本中写好一个csharp的类,然后保存为xxx.cs,然后用csharp编译器csc 命令,如
csc xxx.cs
即可编译你写的c#程序了

直接用vs2005的话,超简单,新建一个项目,写好代码,然后点击“调试”按钮就可以编译并运行了。

㈨ 如何使用VisualStudio2013编写和调试c语言程序

用VS2013编写和调试C语言程序,首先应建立项目工程。


文件-->新建-->项目

㈩ C语言中编译 生成 调试 测试 运行各是什么意思有什么区别

意思和区别如下:
1、编译:依赖于编译器,英文是compile, vc中这一过程是将源代码转换成目标文件,如.obj文件,.rc文件等。
2、生成:指的是链接的过程,英文是build.依赖于链接器. vc中在这一阶段将所有的目标文件和所有需要用到的组件组合成一个整体,例如需要生成的是windows系统下的PE可执行文件,链接器会依照特定格式将目标文件组合,最后生成PE格式的.exe或.dll文件。
3、调试:是所有或部分代码编写完成后,让程序在调试器中运行,用这种手段对程序进行分析,找出并修正潜在问题。
4、运行:就是让程序在系统中运行。

热点内容
solidworkspcb服务器地址 发布:2025-07-18 22:50:35 浏览:815
怎么在堆叠交换机里配置vlan 发布:2025-07-18 22:42:35 浏览:623
java调用别人的接口 发布:2025-07-18 22:37:35 浏览:433
服务器四个节点如何联网 发布:2025-07-18 22:36:02 浏览:271
华强北什么地方休安卓手机 发布:2025-07-18 22:24:56 浏览:735
数据库的根本目标 发布:2025-07-18 21:37:50 浏览:938
压缩机的流速 发布:2025-07-18 21:37:40 浏览:407
三星怎么取消手机密码 发布:2025-07-18 21:33:50 浏览:630
安卓手机耳机如何弹窗显示电量 发布:2025-07-18 21:20:53 浏览:60
云服务器搭建需要什么工具 发布:2025-07-18 20:51:08 浏览:322