IDE SDK 编译器 链接器 调试器 库等等环境配置时的名词解释及关系

来源:互联网 发布:mac os 导入安卓照片 编辑:程序博客网 时间:2024/05/21 17:26

visual studio 美国微软公司的开发工具包系列产品,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等。


UML工具是什么:建模用的,建模就是建立模型,就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。在编程前,对程序的结构进行计划。

IDE重点解释

IDE:集成开发环境IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器编译器调试器和图形用户界面工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。所有具备这一特性的软件或者软件套(组)都可以叫集成开发环境。如微软的Visual Studio系列,Borland的C++ Builder、Delphi系列等。该程序可以独立运行,也可以和其它程序并用。IDE多被用于开发HTML应用软件。例如,许多人在设计网站时使用IDE(如HomeSiteDreamWeaver等),因为很多项任务会自动生成。

IDE是编程最主要的工具,一般程序编译运行全部需要IDE的参与,屏蔽了编译时的细节,是以界面形式呈现的。

IDE区别于SDK的地方在于:SDK更底层。比如windows每出一个版本,就会推出一个SDK,因为只有这个SDK能提供编写使用新版本windows的功能,在新版本windows上运行的程序,说明SDK包含了一些在该系统上的接口/标准协议之类的(我猜的)

IDE主要有哪些:eclipse,visual studio等等。

IDE可以支持多种语言,比如visual studio预置支持了多种语言。而eclipse通过安装插件支持更多的语言。

IDE是编辑器,编译器,链接器, 调试器,(解释语言的解释器),还有各种库组合在一起形成的,各自可以剥离开来。

————————————————————————————————————————————————————————————


代码编辑器,类似于笔记本,只提供编辑功能,只是把语法用不同颜色标识出来,根据程序员习惯方便编写过程

编译器:简单讲,编译器就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。一个现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 目标代码 (object code) → 链接器(Linker) → 可执行程序 (executables)
高级计算机语言便于人编写,阅读交流,维护。机器语言是计算机能直接解读、运行的。编译器将汇编或高级计算机语言源程序(Source program)作为输入,翻译成目标语言(Target language)机器代码的等价程序。源代码一般为高级语言 (High-level language), 如Pascal、C、C++、Java、汉语编程等或汇编语言,而目标则是机器语言的目标代码(Object code),有时也称作机器代码(Machine code)。
对于C#、VB等高级语言而言,此时编译器完成的功能是把源码(SourceCode)编译成通用中间语言(MSIL/CIL)的字节码(ByteCode)。最后运行的时候通过通用语言运行库的转换,编程最终可以被CPU直接计算的机器码(NativeCode)。
链接器(Linker)是一个程序,将一个或多个由编译器汇编器生成的目标文件外加库链接为一个可执行文件
调试器调试器的工作原理是基于中央处理器的异常机制,并由操作系统的异常分发\事件分发的子系统(或模块)负责将其封装处理后,以比较友好的方式与调试器进行实时交互。
每当调试器捕获到一个异常\事件之后,将会根据调试器的自身逻辑来判定是否需要接管这个异常\事件,并决定由调试器的哪个函数来接管。当调试器接管下来这个异常\事件后,将根据用户的需求对其进行进一步的处理,处理完毕后再通知系统已经处理完毕,此时新一轮的异常\事件捕获、分发循环开始。
解释器解释器(英语:Interpreter),又译为直译器,是一种电脑程序,能够把高级编程语言一行一行直接转译运行。解释器不会一次把整个程序转译出来,只像一位“中间人”,每次运行程序时都要先转成另一种语言再作运行,因此解释器的程序运行速度比较缓慢。它每转译一行程序叙述就立刻运行,然后再转译下一行,再运行,如此不停地进行下去。
库文件即DLL(Dynamic Link Library)文件,是动态链接库文件,又称“应用程序拓展”,是软件文件类型。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我们执行某一个程序时,相应的DLL文件就会被调用。一个应用程序可使用多个DLL文件,一个DLL文件也可能被不同的应用程序使用,这样的DLL文件被称为共享DLL文件。[1] 

解释器和编译器的差别:  解释器是一条一条的解释执行源语言。比如php,postscritp,javascript就是典型的解释性语言。  

  编译器是把源代码整个编译成目标代码,执行时不在需要编译器,直接在支持目标代码的平台上运行,这样执行效率比解释执行快很多。比如C语言代码被编译成二进制代码(exe程序),在windows平台上执行。

也就是,解释器是读一条就执行一条,编译器是把程序全部翻译好了,让平台去执行,编译器的效率更高


当引用dll文件时,就可能会产生依赖。

依赖项

编辑
当某个程序或 DLL 使用其他 DLL 中的 DLL 函数时,就会创建依赖项。因此,该程序就不再是独立的,并且如果该依赖项被损坏,该程序就可能遇到问题。例如,如果发生下列操作之一,则该程序可能无法运行:
  • 依赖 DLL 升级到新版本。
  • 修复了依赖 DLL。
  • 依赖 DLL 被其早期版本覆盖。
  • 从计算机中删除了依赖 DLL。
这些操作通常称为 DLL 冲突。如果没有强制实现向后兼容性,则该程序可能无法成功运行。
GCC的意思并不是编译器,而是编译器的一种,
gcc 最开始的时候是 GNU C Compiler, 如你所知,就是一个c编译器。但是后来因为这个项目里边集成了更多其他不同语言的编译器,GCC就代表 the GNU Compiler Collection,所以表示一堆编译器的合集。 g++则是GCC的c++编译器。虽然c++是c的超集,但是两者对语法的要求是有区别的
编译器还有:GCC、LLVM、OPEN64
思考:GCC和G++的关系

参考:http://blog.csdn.net/u012150179/article/details/23618575

https://www.zhihu.com/question/20940822

https://www.zhihu.com/question/19970105

http://www.cnblogs.com/sword03/archive/2010/06/27/1766147.html

0 0
原创粉丝点击