编译器和编辑器的区别
作者:韩亦乐
链接:http://www.jianshu.com/p/be2ef09cfc2c
来源:简书
编辑器
* NodePad++ * Vim * GNU Emacs * Sublime Text * Atom
编译器
* GCC 编译器
集成开发环境( IDE )
* DEC C++ * Visual Stdio * Eclipse
编辑器
编辑器的概念很简单,百度百科上这么写道:
编辑器是软件程序,一般是指用来修改电脑档案的编写软件,但也有人称 PE2、HE4(汉书)……等文书软件为编辑器。常见的编辑器有文本编辑器、网页编辑器、源程序编辑器、图像编辑器,声音编辑器和视频编辑器等。
当然在这里我们主要讲的是源码(代码)编辑器,一个好的编辑器可以节省开发时间,提高工作效率,它们都是非常方便易用的环境,你可以用它们来编写代码,查看源文件和文档等,简化你的工作。
以下是一些常用的代码编辑器,每个不同的编辑器都有自己特定的历史意义,也有自己针对的编程领域,各领风骚。
NodePad++
Notepad++是一款免费但优秀的代码编辑器,运行在Windows环境下,可以支持多种编程语言。它在50多种程序、脚本和标记语言上都有着语法高亮、代码折叠等功能。用户可以人为设置当前语言,它还支持实现一些编程语言的API。
Vim
Vim是从vi发展出来的一个文本编辑器,在程序员中被广泛使用。它支持语法高亮、显示行号,这都是对程序员重要的辅助功能。用户还可以更换界面的主题颜色,减缓长期编程的疲劳感,让代码更加清晰。它可以自动检查你的拼写错误,提高你的工作效率,对于开发者是一个非常好的选择。
GNU Emacs
Emacs是一个轻便、可扩展、免费的编辑器,它比其它的编辑器要更强大,是一个整合环境,或可称它为集成开发环境。它可以处理文字,图像,高亮语法,将代码更直观地展现给开发者。Emacs可以运行在大多数的操作系统上,而且它支持大多数常用的编程语言,可以自动对代码排版布局。Emacs用户可以根据自身的需要和偏好对编辑器进行定制。
Sublime Test
Sublime Text是具有漂亮的用户界面、强大功能和优良性能的一款代码编辑器,你可以在Windows、OS X和Linux等主流操作系统上运行使用,而且现在一直可以免费使用。
Atom
Atom是免费开源的文本和代码编辑器,它是运行在Atom Shell上,底层依赖的架构是Chromium(Google Chorome的开源项目)。没有人想在使用前浪费大量的时间在配置编辑器上,而在Atom,几乎所有的设置都可以通过设置面板来更改配置,极为现代化。而且它简单易用,上手很快。
以上介绍和截图来自 为你推荐10款开发常用的代码编辑器
编译器
之前的【西邮 Upper -- 002】三种程序设计语言概要介绍过机器语言、编译语言和高级语言的区别,而编译器所做的就是进行这三种语言的互相转换。大多数情况下,编译是从更高级的语言(高级语言、汇编语言)编译成低级语言(汇编语言、机器语言)。
另一种情况是,从他人的可执行程序(低级语言)编译成高级语言,以推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,某些特定情况下可能推导出源代码。这个过程叫做反向编译。

