Go学习随记

编译语言&解释语言
Go学习随记_第1张图片
编程语言分为:

高级语言:编译型语言、解释型语言
低级语言:机器语言(最低级)、汇编语言(使用助记符)
此处大概讲解编译型语言和解释型语言;

编译型语言:C/C++、Pascal/Object Pascal(Delphi)、Golang
定义:程序在执行之前需要一个专门的编译过程,把程序编译成为机器语言的文件,运行时则不需要重新翻译,直接使用编译的结果就行。程序执行效率高,依赖编译器,跨平台性差。

比如:Golang,运行文件时,我们时常需要编译生成.exe文件之后,才能运行。

解释型语言:Java、C#、PHP、JavaScript、VBScript、Perl、Python、Ruby、MATLAB
定义:程序不需要编译,每次运行,都需要一边运行一边翻译,因而效率低。但是靠着解释器,跨平台性好。

此外,脚本语言也是解释型语言,因为不需要编译,可以通过解释器直接运行。

比如:PHP,运行项目时,我们只需要编写好相应的代码文件,如果有环境切换需求,那么只需要把项目重新部署新的环境,启动即可。

Java和C#都是先把代码编译成字节码,而后分别在JVM虚拟机或.net平台上解释执行,本质上还是解释型语言。

c/c++编译过程
Go学习随记_第2张图片
gcc编译.c和.cpp文件主要分为四个步骤
源文件:test.c/test.cpp
一、预处理阶段
将文件中的宏定义、#include”“包含的头文件进行展开。

gcc编译命令gcc -E test.c -o test.i

-E:完成预处理后停止编译进程
-o test.i:生成预处理后文件为 test.i
.i:Intermediate file
二、编译阶段
将经过预处理阶段得到的预处理文件test.i编译为汇编程序

gcc -S test.i -o test.s

-S:完成编译阶段后停止编译进程
-o test.s:生成汇编文件test.s
.s:Assembly file
三、汇编阶段
将经过编译阶段得到的汇编文件test.s汇编为目标文件

gcc -c test.s -o test.o

-c:完成汇编阶段后停止编译过程
-o test.o:生成目标文件test.o
.o:object file
四、链接阶段
将目标文件与启动文件、其他库文件、其他目标文件进行链接

gcc test.o -o test.exe

-o test.exe:生成目标test.exe可执行文件

Go编译过程

你可能感兴趣的:(Golang,golang)