编程中 编辑/编译 高级语言和机器语言的感悟

此文章的出身是配置VSCode环境突然迷惑了的感悟。

总结:编译的作用:

就是把高级语言中例如【printf()(这种人学过一看就知道是打印命令的语言)】 转换成【10001 01100 (这种人看不懂的机器语言,顺便转换后让计算机执行这个命令!!)】

编辑和编译的区别:

1.编辑:可以理解为 把要做的事情写好,准备开始做。(写是用高级语言)

编写和修改程序代码的工具。它允许程序员输入、编辑和保存代码,但不会对代码进行处理。常见的编辑器包括:

1. 记事本(Notepad):Windows自带的简单文本编辑器。

2.Sublime Text:一个强大的代码编辑器,支持多种编程语言。

3.Visual Studio Code:流行的代码编辑器,具有丰富的扩展功能。

以VSCode为例: printf("Hello,World!");(这个是高级语言)

如果不配置编译环境,那也就是 和记事本一样 就改一改程序 不能执行。

在这个阶段,仅仅是把你写入的文字存储在一个文件中,你还没有让计算机执行这个程序。

2.编译:可以理解为 做(执行)(做是用机器语言(低级语言)做)

编译程序(通常称为"编译器")是将代码转换为机器能够理解的二进制指令的工具。编译的过程通常包括语法检查、优化代码和生成可执行文件。常见的编译器包括:

1.GCC:GNU Compiler Collection,支持多种编程语言。

2.Clang:一个现代化的C/C++编译器。

3.javac:Java编程语言的编译器。

每个语言可能有不同的编译器,编译器的作用就是 做! (将 编辑(写)的(高级语言) 做成 (机器语言) 让计算机执行出来!) 它将C语言代码转换为机器代码.

如果你使用GCC作为编译器来编译上面的示例,你需要将代码保存为一个可执行文件,然后运行它。假设你已经将代码保存为hello.c,通常的流程如下:

  1. 打开终端。

  2. 输入编译命令:

    gcc hello.c -o hello

  3. 然后运行生成的可执行文件:

    ./hello

在这个例子中,gcc是一个编译程序,它将C语言代码转换为机器代码,使得计算机能执行你编写的程序。

总结

  • 编辑程序:用于编写和修改代码,没有执行功能。
  • 编译程序:将代码转换为机器代码,允许计算机执行程序。

高级语言和机器语言

高级语言

C语言是一种高级编程语言,设计用于让程序员更容易阅读和编写代码。C语言代码使用接近人类自然语言的语法,便于理解。例如:

#include <stdio.h>

int main()

{ printf("Hello, World!\n"); 
  return 0;
 }

在这个例子中,程序的意图非常明确:输出"Hello, World!"到屏幕上。人类程序员可以很容易地理解这段代码。

机器码

机器代码是指计算机可以直接执行的二进制代码(0和1的组合),它与特定的硬件架构密切相关。例如,程序中的每个操作、每个指令都被转化为一系列数字,以表示为计算机可以理解的数据。这种代码对人类来说几乎不可读。以"Hello, World!"程序为例,编译后可能生成的机器代码(假设为某个特定架构)看起来像这样:

10110000 00000001  
11000001 00000100  
00001101 00000001  
... 

注意:具体的机器代码会因编译器和目标架构不同而有所不同,上面的例子只是一个示意。

例子:

可以将C语言代码与机器代码进行类比,像是用母语与外语交流的情况:

  • C语言代码(母语):就像是你在用中文与朋友聊天。沟通顺畅,表达清晰,所有的含义都一目了然。
  • 机器代码(外语):就像你把这段对话翻译成了一种计算机只理解的语言,比如机器语言。这个过程虽然可以完成,但对于大多数人来说,理解起来非常困难,甚至有时是完全不可能的。

总结

  • C语言代码是高级语言,易于人类理解和编写。
  • 机器代码是计算机能直接执行的低级语言,以二进制形式存在,通常很难理解。
相关推荐
追梦少年时7 小时前
STM32-Flash闪存
stm32·单片机·嵌入式硬件·51单片机
weixin_452600698 小时前
《青牛科技 GC6125:驱动芯片中的璀璨之星,点亮 IPcamera 和云台控制(替代 BU24025/ROHM)》
人工智能·科技·单片机·嵌入式硬件·新能源充电桩·智能充电枪
weixin_452600699 小时前
【青牛科技】14W 高保真音频放大电路——D2030
科技·单片机·嵌入式硬件·音视频·电动工具·智能电表
YuCaiH17 小时前
【STM32】USART串口数据包
笔记·stm32·单片机·嵌入式硬件
Kasen's experience19 小时前
STM32 GPIO 配置
stm32·单片机·嵌入式硬件
学习路上_write20 小时前
FPGA/Verilog,Quartus环境下if-else语句和case语句RT视图对比/学习记录
单片机·嵌入式硬件·qt·学习·fpga开发·github·硬件工程
jjjxxxhhh12321 小时前
FPGA,使用场景,相比于单片机的优势
单片机·嵌入式硬件·fpga开发
EterNity_TiMe_1 天前
【论文复现】STM32设计的物联网智能鱼缸
stm32·单片机·嵌入式硬件·物联网·学习·性能优化
changingshow1 天前
Arduino IDE Windows 系统 离线安装 esp32 开发板 亲测好用。
单片机·嵌入式硬件
7yewh1 天前
嵌入式硬件杂谈(一)-推挽 开漏 高阻态 上拉电阻
驱动开发·stm32·嵌入式硬件·mcu·物联网·硬件架构·pcb工艺