本期内容源于CSDN,作者未知
修改+补充:探姬
一句话一个用来写,一个用来跑,一个能写能跑(雾


一、编辑器

编辑器的概念很简单,百度百科上这么写道:

编辑器是软件程序,一般是指用来修改电脑档案的编写软件,但也有人称 PE2、HE4(汉书)……等文书软件为编辑器。常见的编辑器有文本编辑器、网页编辑器、源程序编辑器、图像编辑器,声音编辑器和视频编辑器等。

当然在这里我们主要讲的是代码编辑器,一个好的编辑器可以节省开发时间,提高工作效率,它们都能提供非常方便易用的开发环境。你可以用它们来编写代码,查看源文件和文档等,简化你的工作。以下是一些常用的代码编辑器,每个不同的编辑器都有不尽相同的目标用户群体。(注意目前阶段你只需了解)

NodePad++ :

Notepad++ 是一款免费但优秀的代码编辑器,运行在 Windows 环境下,可以支持多种编程语言。

Vim :

Vim 是从 vi 发展出来的一个文本编辑器,在程序员中被广泛使用,运行在Linux环境下。

GNU Emacs :

Emacs 是一个轻便、可扩展、免费的编辑器,它比其它的编辑器要更强大,是一个整合环境,或可称它为集成开发环境。它可以处理文字,图像,高亮语法,将代码更直观地展现给开发者。

二、编译器

机器语言、汇编语言和高级语言区别
1. 机器语言
计算机执行的二进制命令,都是0和1表示的。
2. 汇编语言
具有一定意义的文字命令,与机器语言一一对应。汇编语言可以通过汇编得到机器语言,机器语言可以通过反汇编得到汇编语言。汇编过程还包括变量内存管理,即经过汇编之后所有的变量和函数都变成了地址,而常量也变成了对应的值。
但是汇编语言还是不够直观,一个简单的动作需要大量的语句来描述,因此又有了高级语言。
3. 高级语言
更简单,符合人们的习惯,也更容易理解和修改。高级语言经过编译器编译之后可以得到目标程序。
编译器的作用就是把高级语言的源代码转换成对应平台的目标代码。高级语言书写比较简单,但是翻译起来比较复杂,同样的高级语言语句可以有不同的机器语言实现方法。
而编译器所做的就是进行这三种语言的互相转换。大多数情况下,编译是从更高级的语言(高级语言、汇编语言)编译成低级语言(汇编语言、机器语言)。
另一种情况是,从他人的可执行程序(低级语言)编译成高级语言,以推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,某些特定情况下可能推导出源代码。这个过程叫做反向编译。
编译器:将你所编辑的源代码编译成机器所能理解的语言,比如VC++把你的.cpp文件编译成.obj文件(经过编译器编译这时的代码计算机已经可以识别),而最后的.exe则是通过连接生成的(这里的工作是由连接器完成的,跟编译器无关)。
image.png

C编译器:

目前使用的Win平台的编译器为MinGW:

MinGW,是Minimalist GNUfor Windows的缩写。它是一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合,允许你在GNU/LinuxWindows平台生成本地的Windows程序而不需要第三方C运行时(C Runtime)库。MinGW 是一组包含文件和端口库,其功能是允许控制台模式的程序使用微软的标准C运行时(C Runtime)库(MSVCRT.DLL),该库在所有的 NT OS 上有效,在所有的 Windows 95发行版以上的 Windows OS 有效,使用基本运行时,你可以使用 GCC 写控制台模式的符合美国标准化组织(ANSI)程序,可以使用微软提供的 C 运行时(C Runtime)扩展,与基本运行时相结合,就可以有充分的权利既使用 CRT(C Runtime)又使用 WindowsAPI功能。

C++编译器:

微软的C++ cl编译器; Borland的C++ bcb编译器;免费的C++ gcc编译器。 这里使用 GCC 编译器的相关概念作出探讨。

GCC 编译器:

GCC 原名为 GNU C 语言编译器(GNU C Compiler),因为它原本只能处理 C 语言。后来 GCC 通过很快地扩展变得可以处理 C++ 甚至 Fortran、Pascal、Objective-C、Java、Ada、Go 以及各类处理器架构上的汇编语言等,所以改名GNU编译器套件(GNU Compiler Collection)。

三、集成开发环境( IDE )

可以看到,编辑器是用来让程序员优雅的敲代码,编译器是用来将这些高级语言或汇编语言编译成计算机能直接识别并运行的机器语言。如果我们每次编辑完源程序都要在命令行依托编译器进行函数、模块的链接和编译的话岂不是很麻烦,于是集成开发环境的出现很快的完善了开发效率问题。
集成开发环境(IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。
由于每个 IDE 的针对性不同,承载的编译器不同,不同的语言有时需要不同的IDE,这里介绍几个常用 IDE。

Code::Blocks :

一个开放源码的全功能的跨平台C/C++集成开发环境。 Code::Blocks是开放源码软件。Code::Blocks由纯粹的C++语言开发完成,它使用了著名的图形界面库wxWidgets(3.x)版。对于追求完美的C++程序员,再也不必忍受Eclipse的缓慢。

(他是目前学校教学中所用的IDE)

Dev C++ :

Dev-C++是一个 Windows 环境下开发 C/C++ 语言的集成开发环境(IDE),它是一款自由软件,遵守 GPL 许可协议分发源代码。(这是一个对新手很友好的IDE,但是呢,错误也比较多,可用于满足初期编程)

Visual Studio

Microsoft Visual Studio(简称VS)是美国微软公司的开发工具包系列产品。VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如 UML 工具、代码管控工具、集成开发环境(IDE)等等。

Visual Studio Code

Visual Studio Code(简称“VS Code” )是Microsoft在2015年4月30日Build开发者大会上正式宣布一个运行于 Mac OS XWindowsLinux 之上的,针对于编写现代Web云应用的跨平台源代码编辑器, 可在桌面上运行,并且可用于WindowsmacOSLinux。它具有对JavaScriptTypeScriptNode.js的内置支持,并具有丰富的其他语言(例如C++C#JavaPythonPHPGo)和运行时(例如.NETUnity)扩展的生态系统

(他比VS更轻量)

Eclipse** **

Eclipse是一个界面友好,供各种用户使用的 IDE,它提供了一系列的工具帮助 Web 和 Java 应用程序的开发。尽管 Eclipse 是使用 Java 语言开发的,但它的用途并不限于 Java 语言。它还支持如 C / C++、JavaScript、Perl、PHP、Fortran、Ruby、Python,甚至 COBOL 语言。它提供很多功能来简化你的开发,内置的工具和 API 支持项目部署、运行和测试。

JetBrains的全家桶:

这里那IDEA来举例子

IDEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构JavaEE支持、各类版本工具(gitsvn等)、JUnitCVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。IDEA是JetBrains公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。它的旗舰版本还支持HTMLCSSPHPMySQLPython等。免费版只支持Java,Kotlin等少数语言。