这期主要引入一下 GCC 编译器的概念就好。
GCC 编译器
GCC 原名为 GNU C 语言编译器(GNU C Compiler),因为它原本只能处理 C语言。GCC 很快地扩展,变得可处理 C++。后来又扩展能够支持更多编程语言,如Fortran、Pascal、Objective-C、Java、Ada、Go以及各类处理器架构上的汇编语言等,所以改名GNU编译器套件(GNU Compiler Collection)。
由于gcc是命令行程序,没有特定的 UI 界面,我们在命令行可以用 GCC 进行一个简单的 C 语言编译测试,输出一个 “Hello GCC!”。
之后的分享会深入介绍命令行和 GCC 编译的具体原理。
集成开发环境( IDE )
正如上图,编辑器是用来让程序员优雅的敲代码,编译器是用来将这些高级语言或汇编语言编译成计算机能直接识别并运行的机器语言。如果我们每次编辑完源程序都要在命令行依托编译器进行函数、模块的链接和编译的话岂不是很麻烦,而集成开发环境便很方便的解决了效率问题。
集成开发环境(IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。
由于每个IDE的针对性不同,承载的编译器不同,不同的语言有时需要不同的IDE,这里介绍几个常用IDE。
Dev C++
Dev-C++是一个Windows环境下C/C++的集成开发环境(IDE),它是一款自由软件,遵守GPL许可协议分发源代码。它集合了MinGW等众多自由软件,并且可以取得最新版本的各种工具支持,而这一切工作都是来自全球的狂热者所做的工作。Dev-C++是NOI、NOIP等比赛的指定工具,缺点是Debug功能弱。由于原开发公司在开发完4.9.9.2后停止开发,所以现在正由其它公司更新开发,但都基于4.9.9.2.Dev-C++ 最新版本:5.11。
Visual Stdio
Microsoft Visual Studio(简称VS)是美国微软公司的开发工具包系列产品。VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等。所写的目标代码适用于微软支持的所有平台,包括Microsoft Windows、Windows Mobile、Windows CE、.NET Framework、.NET Compact Framework和Microsoft Silverlight 及Windows Phone。
Eclipse
Eclipse是一个界面友好,供各种用户使用的IDE,它提供了一系列的工具帮助 Web 和 Java 应用程序的开发。尽管 Eclipse 是使用 Java 语言
开发的,但它的用途并不限于 Java 语言,它还支持如 C / C++、JavaScript、Perl、PHP、Fortran、Ruby、Python,甚至 COBOL 语言。它提供很多功能来简化你的开发,内置的工具和 API 支持项目部署、运行和测试。
编译器和编辑器的区别相关推荐
- IDE与编译器、编辑器的区别
目录 一.编译器 二.编辑器 三.IDE 一.编译器 编译器就是将"一种语言(通常为高级语言)"翻译为"另一种语言(通常为低级语言)"的程序.一个现代编译器的主 ...
- 编译器与编辑器以及IDE的区别【前方高能】
一.编译器 编译器的的概念百度词条上面这样子定义: 简单讲,编译器就是将"一种语言(通常为高级语言)"翻译为"另一种语言(通常为低级语言)"的程序.一个现代编译 ...
- python编辑器和python解释器的区别_python编译器和解释器的区别
高级语言不能直接被机器所理解执行,所以都需要一个翻译的阶段,解释型语言用到的是解释器,编译型语言用到的是编译器. 编译型语言通常的执行过程是:源代码--预处理器--编译器--目标代码--链接器--可执 ...
- AI编译器与传统编译器的联系与区别
AI编译器与传统编译器的区别与联系 总结整理自知乎问题 针对神经网络的编译器和传统编译器的区别和联系是什么?. 文中提到的答主的知乎主页:@金雪锋.@杨军.@蓝色.@SunnyCase.@贝壳与知了. ...
- Markdown编辑器和富文本编辑器的区别
目录 引言 Markdown编辑器和富文本编辑器的区别 Markdown的说明 引言 如果想要得到不带任何格式的文字,那么就不需要复杂的工具,windows的自带的文本编辑器就可以. 但是在日常的生活 ...
- java是汇编语言还是高级语言_【整理】编译器和汇编器的区别 + 汇编语言和高级语言的区别...
1. 一些术语 机器码:machine code == 机器指令:machine instruction == 指令instruction 汇编语言:assembly 汇编器:assembler 高级 ...
- 关于编译器与解释器的区别
为了让更多的人能够从本质上理解编译器和解释器的区别,我杜撰了一个小故事 来福与旺财的养牛场 来福和旺财有一个养 牛场.本来养牛不是一件太难的事情,但是偏偏他俩养的牛都有特别的怪癖.奶牛阿圆只吃切成圆形 ...
- 编译器与解释器的区别
为了让更多的人能够从本质上理解编译器和解释器的区别,我杜撰了一个小故事 来福与旺财的养牛场 来福和旺财有一 个养 牛场.本来养牛不是一件太难的事情,但是偏偏他俩养的牛都有特别的怪癖.奶牛阿圆只吃切成圆 ...
- python直接用解释器编写和编辑器的区别_Python语言编译器与解释器
版权声明:本文为博主原创文章,欢迎扩散,扩散请务必注明出处. 一.解释型语言Python Python语言是一种解释型.面向对象.动态数据类型的高级程序设计语言.编译型语言 先整体编译,再执行 运行速 ...
- 手机版的python3编译器,python编辑器安卓下载
如何用手机编程Python? 1.QPython3:这是一个在安卓手机上运行python3的脚本引擎,整合了python3解释器.控制台.QEdit编辑器和SLA4库,可以在安卓手机上运行python ...
最新文章
- 一些通用性的haproxy调优tips
- 网络 IO 演变过程
- Firebug Tutorial (Section 3): Script Tab :Javascript Debugging
- MYSQL电脑客户端免安装教程以及出现问题解决方案
- hystrix 全局熔断_跟我学Spring Cloud(Finchley版)14Feign使用Hystrix
- Python实现双端队列
- OAuth2.0认证服务器之客户端相关配置
- NOIP2013Day1
- 基于OCR的身份证要素提取-2019
- Iptable与firewalld防火墙
- 支持delete吗_那些年删过的库,跑过的路,你从中找到解决方法了吗?
- ORA-00980: 同义词转换不再有效
- correct string value: '\xE8\xB6\x85\xE7\xBA\xA7...' for column 'product_description' at row 1
- VOIP技术连载之二--VOIP呼叫流程
- python 多线程爬虫下载中图分类号
- 你还在找全国省市县大全吗
- 【python初学者日记】selenium初体验——“秒杀商品”、“清空购物车”技能养成记(一)
- 【OpenFPGA安装】OpenFPGA安装及常见问题总结
- Word文档使用Mathtype如何实现公式自动居中并右对齐编号?
- 侍魂服务器维护,侍魂手游8月5日停机维护更新公告
热门文章
- 使用Source Insight查看编辑源代码
- Windows 下部署 Seafile 服务器
- 服务器修改bios中uefi,服务器bios uefi设置
- 展锐物联网芯片V8811—全球首个PSA认证区块链解决方案
- 消息队列及短信发送平台
- 域名设置A记录或CNAME记录,但无法被解析,可能是因为状态为:clientHold
- 墨刀怎么注册_常见的登陆注册原型模板,墨刀都为你准备好了(直接使用)
- java-net-php-python-java西藏文库计算机毕业设计程序
- 罗胖关于管理与企业发展的关系
- python曲线拟合准确度评估_使用Python SciPy量化曲线拟合的质量