Files
fzu-product/3.编程思维体系构建/3.1该使用哪个编辑器???.md
2023-07-25 20:41:22 +08:00

90 lines
7.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 3.1 该使用哪个编辑器???
## 编辑器,编译器,集成开发环境
我们平时所说的程序是指双击后就可以直接运行的程序这样的程序被称为可执行程序Executable Program
在 Windows 下,可执行程序的后缀主要有 .exe
在类 UNIX 系统STFW可执行程序没有特定的后缀系统根据文件的头部信息来判断是否是可执行程序
可执行程序的内部是一系列计算机指令和数据的集合它们都是二进制形式的CPU 可以直接识别,毫无障碍;但是对于程序员,它们非常晦涩,难以记忆和使用。
(你也不想用一沓纸带写程序吧)
### 什么是编辑器
编辑器的概念很简单,百度百科上这么写道:
> 编辑器是软件程序,一般是指用来修改电脑档案的编写软件,但也有人称 PE2、HE4汉书……等文书软件为编辑器。常见的编辑器有文本编辑器、网页编辑器、源程序编辑器、图像编辑器声音编辑器和视频编辑器等。
当然在这里我们主要讲的是代码编辑器,一个好的编辑器可以节省开发时间,提高工作效率,它们都能提供非常方便易用的开发环境。你可以用它们来编写代码,查看源文件和文档等,简化你的工作。以下是一些常用的代码编辑器,每个不同的编辑器都有不尽相同的目标用户群体。
- <em>Visual Studio Code</em> : 微软 VS 系列的新作品,适用于多平台的代码编辑器,其很好服从了轻量化 + 拓展的 Unix 思想,在整体快捷方便的同时具有极强的功能拓展空间,是值得首要推荐的编辑器。
- <em>Vim </em>: Vim 是从 vi 发展出来的一个文本编辑器,在程序员中被广泛使用,运行在 Linux 环境下。
- <em>GNU Emacs</em> : Emacs 是一个轻便、可扩展、免费的编辑器,它比其它的编辑器要更强大,是一个整合环境,或可称它为集成开发环境。它可以处理文字,图像,高亮语法,将代码更直观地展现给开发者。
### 什么是编译器
C 语言代码由固定的词汇按照固定的格式组织起来,简单直观,程序员容易识别和理解,但是对于 CPUC 语言代码就是天书根本不认识CPU 只认识几百个二进制形式的指令。这就需要一个工具,将 C 语言代码转换成 CPU 能够识别的二进制指令,也就是将代码加工成 .exe 程序这个工具是一个特殊的软件叫做编译器Compiler
编译器能够识别代码中的词汇、句子以及各种特定的格式并将他们转换成计算机能够识别的二进制形式这个过程称为编译Compile
·机器语言、汇编语言和高级语言区别
1. 机器语言
计算机执行的二进制命令,都是 0 和 1 表示的。
2. 汇编语言
具有一定意义的文字命令,与机器语言一一对应。汇编语言可以通过汇编得到机器语言,机器语言可以通过反汇编得到汇编语言。汇编过程还包括变量内存管理,即经过汇编之后所有的变量和函数都变成了地址,而常量也变成了对应的值。
但是汇编语言还是不够直观,一个简单的动作需要大量的语句来描述,因此又有了高级语言。
3. 高级语言
更简单,符合人们的习惯,也更容易理解和修改。高级语言经过编译器编译之后可以得到目标程序。
编译器的作用就是把高级语言的源代码转换成对应平台的目标代码。高级语言书写比较简单,但是翻译起来比较复杂,同样的高级语言语句可以有不同的机器语言实现方法。
而<u>编译器所做的就是进行这三种语言的互相转换。大多数情况下,编译是从更高级的语言(高级语言、汇编语言)编译成低级语言(汇编语言、机器语言)。</u>
另一种情况是,从他人的可执行程序(低级语言)编译成高级语言,以推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,某些特定情况下可能推导出源代码。这个过程叫做反向编译。
编译器:将你所编辑的源代码编译成机器所能理解的语言,比如 VC++ 把你的.cpp 文件编译成.obj 文件(经过编译器编译这时的代码计算机已经可以识别),而最后的.exe 则是通过连接生成的(这里的工作是由连接器完成的,跟编译器无关)。
语言的编译器有很多种,不同的平台下有不同的编译器,例如:
- Windows 下常用的是微软开发的 cl.exe它被集成在 Visual Studio 或 Visual C++ 中,一般不单独使用;
- Linux 下常用的是 GUN 组织开发的 GCC很多 Linux 发行版都自带 GCC
- Mac 下常用的是 LLVM/Clang它被集成在 Xcode 中Xcode 以前集成的是 GCC后来由于 GCC 的不配合才改为 LLVM/ClangLLVM/Clang 的性能比 GCC 更加强大)。
你的代码语法正确与否,编译器说了才算,我们学习 C 语言,从某种意义上说就是学习如何使用编译器,让编译器生成可执行程序(例如 Windows 下的 .exe 程序)。
编译器可以 100% 保证你的代码从语法上讲是正确的,因为哪怕有一点小小的错误,编译也不能通过,编译器会告诉你哪里错了,便于你的更改。
### 什么是集成开发环境
实际开发中,除了编译器是必须的工具,我们往往还需要很多其他辅助软件,例如:
- 编辑器:用来编写代码,并且给代码着色,以方便阅读;
- 代码提示器:输入部分代码,即可提示全部代码,加速代码的编写过程;
- 调试器:观察程序的每一个运行步骤,发现程序的逻辑错误;
- 项目管理工具:对程序涉及到的所有资源进行管理,包括源文件、图片、视频、第三方库等;
- 漂亮的界面:各种按钮、面板、菜单、窗口等控件整齐排布,操作更方便。
这些工具通常被打包在一起,统一发布和安装,例如 Visual Studio、Dev C++、Xcode、Visual C++ 6.0、C-Free、Code::Blocks、JetBrains Clion 等它们统称为集成开发环境IDEIntegrated Development Environment
集成开发环境就是一系列开发工具的组合套装。这就好比台式机一个台式机的核心部件是主机有了主机就能独立工作了但是我们在购买台式机时往往还要附带上显示器、键盘、鼠标、U 盘、摄像头等外围设备,因为只有主机太不方便了,必须有外设才能玩的爽。
集成开发环境也是这个道理,只有编译器不方便,所以还要增加其他的辅助工具。
## 我的推荐
作为个人使用比较顺手的几款 IDE
Java: [JetBrains](https://www.jetbrains.com/zh-cn/idea/)[IntelliJ](https://www.jetbrains.com/zh-cn/idea/)[IDEA](https://www.jetbrains.com/zh-cn/idea/)
C: Visual Studio(宇宙第一 IDE), [JetBrains](https://www.jetbrains.com/zh-cn/clion/)[Clion](https://www.jetbrains.com/zh-cn/clion/), Visual Studio Code(编辑器 IDE 化需要额外配置)
Python: [JetBrains](https://www.jetbrains.com/zh-cn/pycharm/)[](https://www.jetbrains.com/zh-cn/pycharm/)[P](https://www.jetbrains.com/zh-cn/pycharm/)[ycharm](https://www.jetbrains.com/zh-cn/pycharm/)
Vim 在附加篇章里有额外介绍
[JetBrains](https://www.cnblogs.com/Coline1/p/15229244.html)[白嫖指南](https://www.cnblogs.com/Coline1/p/15229244.html)
当然,适合你的才是最好的