语言、跨平台、移植、库、工具包、界面框架、工具链、集成环境之间的关系

语言包含机器语言、汇编语言、C、C++、java、basic、python等,语言配上相关的编译器就是计算机最基本的东西了,各种程序包括操作系统都要最终都是要由一行行语言构成。

语言有不同的特性有些语言是跨平台,有些则不是。所谓跨平台的意思是你写的源代码是不是能在不同的操作系统没有区别的使用。严格来讲语言是没有跨步跨平台这种说法的你总不能说c语言在windows下是C语言而在linux下就不算。跨平台问题是由于不同操作系统的接口调用形式不同的缘故(这往往是因为商业的因素),一个相同的系统服务在windows上的函数名和在linux上的函数名不一样,所以在windwos上写的一段代码到linux上就不能直接使用了,windows特有的接口在linux上没有那么编译就出错了。

当需要把一个应用程序变成能在另外一种操作系统上使用的时候,就需要移植应用程序。这时候需要根据要移植到的操作系统对源代码修改相关系统接口。如果遇到很类似的操作系统(比如PC上的linux和许多嵌入式linux)有可能只需要简单的重新编译即可移植成功。

C、C++不能跨平台,而java和python是跨平台的,java程序可以跨平台的原因是因为这种语言不论在哪种操作系统下相关功能的接口函数是一致的。但是不同的操作系统系统接口总是不一样的,能作到跨平台个人以为是在操作系统之上提供了一种接口转换机制,在系统调用封装一层格式统一的接口适配层。python是一种解释性语言,它的跨平台特性是因为在每种操作系统都提供了一种解释器。

库和工具包是差不多的东西,可以说是一些函数或者类的集合吧,这个是程序员在编程过程中不断积累的关于某个应用领域方面的一套函数集。例如c语言里面有math库、线程thread库,一些经典库最后渐渐成为标准在安装编译器的时候也成为必要的一部分了。

而gtk+,qt是两种典型的界面框架,各自实现了各种窗口元素,用于快速构建界面友好的应用程序。所谓界面框架依我个人理解是各种各样的库和工具包的集合体,就容量来讲要比单一的库要大的多。一些界面框架往往还对相关语言进行了扩展变化,例如Qt就加进了很多独有的元素。也可以把gtk+和qt称之为语言吧,因为两者都往往重新自定义基础的数据结构,尽量让程序员能够在本框架内完成编程任务。

在没有集成环境ide之前程序员的编程工作是透过工具链来完成。工具链与语言和硬件相关,是编译器、连接器、调试器以及辅助程序的工具程序集合。工具链在交叉编译环境中体现较为明显,一个不同的嵌入式平台往往有不同的体系结构,机器码不一定相同,所以对于一种语言要有不同的工具链例如c语言的在x86平台和在arm平台以及在powerPC上都不一样。在交叉编译过程中如果是使用ide环境工作往往需要修改相关编译参数以调用正确的工具链。

集成开发环境ide是进一步为了程序员的方便开发出来的,讲简单的就是集合了工具链和编辑器再配以图形化的工作环境。但是一个好的集成开发环境往往支持多种语言,并提供了较强的语法错误检查,函数接口提示,输入的补齐,源码格式对齐。所以选对一个好的集成开发环境往往能为程序员提高不少工作效率。

集成开发环境和编程框架是不一样的,这个经常容易混淆,编程框架可以认为是大的函数库,在集成开发环境中只要配置适当,就可以使用这种的编程框架。例如QT既可以用官网的QTcreator开发,也可以使用VS2008开发。

现有的集成开发环境非常之多,特别是linux可以说各种各样令人眼花缭乱。简单的介绍一下。

综合性的(支持多语言):

Windows上的VC,Visual Studio是微软的IDE。

Eclipse是跨平台的IDE环境,它的插件机制几乎使得它支持每一种编程语言。

专一的:

linux C/C++:KDeveolop





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值