概述
MinGW -将GNU开发工具移植到Win32平台下的计划
Cygwin - 在Windows上运行GNU程序的模拟软件
(2011-04-02 16:39:57)
程序开发从时间先后顺序上可以分为三个阶段:1、编码阶段,2、编译阶段,3、运行阶段。
在编码阶段我们使用程序设计语言,根据特定的文法利用程序设计语言来编码。就像是根据英语的语法用英语语言来写文章。当然一种语言也有很多版本,比如说Basic语言就有QuickBasic,Visual Basic(图形用户界面的Basic),Visual Basic2003,Visual Baisic 2010等。C语言就有ANSI C,以及目前比较流行的Microsoft C,Bordland TurboC,AT&T C等。编译器和语言的关系就是,翻译者和语言的关系,也就是说编译器能识别并翻译这种语言,然后生成目标程序。编译器除了提供编译功能外还会提供一些运行库,所谓运行库就是事先写好的子程序所组成的子程序库,例如C语言中的Printf函数,就是由C的运行库提供的。简单来说,编译器就是由编译程序和运行库组成的。在程序的编译阶段,就是使用编译器对源程序进行编译生成目标程序。
在程序的运行阶段则是在一个特定的平台上,由这个平台来执行编译生成的程序。Java虚拟机是一个平台,DOS 和 Windows 也是平台,编译器的作用就是沟通源程序和程序的运行平台。源程序相对于一个运行平台来说是不可识别的,但当编译器将源程序编译成为这个平台所能够识别的目标语言以后,程序就可以在这个平台上运行了。
应该看到,编译器在其中起到了桥梁的作用。我们现在可以明确一些概念了,程序设计语言只是语言,它本身很难说有什么好坏,这就如同说“汉语和英语哪个好”一样。我们可以使用某种程序设计语言书写自己的程序,向计算机表达自己希望完成的功能。这个阶段,我们称为编码阶段。
编译器由编译程序和运行库组成,编译程序负责将源程序翻译成为目标程序,运行库提供了一些基本的子程序给程序编写者使用。编译器有两个特性,第一个是对语言的支持,例如 TC 编译器是支持 ANSI C 的,而 GCC 则是一个能够支持多种语言的编译器。然而不同的编译器除了提供对某种语言的支持以外,还可能对该语言进行了某些功能扩充。但是编译器在对语言的支持上,差别不是很大,因为程序设计语言都是基于一个标准来制定的,例如 ANSI C。第二个特性就是对运行平台的支持。平台指的是一个程序运行所需要的所有软件和硬件的基础。编译器对运行平台的支持,是通过将源程序编译成为目标程序,以及编译器所提供的运行库来实现的。例如,TC只能将C源程序编译生成,使用 80x86 CPU,操作系统为 DOS 的 16bit DOS 程序。VC只能将C源程序编译生成 80x86CPU、操作系统为 Windows的 32bitWindows 程序。使用编译器对源程序进行编译被称为编译阶段,这个阶段编译程序将源程序编译为某个平台的目标代码。程序在具体的平台上运行时,被称为运行阶段。
应该指出,在编码阶段使用到的是程序设计语言,以及编译器所提供的库函数,这个阶段产生的是源程序。在编译阶段使用的是源程序和编译器,这个阶段产生的是目标程序。在运行阶段使用到的是目标程序和运行平台,这个时候产生的是程序运行结果。
接下来认识一下开发环境。为了能够方便程序设计者进行编码、调试等工作,编译器制造商在制作好一个编译器以后,都会提供一个集成开发环境(又称为IDE)。在这个 IDE 中,用户可以完成编码、编译、调试、运行的全部工作。并且在最新的IDE中,可能还会提供一个可视化的设计功能,可以方便用户进行程序界面的设计。例如 VB 等。另外一个方面,开发环境除了包括 IDE 以外,还包括了程序运行的平台。比如硬件是 IBM PC 兼容机,操作系统是 Windows 等。
有了以上的基础我们来了解一下C语言的编译器,C语言编译器可以分为C和C++两大类,其中C++是C语言的超集,可以向下支持C。目前主流的C语言编译器有:
一、TC 2.0(Turbo C 2.0 简称)
TC 2.0,DOS平台下的编译器。最为经典的C语言编译器,系统体积小,简单易学,容易上手,而且很多前人或书籍的程序均基于该编译器,是学习C语言的首选。不过它不支持鼠标,但读者如果掌握几个快捷键,操作时对鼠标可能就不怎么需要了。
二、TC 3.0(Turbo C++ 3.0简称)
TC 3.0,也是DOS平台下的编译器件。目前比较不错的C/C++语言编译器,支持鼠标,语法着色,多文档,错误跟踪也很好,操作与TC2.0有很多类似,TC2.0会用那么 TC3.0也很快会用,缺点是以前很多代码是用TC2.0设计的,而由于TC3.0语法要求的严格性,如要求函数必须定义类型,所以向下存在一定的兼容性问题,所以对于初学者选择起来很矛盾,建议先学会使用TC2.0,而把TC3.0作为能力的补充和平时工具之用。
三、VC++ 6.0
这个正是我们熟知的Visual Studio 和 Visual Studio.net 2002, 2003以及2005(Whidbey)中带的C++编译器。Windows平台的编译器。目前主流的C/C++语言编译器,包含强大的类和内嵌WinAPI的MFC,具有可视化的编程界面。对于TC等的作品也具有向下兼容的特点,建议读者选用作为C语言过渡到Windows平台编程的首选工具。当然,作为学习,该系统显得有点庞大,不过通过入门的学习,调试旧的Tc程序也可以。
四、Borland C++
这个是Borland C++ Builder和Borland C++ Builder X这两种开发环境的后台编译器。Borland C++由老牌开发工具厂商Borland倾力打造。该公司的编译器素以速度快,空间效率高著称,Borland C++ 系列编译器秉承了这个传统,属于非常优质的编译器。
标准化方面早在5.5版本的编译器中对标准化C++的兼容就达到了92.73%。目前最新版本是Borland C++ Builder X中的6.0版本,官方称100%符合ANSI/ISO的C++标准以及C99标准。嗯…这正是我前面所指的“完全符合C++标准的编译器”。
五、GNU C++
著名的优秀C++编译器。Linux/Unix平台上的首选,而且支持N中硬件平台,如果想进行跨平台编译的话,这是一个不错的选择。特点是有非常好的移植性,你可以在非常广泛的平台上使用它,同时也是编写跨平台,嵌入式程序很好的选择。
另外在符合标准这个方面一直都非常好,GCC3.3大概能够达到96.15%。但是由于其跨平台的特性,在代码尺寸速度等优化上略微差一点。
基于GNU C++的编译器有很多,比如:
六、Intel C++
著名CPU制造厂商Intel出品的编译器,Special Design for Intel x86!对于Intel x86结构的CPU经过特别的优化。在有些应用情况下,特别是数值计算等高性能应用,仅仅采用Intel的编译器编译就能大幅度的提高性能。
七、Digital Mars C++
网络上提供免费下载,Zortech/Symantec C++的继承者,其前身在当年惨烈的C++四国战中也是主角之一。
最后
以上就是细腻大船为你收集整理的编译器一:程序设计语言、编译器和开发环境之间的关系的全部内容,希望文章能够帮你解决编译器一:程序设计语言、编译器和开发环境之间的关系所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复