Linux_2019_5_10(除了gcc,还有哪些常用的编辑器,不限制编程语言,不限制平台)

有时候我们不开心,不幸福,是因为能力跟不上野心,欲望越过了需求!

1.什么是编译器?

1.1 定义

编译器就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。

1.2 编译器的主要工作流程

一个现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 目标代码 (object code) → 链接器 (Linker) → 可执行程序 (executables)。

2.常用编译器介绍

2.1 GCC

2.1.1

指一套编程语言编译器,GNU(gnu’s not unix)编译器套装(gnu compiler collection,gcc),以GPL及LGPL许可证所发行的自由软件,是GNU项目的关键部分,也是GNU工具链的主要组成部分之一。GCC也常被认为是跨平台编译器的实施标准。原本是用C语言开发的,后来因为LLVM、Clang的崛起,它更快的将开发语言转换为C++。原本只能处理C语言,GCC在发布后很快得到扩展,变得可以处理C++。之后也变得可以处理Fortran、Pascal、Objective-C、Java、Ada、Go与其他语言。

2.1.2 GCC已成为主要编译器

许多操作系统,包括许多类Unix系统都采用GCC作为标准编译器。GCC目前由世界各地不同的数个程序员小组维护。它是移植到最多中央处理器架构以及最多操作系统的编译器,已成为编译与创建其它操作系统的主要编译器。GCC通常是跨平台软件的首选,有别于一般局限于特定系统与运行环境的编译器,GCC在所有平台上都使用同一个前端处理程序。

2.1.3 GCC支持的主要处理器架构

ARM、x86、x86-64、MIPS、PowerPC等。

2.2 Clang

2.2.1 clang的介绍

licence极度友好,代码质量非常棒,采用的IR为LLVM IR非常优秀,各大公司逐步发力在Clang上,包括不限于微软,IBM,Nvidia等,各大公司也在开始疯狂的往Clang / LLVM交代码(圈地),也开始往Clang实现OpenMP,Nvidia GPU等支持,目前在赶超GCC的道路上一路激情的狂奔,前途一片光明。但是Clang依赖于的LLVM,目前的性能无法与GCC相提辩论,在Benchmark性能测试上几乎没有胜利的项目,优化的道路上任重道远,同时一些开源软件没有办法编译过去,主要是缺乏对GCC 一些Builtin函数、自身带的汇编器的孱弱导致。

2.2.2

Clang是一个C、C++、Objective-C和Objective-C++编程语言的编译器前端。源代码发布于BSD协议下。Clang将支持其普通lambda表达式、返回类型的简化处理以及更好的处理constexpr关键字。它采用了底层虚拟机(LLVM)作为其后端,它的目标是提供一个GCC的替代品,主要由C++编写。

2.2.3 clang的项目

Clang项目包括Clang前端和Clang静态分析器等。性能优异,其生成的抽象语法树(Abstract Syntax Tree,AST)所耗用掉的内存仅仅是GCC 的20%左右。编译速度快、占用内存小易于IDE集成。

2.3 MSVC

Windows平台上最常用的编译器,在C++编译器圣战中的胜利者,一个常被人诟病的是对标准的支持不够新不够快(最近开始逐步加快了)。随着微软发布基于Clang / C2,这一条路以后若成功,MSVC与Clang / C2并行,甚至逐步逐步退出舞台,都是有可能的事情。

2.4 ICC

没有自己专门的前端(传说中的外包),而且是针对Intel体系结构上专门优化。

2.5 IBM XL C++

在IBM特定硬件与平台上表现非常牛逼,Benchmark性能测试非常优秀,其最初的设计思想就是为了性能,其最高优化级别可以达到O5,带来的缺点则是在编译时间上往往过长。而另外一个常被人诟病的是对C++标准的支持、开源软件的支持、错误信息的提示上都不够友好,然而从13.2开始,随着IBM采用Clang融合方案,目前这几项都得到有效改良,然而融合的道路也必定是漫长的。

2.6 Visual Studio

2.6.1

Microsoft Visual Studio(简称VS)是美国微软公司的开发工具包系列产品。VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等。所写的目标代码适用于微软支持的所有平台,包括Microsoft Windows、Windows Mobile、Windows CE、.NET Framework、.NET Compact Framework和Microsoft Silverlight 及Windows Phone。

2.6.2

Visual Studio是目前最流行的Windows平台应用程序的集成开发环境。支持C类语言、Basic类语言、Java类语言及其他语言,因其强大的功能,占用了很大的用户份额。

2.7 Eclipse

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。大多数用户很乐于将 Eclipse 当作 Java 集成开发环境(IDE)来使用,以达到对代码的编辑、编译、调试等等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值